Dim UhrPos&
Sub Main
If EB Then Home
PrintStatus "--- auf gehts ---"
Eins2Zwoelf
ZufUhr
End Sub
Sub Home
' --- Anfahren der 12Uhr-Position ------------
PrintStatus "--- nach Hause ---"
SetMotor ftiM1,ftiRechts
WaitForInput ftiE1,True
SetMotor ftiM1,ftiAus
UhrPos = 0
PrintStatus "--- zu Hause ---"
Pause 1234
End Sub
Sub Eins2Zwoelf
' --- Nacheinander : Anzeige 1 - 12 Uhr -----------
Dim i&
For i = 1 To 12
UhrLauf 80
Next i
End Sub
Sub ZufUhr
' --- Anzeige von unterschiedlichen Uhrzeiten ---
UhrLauf 180
UhrLauf 240
UhrLauf 60
UhrLauf 240
End Sub
Sub UhrLauf(Pos&)
' --- Uhrlauf um Pos Impulse ----
PrintStatus " --- busy ---"
SetMotor ftiM1,ftiRechts,ftiFull,Pos
WaitForMotors 0,ftiM1
UhrPos = UhrPos + Pos
If UhrPos > 960 Then UhrPos = UhrPos - 960
PrintStatus UhrPos/80 & " Uhr"
Pause 1234*EA
End Sub |
Mit vbaFish wurde ein einfaches Programm
erstellt, das nacheinander die Uhr auf Grundstellung (Home = 12 Uhr)
fährt und dann die Stunden 1 - 12 Uhr anzeigt. Zu Schluß werden noch
einige willkürliche Zeiten angezeigt.
Die aktuelle Zeit wird in Anzahl Impulsen ab 0 Uhr (= 12 Uhr)
gespeichert. Eine Stunde entspricht 80 Impulsen, 12 Stunden also 960
Impulsen.
In der Sub Home werden die Zeiger solange rechtsrum gedreht, bis der
große Zeiger auf 12 Uhr steht.
Sub Eins2Zwoelf ruft in einer Schleife über die Sub UhrLauf die Zeiten
1 - 12 Uhr auf.
Sub ZufUhr zeigt nacheinander unterschiedliche Uhrzeiten an. Ebenfalls
über UhrLauf.
Sub UhrLauf läßt den Antriebsmotor solange laufen, bis die
vorgegebene Impulszahl erreicht ist. Dazu wird der Motor an M1 mit voller
Geschwindigkeit und der Vorgabe der Impulszahl gestartet und anschließend
wird auf das Erreichen der Position gewartet. Zusätzlich wird in der
Statuszeile von vbaFish die angezeigte Uhrzeit ausgegeben. Mit Pause,
damit mans auch lesen kann.
Das Programm funktioniert sehr schön, läßt aber wie das Modell noch
eine Menge Raum für Verbesserungen und neue Lösungen.
Nur eins wird schwerfallen : Die Zeit in Realtime anzuzeigen.
|