Stap 5: De basic-code voor gebruik met DS1307 RTC
De code vindt u op codebender (zie onderaan pagina).
Eigenlijk is wat de code doet na lopp door een bos van haar fundamentele parameters definiëren is 'IF' omstandigheden waarin de huidige tijd is gecontroleerd tegen enkele tijdwaarden instellen en als voldaan, een licht zet- of uitschakelen.
De status van de lichten wordt opgeslagen in een variabele met zo goed te werken zoals in de NVR RAM als back-up als er een stroomstoring.
Het gebruik van de NVR RAM betekent dat u gebonden bent aan de DS1307 RTC-module gebruiken.
Hebt u twee andere opties te gebruiken als permanente opslag: de EEPROM van de Arduino, of de EEPROM thats op de meeste RTC modules.
Om verschillende redenen in eerste instantie heb ik gekozen voor het NVRam, maar achteraf gezien die het beter te kiezen voor de EEPROM aanwezig op de meeste RTC modules zoals de DS1307 of de DS3231 als dat maakt de code een beetje meer universele zou zijn geweest. Ik heb die herschreven voor de meer uitgebreide programma. Mijn 'uitgebreid programma' gebruiken om de flexibiliteit bij het gebruik van een RTC-DS3231 of DS1307
Het testen van de conditie neemt de volgende vorm
IF currenthour == x en currentminute + willekeurige y en lightstatus == == OFF
DAN zet licht
Schrijven van lightstatus aan
udate NVR
Overigens de randomfactor gewoon om er meer natuurlijke look. Altijd met yr lichten gaan om 9:00:00 pm signalen 'Ik ben weg'
De code heeft verschillende print verklaringen maar tehse natuurlijk zijn alleen voor gebruik als u een bluetooth module atteched of een terminal.
U kunt de code door te controleren voor zeggen de dag of de maand veel geavanceerder maken en schakelen de verlichting langer of korter zijn afhankelijk van de maand of een doordeweekse dag of een weekend.
De Extended version (zie later) heeft veel meer functionaliteit en zal draaien op de 'Basic versie'