Stap 8: programmeren
Het programma is een vrij eenvoudig statusmachine. Wanneer de wekker de sensor bedekt, wacht het voor een tijdje. Vervolgens zet het alarm uit, wacht, beweegt de servo voor de man om te gaan zitten (en kan missen een paar keer als u wenst). Zodra het alarm heeft geslagen uit, wacht het programma totdat het weer op is gezet.Een mogelijke oplossing:
Lus elke 2-5milliseconds. (We genoemd elke lus een 'vinkje')
Start in staat 0.
Staat 0: Alarm is de lichtsensor sierlijsten. Wacht een paar honderd teken (enkele seconden), dan zet het alarm (schrijven hoog op wat de zoemer pin aan is gekoppeld). Ga naar frame 1,
Frame 1: Wacht een paar honderd teken als het alarm afgaat.
Daarna verhogen elke paar teken, de positie van de servo.
Er zullen enkele servo kunnen kloppen de wekker dan. Als u een paar ongelukken wilt, een willekeurig getal (zeggen tussen 0 en 4 graden) aftrekken deze ideale positie en stel die als de eindwaarde voor de servo. Op die manier moet het een paar keer uitvoeren vóór het daadwerkelijk bereiken van de ideale servo eindpositie (het zal waarschijnlijk kloppen de klok dan wanneer het willekeurig getal 0 of 1 is).
Zodra de servo op haar eindpositie is, gaat u naar stand 2.
Frame 2: Decrement de servo positie elke paar teken totdat de vooraf ingestelde "vaststelling" positie wordt bereikt.
Als de wekker nog op zijn plaats is, ga terug naar frame 1.
Ga anders door naar lidstaat 3.
Staat 3: Controleer de lichtsensor elke paar teken.
Als de wekker terug op zijn plaats is, ga naar staat 0.
Als u van een Arduino Mega gebruikmaakt, kunt u het gekoppelde programma. Zorg enkel ervoor u de pin-toewijzingen juiste.
Mogelijk moet u de servo-bibliotheek.
Opmerking: u moet waarschijnlijk de waarden van het 'pos_start' en 'pos_end' in het programma aan uw fysieke bed & hefboom wijzigen.