Demo-Uhr

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail

 

Einfache Uhr zur Übung der Zeitablesung für Erstklässler

Funktionen : Anzeige von Stunde und Minute nach Vorgabe des Programms. 
Das Modell wird von einem Minimotor (an M1) mit Getriebe und Schnecke über die Minutenwelle (Großer Zeiger) angetrieben. Auf der Minutenwelle befindet sich ein 10er Ritzel und auf der Schneckenwelle ein Impulsrädchen mit vier Zacken und Taster (an E2). Eine Umdrehung der Minutenwelle verursacht also 80 Ein/Aus-Impulse.
Der Stundenzeiger ist auf einer Kombination aus 40er Zahnrad (Stundenrad) und Scheibenrad befestigt und lose auf die Minutenwelle aufgesetzt. Das Stundenrad wird über eine Gesamt Untersetzung von 12 : 1 in zwei Stufen (10:30 und 10:40) und  von der Minutenwelle angetrieben. Zusätzlich betätigt der Stundenzeiger bei 12 Uhr noch einen Taster an E1.

Die Anregung zu der Uhr fand sich in der alten Anleitung  fischertechnik Statik (#39007) von 1971 auf Seite 40. Hier wird eine dreistufige Übersetzung verwendet.

 

Blick auf das Getriebe.

Im Vordergrund die Minutenwelle. Die Zeiger sind links. Über dem 10er Ritzel zwei 20er Zwischenräder zur Überbrückung der Entfernung zur Zwischenwelle 30:10. Zwei Räder um eine Richtungsumkehr zu erreichen.

Der Aufbau der Uhr ist recht einfach gehalten, es bleibt also viel Raum für eigene Verbesserungen. 

Lösung mit der Entwicklungsumgebung vbaFish

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.

 

Die Source der vorgestellten Lösungen sind in Uhr.ZIP zusammengefaßt. Zusätzlich wird vbaFish30 benötigt.

Stand : 10.02.2004