Stap 8: Codering de slaap en wakker-Staten
Als je hebt van een slaaptekort vanwege de slechte nachten last, dragen met mij, we zijn er bijna en slaap je weg komt! Dit is bijna de laatste hindernis te nemen. Het belangrijkste instrument voor deze stap is koffie.
Als u wilt denker met de logica of verschillende knoppen toevoegen en u dat fimiliar met Arduino nog niet dat u confidend naar order delen, stel ik dat je een beetje spelen met het ontwerp op 123d circuits door Autodesk. Ik omvatte een ontwerp van dit project hieronder om te beginnen uit. Merk op dat dit ontwerp de RTC voor de tijdwaarneming omvat niet aangezien het 123d milieu niet steunt. Een leuke feature is de emulatie die het biedt, zodat u een beetje met de knoppen spelen kunt.
Terug naar programmering. Het generale concept is een loop()
verklaring die naar de RTC en de drukknoppen elke seconde luistert. Als de RTC geeft als een tijdstempel die overeenkomt met slapen gaan of 's morgens tijd resultaat, veranderen we de staat. Als de drukknop voor een dutje is geduwd, we ook de status wijzigen en de bijbehorende lengte van de nap krijgen van de potentiometer.
Alle sensoren en bibliotheken koppelen en instellen van parameters: Deze sketch vereist hele hijs zootje van parameters voor het bijhouden van de tijd en de Staten van de lichten, knoppen... Een tip is om de pin-codes en de dubbele controle hen wanneer iets niet goed werkt bij te houden.
Initialiseren van de signalen van de knoppen en communicatie: Digitale pinnen op de Arduino moeten worden verteld als zij ingang of uitgang om goed te functioneren.
Start de lus: Dit deel lijkt eenvoudig als gevolg van het gebruik van help-functies. De eerste leest en stelt u de lichte status, het tweede controleert of de NAP-knop wordt ingedrukt en het derde de juiste signalen aan de LEDs en de servo op basis van de twee vorige knoptoestanden en de tijd geeft.
De helpende functies: De definitie van de helpende functies, zie voor de volledige code gekoppeld of de schets in 123studio. Deze functies bestaan uit een heleboel if-tests en sommige basic helpen signaal instelling en zijn volledig gedocumenteerd. Ik omvatte ook de versie van RTClib die ik voor de tijdcontrole en communicatie met de kleine RTC gebruikte.