LED - Mega klockan (8 / 8 steg)
Steg 8: Bygga den elektroniska och kod förklaring
Här är den kompletta kretsen och koden
Jag lade också ett 11, 1V 1000mAh Lipo-batteri så jag kan driva klockan utan extern DC-kabel.
Kod förklaring:
När du har anslutit alla elektronisk nedladdning zip 3 zip-filer är en koden en de andra är biblioteken.
Först måste man sätta båda biblioteken mappar för TLCs och RTC-modul i biblioteksmappen arduino annars får du fel när du öppnar koden, eller du kan också hämta biblioteken från arduino webbplats.
Koden omfattar 3 mappar:
Mappen SetTime med SetTime.ino: Använd den här filen om du vill ställa in tiden manuellt för din RTC-modulen för första gången, för detta måste du ändra byte variabler i funktionen setDateTime() med din lokala tid, sedan ladda denna kod till din arduino och RTC-modulen kommer att lagra din lokala tid, du behöver endast göra detta första gången ställa in tiden eller om du byter batteri för RTC-modulen. TestTimeFolder med
TestTime.ino: Använd bara att kolla om RTC-modulen lagrats rätt tid, ladda här koden och öppna seriell bildskärmen för att kolla.
Mappen LED_Mega_Clock: med 6 filer, alla här 6 filer måste vara i samma mapp, öppna endast LED_Mega_Clock.ino och du får alla 6 filer i olika kranar.
- "LED_Mega_Clock Tap": här är inställningen för stift och definitionen av globala variabler och matriser för registren och funktionen loop(). Jag har gjort 3 funktioner i "program fliken" med 3 olika animationer väljer du en av dem och Lägg den i loop funktion.
- "RTC Tab": här är inställningarna för RTC du verkligen inte behöver redigera den här fliken men för mer information besök arduino webbplats. Här gjorde jag den funktion checkTime() att börja övergången mellan RTC-modul och arduino. Jag använder detta innan varje animation och också Glöm inte att läsa tiden före animeringen och konvertera detta binära kodade data till normala decimal med funktionen byte bcdToDec() jag gjort. Till exempel: int näst = bcdToDec(Wire.read()); "RGB_LED_Strip Tap": här gjorde jag 2 funktioner en som ändrar hela färgspektrumet från rött till magenta mycket 20 min och en som ändrar varje färg varje andra använda PWM utgångar för din arduino att göra detta. Du kan göra egna funktioner.
- "blue_LEDs Tap": här gjorde jag 3 funktioner med hjälp av multiplexering en att ställa in den blå LED-matrisen med sekund, minut och timme indikator andra göra samma sak men med en svängig från höger till vänster som andra indikator. och funktionen shift() att Skift data. Du kan göra egna animationer.
Hur man flytta data: http://arduino.cc/en/tutorial/ShiftOut
- digit_display Tap: här är 3 funktioner en att ställa in de siffror (anoder eller arduino pins definieras i matrisen CA [] i "LED_Mega_Clock Tap") en ställa segmenten (katoder eller TLC stift att sjunka nuvarande till GND) och återställa den TLC som innebär att du har 4 siffror som du ställer in hög eller låg med din arduino stift och 7 segment i varje siffra som du ställer in hög eller låg med TLC med hjälp av Multiplexing. Hur du använder TLC biblioteket: http://arduino.cc/en/tutorial/ShiftOut
Du kan optimera klockan till exempel genom att ansluta en Foto-motståndet i kretsen till automatiskt controll lätthet av klockan beroende på omgivande ljus i ditt rum, eller du kan använda en 10 k Potentiometer att styra ljusstyrkan manuellt.
Du kan också infoga en knapp för att växla betteew olika program eller sätta en annan LED Strip inuti klockan för att belysa den genomskinliga plast-delen i frontpanelen.