Indholdsfortegnelse:

3 lette ATTiny -julegaver: 4 trin
3 lette ATTiny -julegaver: 4 trin

Video: 3 lette ATTiny -julegaver: 4 trin

Video: 3 lette ATTiny -julegaver: 4 trin
Video: Programming the new ATtiny from Arduino using UPDI [Beginner Tutorial] 2024, November
Anonim
3 lette ATTiny julegaver
3 lette ATTiny julegaver

Hvert år ruller feriesæsonen rundt, og jeg sidder fast i, hvad jeg skal give til mine venner og familie. Folk siger altid, at det er bedre at lave gaven selv end at købe den i en butik, så i år gjorde jeg netop det. Den første viser et navn eller grundbillede, når den vinkes gennem luften, den anden falmer glat mellem to hvide lysdioder (Den har også en sikkerhedsnål til at fastgøre den til tøj eller en pung), og den tredje er et slags stemningslys, rullende problemfrit mellem farverne. Alle er under $ 15 og er lette at samle på mindre end en time. Du kan også give disse instruktioner samt dele som en gave til en person, der er interesseret i at lære elektronik.

Bemærk: Der forudsættes et grundlæggende niveau af lodning. I modsætning til min tidligere instruerbare vil jeg dog overskue hvordan man programmerer en AVR. Jeg håber virkelig, at dette hjælper folk, der forsøger at komme i gang med elektronik. Jeg husker, da jeg var der og vil med glæde besvare eventuelle spørgsmål, du måtte have. Husk der er ingen dumme spørgsmål! Jeg har ladet det stå åbent for dig at bestemme, hvordan du vil lægge dit kredsløbskort i håb om, at du finder en ny måde at vise de enkle kredsløb, jeg har tegnet. Send venligst billeder, når du er færdig, jeg kan ikke vente med at se, hvad du finder på! Dele til alle projekter N = antal projekter x N ATTiny45 (www.digikey.com) x N 8-benet DIP-stik (RadioShack) x 1 Large Perf Board (jeg fik mit på RadioShack) x N 3v møntcellebatteri og holder (RadioShack) x1 programmerer (jeg bruger dette, og den medfølgende makefile vil blive konfigureret til at bruge denne) x2 N modstande, en 10 ohm og en 10k ohm (RadioShack) Her er et billede af de tre afsluttede projekter:

Trin 1: Navnelyset

Navnet Flasher
Navnet Flasher
Navnet Flasher
Navnet Flasher
Navnet Blinker
Navnet Blinker

Andre dele x5 DIFFUSED 3mm LED'er (RadioShack) Dette projekt bruger vedholdende syn til at vise et billede eller en tekst, når det flyttes hurtigt. Det fungerer bedre, når det er mørkt. Med AVR skifter vi hurtigere mellem lysdioder, så kan øjet se, at vi kan skabe et billede i luften med meget få komponenter. Koden: (Download.zip -filen nederst på siden for koden, makefilen osv. (Denne kode har ikke de omfattende kommentarer, som denne kode gør, men hvis denne kode ikke virker, kan du prøve den i zip -fil)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // For jer der aldrig har læst C før dobbelt skråstreg angiver en kommentar. Dette sætter stifterne på avr som en output char x = 10; // x bruges til at indstille forsinkelsestiden. Forøgelse af værdien giver en langsommere omskiftning mellem pixels, faldende, en lavere mens (1) // While (betingelsen er sand); {Gør dette} (Sandt i C er 1) {PORTB = ~ 0b00010001; // Min vens navn er Zoe, så jeg tegnede tegnene på grafpapir og derefter tilregnede dem i PORTB. De tre første nuller er ligegyldige, fordi der kun er fem lysdioder forbundet. En i en af de resterende fem mellemrum angiver, at LED'en er tændt, et nul, slukket. _forsinkelse_ms (x); // forsinkelse i milisekunder PORTB = ~ 0b00010011; _forsinkelse_ms (x); PORTB = ~ 0b00010101; _forsinkelse_ms (x); PORTB = ~ 0b00011001; _forsinkelse_ms (x); PORTB = ~ 0b00010001; _forsinkelse_ms (x); dispClear (); // Åbent mellemrum mellem tegn _delay_ms (x); PORTB = ~ 0b00001110; _forsinkelse_ms (x); PORTB = ~ 0b00010001; _forsinkelse_ms (x*3); PORTB = ~ 0b00001110; _forsinkelse_ms (x); dispClear (); _forsinkelse_ms (x); PORTB = ~ 0b00011111; _forsinkelse_ms (x); PORTB = ~ 0b00010101; _forsinkelse_ms (x); PORTB = ~ 0b00010001; _forsinkelse_ms (x); dispClear (); _forsinkelse_ms (x*5); // Ordet er gjort, så for klarheds skyld har jeg et større mellemrum mellem ord}} Følg nu instruktionerne på side 4 for at kompilere denne kode og sende den til din AVR.

Trin 2: Punglyset

Pungen lys
Pungen lys
Pungen lys
Pungen lys

Andre dele x2 LED'S NON DIFFUSED (RadioShack) Dette projekt falmer problemfrit mellem to LED'er. Min mor ville have noget til at gå på hendes pung for at hjælpe hendes bi set om natten. Jeg følte, at et blinkende cykellampe ville tiltrække for meget opmærksomhed, så jeg lavede dette. Den bruger PWM (Pulse Width Modulation) til at give effekten af dæmpning og lysning. Det, der rent faktisk sker, er, at LED'en blinker hurtigere, end øjet kan se med forskellige intervaller for at simulere en ændring. Du kan se dette mere tydeligt, når du vinker det ind i dit ansigt, som du ville med navnet Flasher. Koden kan downloades i slutningen af denne side. Se side 4 om, hvordan du kompilerer til din AVR. I stedet for at kommentere koden her vil jeg kort forklare konceptet. PWM genereres af en timer. Hver urcyklus tæller timeren en op. Når den når en bestemt værdi (I dette tilfælde OCR1B) ændrer den tilstanden for en nål (I dette tilfælde OC1B). For at få lysdioderne til at "slukke" koblet jeg den anden til [OPPOSITE] OC1B (Det er hvad bjælken på toppen betyder). Derefter bruger vi x til at øge og reducere den tid, der er tændt for lysdioderne.

Trin 3: Farvescrolleren

Farvescrolleren
Farvescrolleren
Farvescrolleren
Farvescrolleren

Andre Partsx1 RGB LED (diffust er bedre) (RadioShack) Dette er for mig en klassiker. Jeg har altid været fascineret af lys som dette og synes det er meget beroligende, så jeg ville naturligvis lave et. Også deres synlighed i samfundet giver dem en reel WOW -faktor. "Gjorde du det ?!" Koden er næsten den samme og efter min mening lettere at læse. Du kan downloade den nederst. Denne gang leverer vi en PWM' -pin til hver jordingsstift på RGB -LED'en. På denne måde jordede vi gennem chippen. Volt kan måles som forskellen mellem to punkter. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Denne sidste instans er, hvad vi gør, når vi jorder gennem chippen. Når der er tre volt på begge sider, pr. Sige, er der ikke nok volt til at drive en LED. Så for at falme mellem farverne valgte vi en farve og en anden farve. Indstil en lig med x og den anden lig med 255-x eller INVERSE af x. Som vi gjorde i det forrige projekt. Gå nu til trin 4 for at programmere.

Trin 4: Programmering

Programmering
Programmering

Download og installer først Emacs, avr-gcc og Avrdude og eventuelle afhængigheder, de måtte have. På Arch linux gjorde jeg dette med: sudo pacman -Sy emacs avrdude

Nu er det tid til at tilslutte din programmør til din avr. Led stifterne på den 6-benede ISP-programmerer (billede herunder) til de korosponderende stifter på din AVR (datablad, side 2) (jeg gjorde dette på et brødbræt). Tilslut nu programmereren til din computer, og rør MEGET hurtigt toppen af AVR'en. Hvis det er varmt, SKAL DU FJERNE PROGRAMMEREN FRA DIN COMPUTER EN gang Kontroller dine forbindelser og prøv igen (strøm og Gnd baglæns?). Hvis det ikke er varmt, skal du åbne emacs og trykke på Ctl-x Ctl-f for at finde.c-filen. Åbn den, og tryk derefter på Meta (Usualy Alt) -x, og skriv compile. Tryk på enter to gange, og hvis du er heldig, skal din AVR nu køre din kode! Tak fordi du læste! Jeg håber du nød det og lærte noget. Tøv ikke med at stille spørgsmål, og glem ikke at lægge billeder af, hvad du finder på. Glædelig ferie og glem ikke at stemme!

Anbefalede: