Stap 20: Definitieve klok Code
Zoals voorheen, de code is gekoppeld als een txt-bestand - laden in WordPad en kopiëren/plakken in de IDE of hernoemen als het .pde rechtstreeks te laden.
Er zijn een heleboel functies in de code maar de RTC, Encoder en Display functies zijn hetzelfde, zoals we hebben gezien in de test-code voor de vorige modules.
De schets is ongeveer 20 minuten per keer geschreven op mijn dagelijkse pendelen naar/van het werk en daarom is waarschijnlijk niet de meest systematische stuk van codering u ooit zult zien. Nochtans, verstrekt het functies voor:
Lezen/schrijven van 1307 RTC
Schrijven naar de 4-cijferige display en "gewapende" Statusindicator
Over de 4-cijferige weergave scrollen
Lezing van coderingsprogramma onder interrupt
Lezing encoder switch en 2 pulsschakelaars
RTC instellen vanuit display/encoder
Datum weergeven & dag
Arm/ontwapenen alarmen
RTC reservebatterij RAM gewapende status opslaan
Weergave huidige alarmen
Instellen tot 7 aparte alarmen elke met on/off tijd, dag en zoemer in-/ uitschakelen
Alarmen in EEPROM opslaan
Instellen van de helling tijd (van min tot max helderheid), vasthouden (tijd voor max helderheid) en zoemer vertraging (tijd tussen max helderheid te bereiken en beginnen zoemer)
Nachtlichtje modus (beurt encoder)
Lichte beveiligingsmodus (willekeurige volle licht tussen 6 pm en 1 am met gemiddelde van 45 minuten tussen op cycli)
Zoemer alarm met escalerende pieptoon
Uitstellen voor zoemer (7 minuten of totdat het einde van de lamp "hold" tijd).
Ik heb deze code die wordt uitgevoerd voor enkele maanden nu en het werkt goed voor een ochtend dageraad licht. Nochtans, kunnen er situaties die ik heb nog niet heeft ondervonden, dus ik kan niet bepaalde dat er bug-vrij. Echter, het is volledig open en hackable, dus als u een bug vindt, voel je vrij om commentaar met de aard van de bug en bij voorkeur de correctie! Als u het niet repareren, zal ik doen wat ik kan.