LED Sunrise väckarklocka med anpassningsbara låten larm (6 / 7 steg)
Steg 6: Programmet
För att programmera din ATMega168 med USB-anslutning och Arduino ombord, måste en ATMega168 chip som har Arduino bootloader redan på det. Detta var det enklaste sättet, som jag kunde hitta, att programmet mikrokontroller. När jag köpte min ombord, plockade jag upp en extra ATMega168 med bootloader från samma leverantör. Du kan få betala lite mer för den pre-programmerat chipet, men det var värt det för mig eftersom jag inte ville bråka med seriell kabel adaptrar etc.
Jag har bifogat kod som en txt-fil och en .pde fil. Jag ville göra detta instructable länge genom att lägga all kod. Jag använde senaste Arduino programmering miljö: arduino-0015. Vad jag gillar med Arduino styrelser är att det finns massor av exempel ingår i miljön, programmet miljön är gratis och det finns några många projekt och hjälpsidor ute. Det är också super lätt att bygga en utbrytning styrelse om du vill köra ditt program på egen hand. Jag försökte kommentera koden till bäst av min uppfattning så jag ska hålla beskrivningarna till ett minimum.
Jag använde "Fading LED" exemplet av BARRAGAN bekanta med puls bredd modulering (PWM) ATMega168 klarar av. Jag har tre "om" uttalanden. Först bleka på de lägre dunklet (0-75 av 255) långsammare eftersom de högre nivåerna ser likadana ut. Andra bleknar i övre dunklet nivåer snabbare. Hela toningen i processen tar 15 minuter. När LED-lamporna har nått full ljusstyrka, spelas låten slingan förrän larmet är avstängd.
Ursprungliga larmet var ganska irriterande. Det var bara det typiska väckarklocka ljud som alla hatar. Jag tänkte, varför inte använda högtalaren för att göra en trevlig låt att vakna till? Eftersom min flickvän älskar The Beatles och jag visste Hey Jude har en ganska enkel melodi, väljer jag att använda den. En fyrkantsvåg genereras och sedan PWM används för att spela tonerna av Hey Jude på piezoelektriska talaren. För att programmera låten, manipulerade jag exemplet "Melodi" från Arduino miljön exemplen. Jag hittade några enkla notblad och översatt det till anteckningar i koden. Jag var tvungen att öka antalet konstaterar att spelas till 41 och göra matten att räkna ut en lägre ton än "c" som tillhandahålls. Jag implanteras sedan koden i min största kod.
För att programmera chip, måste du först installera USB-drivrutinerna med Arduino-miljö. Sedan, Välj din styrelse från nedrullningsbara menyn och välj lämplig COM-porten. Hela denna process beskrivs i detalj här: http://arduino.cc/en/Guide/Windows
Och det är allt! Efter programmering av ATMega168, kan den tas ur Arduino och dök in i prototyped krets!