Stap 8: De elektronische bouwen en code uitleg
Hier is het volledige circuit en de code
Ik zet ook een 11, 1V 1000mAh Lipo oplaadbare accu, zodat ik kan de macht van de klok zonder externe DC kabel.
Uitleg van de code:
Na het aansluiten van alle de elektronische downloaden van de zip 3 zip-bestanden is de code een de anderen zijn de bibliotheken.
Eerst moet u beide bibliotheken mappen zetten voor TLCs en RTC-Module in de map van uw arduino-bibliotheek anders krijgt u fout bij het openen van de code, of u kunt de bibliotheken ook downloaden vanaf de website van arduino.
De code 3 mappen opnemen:
De map SetTime met SetTime.ino: gebruiken dit bestand als u wilt instellen van de tijd voor uw RTC-Module voor de eerste keer handmatig, daarvoor je moet wijzigen de byte variabelen in de functie van de setDateTime() met uw lokale tijd, dan deze code aan uw arduino laden en de RTC-Module slaat uw lokale tijd, u hoeft te doen dit de eerste keer de tijd in te stellen of als u de batterij van uw RTC-Module. De TestTimeFolder met
TestTime.ino: gebruik dit alleen controleren als de RTC-Module de juiste tijd opgeslagen, deze code te laden en opent u de seriële monitor om het te controleren.
De LED_Mega_Clock map: met 6 bestanden, openen al deze 6 bestanden moeten in dezelfde map, alleen LED_Mega_Clock.ino en je krijgt alle 6 bestanden in verschillende kranen.
- "LED_Mega_Clock kraan": hier is de setup voor de pinnen en de definitie van globale variabelen en arrays voor de registers en de loop-functie. Ik heb 3 functies in het "programma's tabblad" met 3 verschillende animaties kiezen een van hen en zet het in de lus-functie.
- "RTC lusje": hier is de setup van de RTC u niet echt nodig om dit tabblad bewerken, maar voor meer informatie de website arduino. Hier maakte ik de functie checkTime() om te beginnen de overgang tussen de RTC-Module en arduino. Ik gebruik dit voor elke animatie en vergeet ook niet om te lezen van de tijd vóór de animatie en deze binaire gecodeerde gegevens converteren naar een normale decimaal getal met de byte bcdToDec() functie die ik heb gemaakt. Bijvoorbeeld: int tweede = bcdToDec(Wire.read()); "RGB_LED_Strip kraan": hier maakte ik 2 functies één die het hele kleurenspectrum van rood naar magenta zeer 20 min en dat elke kleur wijzigen veranderen elke tweede gebruik PWM-uitgangen van uw arduino om dit te doen. u kunt uw eigen functies maken.
- "blue_LEDs Tap": hier heb ik gemaakt 3 functies met behulp van multiplexing één om in te stellen van de blauwe LED-Matrix met tweede, minuut, en uur indicator anderzijds doen hetzelfde maar met een swingende punt van rechts naar links als tweede indicator. en de shift() functie verschuiving gegevens. U kunt uw eigen animaties maken.
Hoe te verschuiven van gegevens: http://arduino.cc/en/tutorial/ShiftOut
- digit_display kraan: hier zijn 3 functies één om in te stellen het de cijfers (anoden of arduino pinnen gedefinieerd in de CA [] array in de "LED_Mega_Clock Tap"), één om in te stellen van de segmenten (kathoden of TLC pinnen te zinken van de huidige naar de GND) en één opnieuw instellen van de TLC waardoor u hebben 4 cijfers die u instelt hoog of laag met uw pins arduino en 7 segmenten in elk cijfer dat u instelt hoog of laag met de TLC met behulp van Multiplexing. Het gebruik van de TLC-bibliotheek: http://arduino.cc/en/tutorial/ShiftOut
U kunt bijvoorbeeld de klok optimaliseren door een Foto-weerstand in het circuit te koppelen aan het automatisch controle de lichtheid van de klok afhankelijk van het omgevingslicht van uw kamer, of u kunt een 10 k Potentiometer aan de controle van de helderheid handmatig.
U kunt ook het invoegen van een knop om te schakelen betteew verschillende programma's of een andere LED-Strip binnen de klok om te verlichten van het transparante kunststof deel in het voorpaneel zetten.