Sunrise Alarm LED klocka (11 / 12 steg)
Steg 11: Ladda upp och testa koden
Detta är en enkel sak att ladda ner det bifogade biblioteket och sedan ladda upp bifogade skissen Arduino eller motsvarande mikro-controller. Här kan du ändra koden till din smak, anpassa det till dina specifika tolkning av detta projekt. Jag har kommenterat koden ganska grundligt, så du bör kunna förstå vad som pågår från, men här är en grundläggande översikt över hur du använder klockan:
Den faktiska tiden att hålla del av klockan är gjort av RTC, och så allt du behöver göra är ställa in tiden en gång med exemplet skiss i bifogade biblioteket. När tiden för RTC har ställts in, allt du behöver göra är att ladda upp min skiss och du bör vara bra att gå. Klockan är standardläget bör vara visar tiden, med bildskärmens ljusstyrka justeras via potentiometern (se föregående steg för ytterligare förklaring). När larmet ställt switch har varit vänt, alarmtiden visas. Trycka på timme och minut knappar ökar värdet för alarm timme och minut, och denna tid sparas automatiskt till den Arduino RAM. PM LED bör också komma när tiden du ställer är på natten. När önskad alarmtid har ställts in, helt enkelt flip larmet huvudströmbrytare tillbaka och du kommer att se den aktuella tiden visas igen. När alarmtiden har nåtts, kommer att lysdioderna börja långsamt vända på, tills de når deras full ljusstyrka vid 15 minuters märket. De kommer att förbli på full ljusstyrka tills knappen "snooze" har drabbats, som vänd av alarmet förrän larmet tid nästa dag (detta är egentligen inte en snooze-knappen, en stor brist i detta projekt - jag vill uppmuntra er att lägga en sådan sak, som snooze knappar är en integrerad del av någon väckarklocka).
En annan är möjlig förbättring att larmtiden återställs varje gång Arduino förlorar makt. Om du använder EEPROM-bibliotek, kan du spara larmtiden på Arduinos icke-flyktigt minne och bevara dess inställning även efter ett strömavbrott (RTC drivs av ett batteri, så du inte behöver oroa dig det att förlora sin tid). En sista punkt om förbättring skulle vara att sätta refresh() sekvensen (förklaras i koden) på en avbrott timer, så att uppdateringen av displayen är mindre drabbade av vad som händer i det viktigaste kretsar av koden.
Om något av ovanstående inte fungerar för dig, gå tillbaka genom schematiskt och alla anslutningarna för att se till att allt var kabelansluten korrekt. Igen, rekommenderar jag breadboarding allt först, för att se till att allt fungerar för dig och dina komponenter.