Cuprins:

3 cadouri ușoare de vacanță ATTiny: 4 pași
3 cadouri ușoare de vacanță ATTiny: 4 pași

Video: 3 cadouri ușoare de vacanță ATTiny: 4 pași

Video: 3 cadouri ușoare de vacanță ATTiny: 4 pași
Video: Ai o întrebare legată de programare? Îți răspund live - ora de programare 2024, Noiembrie
Anonim
3 cadouri de vacanță ATTiny ușoare
3 cadouri de vacanță ATTiny ușoare

În fiecare an, sezonul de sărbători se învârte în jurul meu și mă blochez pe ce să dau pentru prietenii și familia mea. Oamenii spun întotdeauna că este mai bine să faci singur cadoul decât să-l cumperi la un magazin, așa că anul acesta am făcut exact asta. Primul afișează un nume sau o imagine de bază atunci când este fluturat prin aer, al doilea se estompează ușor între două leduri albe (Are, de asemenea, un știft de siguranță pentru a-l atașa la haine sau la o poșetă), iar al treilea este o lumină de dispoziție de fel, defilare perfect între culori. Toate sunt sub 15 USD și sunt ușor de asamblat în mai puțin de o oră. Puteți oferi, de asemenea, aceste instrucțiuni, precum și piese ca cadou cuiva interesat să învețe electronica.

Notă: Se presupune un nivel de bază de lipire. Cu toate acestea, spre deosebire de instrucțiunile mele anterioare, voi analiza cum să programez un AVR. Sper cu adevărat că acest lucru îi ajută pe oamenii care încearcă să înceapă în domeniul electronicii. Îmi amintesc când am fost acolo și voi fi fericit să vă răspund la orice întrebări. Amintiți-vă că nu există întrebări stupide! V-am lăsat deschis pentru a determina modul în care vă veți întinde placa de circuit în speranța că veți veni cu un nou mod de a afișa circuitele simple pe care le-am extras. Vă rugăm să postați imagini după ce ați terminat, abia aștept să văd cu ce veniți! Piese pentru toate proiectele N = numărul de proiecte x N ATTiny45 (www.digikey.com) x N soclu DIP cu 8 pini (RadioShack) x 1 placa de perfecționare mare (am primit-o pe a mea la RadioShack) x N 3v baterie și suport pentru celule de monedă (RadioShack) x1 Programator (folosesc acest lucru și fișierul make-up furnizat va fi configurat pentru a-l utiliza) x2 Rezistențe N, unul de 10 ohm și un 10k ohm (RadioShack) Iată o imagine a celor trei proiecte finalizate:

Pasul 1: numele clipește

Numele Clipește
Numele Clipește
Numele Clipește
Numele Clipește
Numele Clipește
Numele Clipește

Alte părți LED-uri X5 DIFFUSE de 3 mm (RadioShack) Acest proiect folosește persistența vederii pentru a afișa o imagine sau un text când este mutat rapid. Funcționează mai bine când este întuneric. Cu AVR, comutăm între LED-urile mai repede, atunci ochiul poate vedea că putem crea o imagine în aer cu foarte puține componente. Codul: (Descărcați fișierul.zip din partea de jos a paginii pentru cod, makefile etc. (Codul respectiv nu are comentariile extinse pe care le face acest cod, dar dacă acest cod nu funcționează, încercați cel din fișier zip)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // Pentru cei dintre voi care nu au citit niciodată C înainte ca dubla bară să indice un comentariu. Aceasta setează pinii avr ca o ieșire char x = 10; // x este folosit pentru a seta întârzierea legnth. Creșterea valorii oferă o comutare mai lentă între pixeli, descrescătoare, un timp mai mic (1) // În timp ce (condiția este adevărată); {Faceți acest lucru} (Adevărat în C este 1) {PORTB = ~ 0b00010001; // Numele prietenei mele este Zoe, așa că am scos personajele pe hârtie milimetrică și apoi le-am imputat în PORTB. Primele trei zerouri nu contează, deoarece există doar cinci leduri conectate. Unul dintre cele cinci spații rămase indică faptul că LED-ul este aprins, zero, oprit. _delay_ms (x); // întârziere în milisecunde PORTB = ~ 0b00010011; _delay_ms (x); PORTB = ~ 0b00010101; _delay_ms (x); PORTB = ~ 0b00011001; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x); dispClear (); // Deschideți spațiul între caracterele _delay_ms (x); PORTB = ~ 0b00001110; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x * 3); PORTB = ~ 0b00001110; _delay_ms (x); dispClear (); _delay_ms (x); PORTB = ~ 0b00011111; _delay_ms (x); PORTB = ~ 0b00010101; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x); dispClear (); _delay_ms (x * 5); // Cuvântul este făcut astfel încât pentru claritate am un spațiu mai mare între cuvinte}} Acum urmați instrucțiunile de la pagina 4 pentru a compila acest cod și a-l trimite la AVR.

Pasul 2: Lumina pungii

Lumina Pungă
Lumina Pungă
Lumina pungii
Lumina pungii

Alte părți LED-uri x2 NON DIFFUSED (RadioShack) Acest proiect se estompează ușor între două LED-uri. Mama mea a vrut să meargă ceva în poșetă, care să o ajute pe albina să fie văzută noaptea. Am simțit că o lumină intermitentă pentru bicicletă va atrage prea multă atenție, așa că am făcut asta. Folosește PWM (Pulse Width Modulation) pentru a da efectul de estompare și strălucire. Ceea ce se întâmplă de fapt este că ledul clipește mai repede decât poate vedea ochiul la intervale variate pentru a simula o schimbare. Puteți vedea acest lucru mai clar atunci când îl fluturați de pe față, așa cum ați face cu Name Flasher. Codul poate fi descărcat la sfârșitul acestei pagini. Vedeți pagina 4 despre cum să compilați la AVR. În loc să comentez codul aici, voi explica pe scurt conceptul. PWM este generat de un temporizator. Fiecare ciclu de ceas, temporizatorul numără unul. Când atinge o anumită valoare (în acest caz OCR1B) schimbă starea unui pin (În acest caz OC1B). Pentru ca LED-urile să se „oprească” l-am conectat pe celălalt la [OPPOSITE] OC1B (Asta înseamnă bara din partea de sus). Apoi folosim x pentru a crește și a micșora timpul pentru aprinderea LED-urilor.

Pasul 3: Color Scroller

Color Scroller
Color Scroller
Color Scroller
Color Scroller

Alte LED-uri Partsx1 RGB (difuzat este mai bine) (RadioShack) Pentru mine este un clasic. Întotdeauna am fost fascinat de astfel de lumini și le găsesc foarte liniștitoare, așa că, în mod natural, am vrut să fac una. De asemenea, vizibilitatea lor în societate le oferă un adevărat factor WOW. "Ai FĂCUT asta ?!" Codul este aproape același și, după părerea mea, mai ușor de citit. Puteți descărca în partea de jos. De data aceasta oferim un pin PWM'd pentru fiecare pin de împământare de pe LED-ul RGB. În acest fel am împământat prin cip. Volți pot fi măsurați ca diferența dintre două puncte. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Această ultimă instanță este ceea ce facem atunci când punem la sol prin cip. Când există trei volți pe ambele părți, de exemplu, nu există suficienți volți pentru a conduce un LED. Deci, pentru a estompa între culori, am ales o culoare și o altă culoare. Setați unul egal cu x și celălalt egal cu 255-x sau INVERSUL lui x. Așa cum făceam în proiectul anterior. Acum treceți la pasul 4 pentru a programa.

Pasul 4: Programare

Programare
Programare

Mai întâi descărcați și instalați Emacs, avr-gcc și Avrdude și orice dependențe pe care le-ar putea avea. Pe Arch linux am făcut asta cu: sudo pacman -Sy emacs avrdude

Acum este timpul să vă conectați programatorul la avr. Conectați pinii de pe programatorul ISP cu 6 pini (imaginea de mai jos) la pinii corospondatori de pe AVR (Foaie de date, pagina 2) (am făcut acest lucru pe o placă de calcul). Acum conectați programatorul la computer și atingeți FOARTE RAPID partea de sus a AVR-ului. Dacă este fierbinte, ÎNLĂTURAȚI PROGRAMATORUL DE LA COMPUTERUL DUMNEAVOASTRĂ verificați conexiunile și încercați din nou (Putere și Gnd înapoi?). Dacă nu este fierbinte, deschideți emacs și apăsați Ctl-x Ctl-f pentru a găsi fișierul.c. Deschideți-l și apoi apăsați Meta (Usualy Alt) -x și tastați compile. Apăsați Enter de două ori și, dacă aveți noroc, AVR-ul dvs. ar trebui să ruleze acum codul! Mulțumesc pentru lectură! Sper că ți-a plăcut și ai învățat ceva. Vă rog, nu ezitați să puneți întrebări și nu uitați să postați fotografii cu ceea ce ați venit. Sarbatori fericite si nu uita sa votezi!

Recomandat: