Stap 14: Elektronica - voor schacht Encoder
Tot nu toe zijn de aanpassingen aan het verkeer door middel van Arduino code succesvol in het houden van de mechanische klok in overeenstemming met de RTC klok geweest. Er is iets ontbreekt nog. Hoe zit het met stroomstoringen?
De RTC-klok heeft een batterij back-up die de tijd maandenlang zonder externe voeding houdt. Echter, de mechanische klok stopt wanneer de stroomstoring optreedt en vanuit die positie zal hervatten nadat de macht terug komt.
De code zorgt ervoor dat de secondenwijzer volledig in sync met de elektronische klok is, maar de twee andere handen af, misschien weg.
Harken mijn hersenen voor een tijdje, kwam ik met een ander idee.
Als men de Arduino waar de handen zich eigenlijk bevinden vertellen kon, dat het zou kunnen draaien de klok snel voorwaarts of achterwaarts totdat de mechanische klok, nogmaals is, afgestemd op zijn elektronische meester.
OK, hebben we een OLED tonen dat we zullen ingezet voor dat doel. Er zijn drie hoofdonderdelen in de lus van de Arduino. Één sectie drijft de motor en de fijne aanpassingen aangebracht op de tweede hand. Een ander gedeelte wordt gebruikt om de Arduino te vertellen waar de handen zich bevinden. De derde sectie voert de aanpassing van de grote bereik van de mechanische klok. Arduino van taal (C++) doet, noch een gotoverklaring te hebben. Dus, we gebruiken vlaggen, waardoor een deel van de code worden overgeslagen of uitvoeren.
Wanneer het systeem wordt opgestart, wordt ervan uitgegaan dat de klok niet de juiste tijd wordt weergegeven. Drie knoppen op de control box zijn nu actief. Het display toont drie locatie waar hij verwacht dat de gebruiker moet de huidige waarden invoeren voor uur, minuut en seconde. Één knop verplaatst het 'actieve gebied' van het uur naar de minuut en de seconde. De tweede knop voorschotten de getallen van 0 tot 11 of 0 tot en met 59.
Tot slot de derde knop uitgangen van deze instellingen, berekent de fout en zorgt ervoor dat een gedeelte van de code uit te voeren waar de handen snel totdat ze op de juiste positie worden verplaatst. Sommige wel moest gebeuren om te zorgen voor de conversie van 24 tot en met 12 uur en de behandeling van het uur 12. Wanneer de correctie werd berekend, zijn er van uitgegaan dat de klok onmiddellijk zal worden aangepast.
Dat is natuurlijk niet waar. Het kost tijd om maken de aanpassing. Ik ditmaal gemeten en toegevoegd een factor van de zachte toffee aan de routine van de aanpassing. Het werkte soort, zolang de handen moest worden veranderd alleen voor een korte periode.
Er is meer te komen - zie volgende stap