Alarm Clock (8 / 11 steg)
Steg 8: programmering
Programmet är en ganska enkel tillståndsdator. När väckarklockan täcker sensorn, väntar det en stund. Därefter sätter larmet igång, väntar, flyttar servo för mannen att sitta upp (och kan missa några gånger om du vill ha). När larmet har slagits, väntar tills det sätts tillbaka programmet.En möjlig lösning:
Slinga varje 2-5milliseconds. (Vi kallas varje slinga en "tickande")
Börja i läge 0.
Tillstånd 0: Larmet coving ljussensorn. Vänta några hundra fästingar (några sekunder), sedan aktivera larmet (Skriv högt på vad pin summern bifogas). Gå till stat 1,
Tillstånd 1: Vänta några hundra fästingar som larmet går bort.
Sedan öka varje några fästingar, placera av servo.
Det kommer att finnas några servo position att välta väckarklockan. Om du vill ha några missar, subtrahera ett slumptal (säga mellan 0 och 4 grader) från detta idealiskt läge och som som det slutliga värdet för servo. Så, det måste du köra ett par gånger innan de faktiskt når idealisk servo slutposition (det kommer förmodligen slå klockan över när slumptal är 0 eller 1).
När servo är det är slutpositionen, gå till staten 2.
Staten 2: Dekrement servo placera varje några fästingar tills den når den förinställda "fastställande av" positionen.
Om väckarklockan är fortfarande på plats, gå tillbaka till läge 1.
Annars gå till staten 3.
Statliga 3: Kontrollera ljussensorn varje några fästingar.
Om väckarklockan är tillbaka på plats, gå till läge 0.
Om du använder en Arduino Mega, kan du använda den bifogade programmet. Se bara till att du får Stifttilldelningar korrekt.
Du kan behöva inkludera servo biblioteket.
Obs: du kommer förmodligen behöva ändra 'pos_start' och 'pos_end' i programmet för att matcha din fysiska bed & spaken.