LED Dawn / Sunrise väckarklocka, nattlampa & säkerhet ljus - Arduino kompatibel (4 / 22 steg)
Steg 4: Modul 1 - The Arduino / RTC modul - översikt
Du kan använda denna modul eller en variant av det för någon tid-baserad applikation. Vi bryta ut nästan alla användbara stift till manliga rubriker och det kan åter programed av följetong i styrelsen. Du behöver en USB till TTL kabel för programmering väckarklocka koden eller Provningsmetod (eller för din egen kod). Min heter "CP2102" baserat och var £4,75 för två inklusive leverans (e-bay). De är nu ännu billigare.
För att programmera med seriell anslutning behöver du en "328 med"Duemilanove"bootloader. Du kan köpa dessa marker förprogrammerad med bootloader eller använda en ISP programmerare. Jag använde en befintlig Arduino som ISP med mitt nya chip på en skärbräda enligt denna tutorial:
http://Arduino.cc/en/tutorial/ArduinoToBreadboard
Men vad som inte berättar är att du måste inaktivera auto-Återställ så titta här:
http://www.Arduino.cc/Playground/Code/MegaISP
för lösning på detta. Jag använde ett 100 Ohm och 10 ohms motstånd i serie från Återställ pin till + 5V. En 100uF kondensator mellan dem fungerar lika bra.
Om, som jag, du får en "328-PU snarare än en 328P (jag visste skillnaden men tydligen de har olika energisparlägen) då kan det hända att starthanteraren kommer inte att läsa eftersom dessa två marker har en annan enhet signatur och den programvara som faktiskt talar till programmeraren (AVRdude) blir förvirrad. Den snabbaste fix för detta är att hitta din avrdude.conf fil och i posten under ATmega328, redigera lina:
signatur = 0x1e 0x95 0x0F;
att läsa:
signatur = 0x1e 0x95 0x14;
Det gör AVRdude ser ut för en "328-PU och allt är väl. Ändra filen .conf tillbaka efter (när bootloader är programmerad). Bootloaded ' 328-PU kommer programmet från IDE av följetong utan problem och beter sig precis som en normal Arduino.
ATMega328 datablad är på: http://www.atmel.com/Images/doc8161.pdf bara om du behöver 448 sidor av ljus läsning!
Du kommer också att se att jag hellre har gått till stan på kondensatorerna på detta forum (och verkligen detta projekt). Kanske på grund av den tunga PWM flera ampere av lysdioder, jag var att hitta denna klocka var lite instabil och skulle ibland stall. Även blev displayen lite galen ibland. Jag har därför tagit strategin för att lägga till en 100nf till varje anslutning av varje chip, en 100uF på varje bräda och en massiv 470-1000uF på Ardu' styrelse och förare ombord. Det är nog over-Kill men det verkar fungera. Använd ditt omdöme om vad man ska lämna om du har en bättre förståelse av dessa saker än mig.
Som en sista anmärkning, har jag inkluderat kvinnliga rubriker för att ta tillfälliga lysdioder på kraftledningen och stift 13. Vi använder stift 13 för kommunikation och jag ville verkligen inte det flimrar bort hela natten. Med ett huvud kan jag mops i LED när jag vill testa något och sedan ta ut igen efter. Om du vill ha en permanent LED på stift 13 bara löd den i stället för de kvinnliga headers.
BoM för modul 1:
1 PCB eller Perf styrelse (X av Y hål)
1 28-pin DIN uttag (valfritt men tillrådligt)
1 bootloaded ATmega 328
1 16 MHz kristall
2 22 pf keramiska kondensatorer
1 1307 RTC **
1 32.768 kHz, 12,5 pF klocka crystal
1 2032 batterihållare
1 2032 3V litiumbatteri (ej avbildad)
1 taktil switch (6 x 6 mm)
3 100 nf keramiska kondensatorer
3 10K motstånd *
2 1K motstånd
1 apelsin 3mm LED
1 grön 3mm LED
tillval - 2 x 2pin kvinnliga huvud.
1 1000 uf elektrolytisk cap (ej avbildad)
2 x 7 pin male header (rak eller 90')
2 x 6-pin hane header (rak eller 90')
1 x 2 pin raka manlig huvud
Link-up tråd om använder perf-board (jag använde några gamla 3-par telefonkabel). Jag antar detta i alla ytterligare moduler.
* enligt till databladet, ** RTC bör nog ha 2.5K pullups men 10K verkar fungera bra.
http://www.Sparkfun.com/datasheets/Components/DS1307.pdf