Schritt 12: Rettungsversuch drei
Wir haben gesehen, dass die Uhr schnell um ca. 18 Sekunden pro Stunde ohne Anpassungen und 50 Sekunden pro Jahr zwei Anpassungen ausgeführt wird, wie im vorherigen Schritt beschrieben. Können wir das besser machen?
Die Antwort ist ja der zweiten Welle einen Drehgeber hinzufügen und spüren die Drehstellung des dieser Welle.
Der Encoder ist ein Datenträger mit ein einziges Loch auf einen Durchmesser und 60 Löcher auf einem zweiten Durchmesser. Zwei Foto-Unterbrecher sind Position, dass ein einzigen Loch, die anderen Sinne 60 Loch spürt. Dies bezeichnet eine inkrementelle Drehgeber (erfordert einen Reset für jeden Tuen).
Die Ausgänge der Unterbrecher sind mit dem Arduino produziert zwei verschiedene Interrupts verbunden. Der "einzige Interrupt" wird die Drehstellung auf Null zurückgesetzt. Der "60 Interrupt" erhöht die Rotations-Index um eins.
Somit erhalten wir die aktuelle Position des Sekundenzeigers jede Sekunde. Dann vergleichen wir diese Position (in Sekunden) mit der RTC zweiten zu einem bestimmten Zeitpunkt wie der 30-sekündige markieren und beschleunigen oder verlangsamen der mechanischen Uhr durch die Impulszahl vorübergehend einstellen.
Dies funktioniert in ähnlicher Weise wie beim ersten Versuch (Infrarot-Positionserfassung) aber hat noch das shadowing durch den anderen Händen leiden.
Dies ist die letzte (zumindest ist das, was ich dachte) Version, die ich angenommen und die Elektronik wird im Detail unten beschrieben werden.