Stap 12: Reddingspoging drie
We hebben gezien dat de klok snel door ongeveer 18 seconden per uur zonder aanpassingen en ongeveer 50 seconden per jaar met twee aanpassingen loopt zoals beschreven in de vorige stap. Kunnen wij daarover verbeteren?
Het antwoord is Ja door het toevoegen van een encoder schacht aan de tweede schacht en sensing de roterende positie van die as.
Het coderingsprogramma is een schijf met een enkel gat op een diameter en 60 holes op een tweede diameter. Twee interrupters van de foto zijn standpunt dat een de één gat, de andere zintuigen de 60 gaten zintuigen. Dit een incrementele schacht encoder (vereist een reset voor elke tuen) genoemd.
De uitgangen van de interrupters zijn aangesloten op de Arduino produceren twee verschillende interrupts. De 'één interrupt' gaat de roterende positie terug naar nul. De '60 interrupt' wordt de roterende index verhoogd met één.
Daarom krijgen we de huidige positie van de tweede hand elke seconde. Dan kunnen we vergelijken met die positie (in seconden) met de RTC tweede op een bepaald punt, zoals de 30-seconde markeren en versnellen of vertragen van de mechanische klok door het tellen van de pols tijdelijk aan te passen.
Dit werkt op een soortgelijke manier als de eerste poging (infrarood positie sensing) maar doet noch lijden de schaduw door de andere handen.
Dit is de laatste (althans dat is wat ik dacht) versie ik aangenomen en de elektronica hieronder in detail worden beschreven.