Cuprins:

LED programabil: 6 pași (cu imagini)
LED programabil: 6 pași (cu imagini)

Video: LED programabil: 6 pași (cu imagini)

Video: LED programabil: 6 pași (cu imagini)
Video: Ce e legal și ce nu când schimbi becurile farurilor (halogen-xenon-led) 2024, Noiembrie
Anonim
LED programabil
LED programabil

Inspirat de diferite LED-uri, LED-uri intermitente și instrumente similare, am vrut să fac versiunea mea de LED controlat de un microcontroler. Această reprogramare se poate face cu lumină și umbră, de ex. ați putea folosi lanterna dvs. Acesta este primul meu instructable, orice comentarii sau corecții sunt binevenite. Actualizare 2008-08-12: Există acum un kit disponibil la Tinker Store. Scuze pentru calitate.

Pasul 1: Cum funcționează

Un LED este utilizat ca ieșire. Ca intrare am folosit un LDR, un rezistor dependent de lumină. Acest LDR își schimbă rezistența pe măsură ce primește mai multă sau mai puțină lumină. Rezistorul este apoi utilizat ca intrare analogică la microprocesoarele ADC (convertor digital analogic).

Controlerul are două moduri de funcționare, unul pentru înregistrarea unei secvențe, celălalt pentru redarea secvenței înregistrate. Odată ce controlerul observă două modificări de luminozitate în jumătate de secundă (întunecat, luminos, întunecat sau invers), acesta trece la modul de înregistrare. În modul de recodare, intrarea LDR este măsurată de mai multe ori pe secundă și stocată pe cip. Dacă memoria este epuizată, controlerul revine la modul de redare și începe să redea secvența înregistrată. Deoarece memoria acestui controler mic este foarte limitată, 64 de octeți (da, octeți!), Controlerul poate înregistra 400 de biți. Este suficient spațiu timp de 10 secunde, cu 40 de probe pe secundă.

Pasul 2: Materiale și instrumente

Materiale și instrumente
Materiale și instrumente
Materiale și instrumente
Materiale și instrumente

Materiale - 2 x rezistență 1K - 1 x LDR (rezistență dependentă de lumină), de ex. M9960- 1 x LED cu curent redus, 1,7V, 2ma- 1 x Atmel ATtiny13v, 1KB memorie RAM, 64 octeți RAM, 64 octeți EEPROM, [email protected] 1 x CR2032, 3V, 220mAh Instrumente - fier de lipit - sârmă de lipit - panou de lucru - programator AVR - sursă de alimentare 5V - multimetru Software - Eclipse - plugin CDT - WinAVRC Costurile generale ar trebui să fie sub 5 $ fără instrumente. Am folosit ATtiny13v pentru că această versiune a acestei familii de controlere poate rula la 1.8V. Acest lucru face posibilă rularea circuitului cu o baterie foarte mică. Pentru a-l rula foarte mult timp, am decis să folosesc un LED cu curent redus, care atinge luminozitatea maximă deja la 2ma.

Pasul 3: Scheme

Scheme
Scheme

Câteva comentarii despre schemă. Intrarea de reset nu este conectată. Aceasta nu este cea mai bună practică. Mai bine ar fi să folosiți un rezistor de 10K ca pull up. Dar funcționează bine pentru mine fără și salvează un rezistor. Pentru a păstra circuitul cât mai simplu posibil, am folosit oscilatorul intern. Asta înseamnă că economisim un cristal și doi condensatori mici. Oscilatorul intern permite controlerului să ruleze la 1,2 MHz, care este o viteză mai mult decât suficientă pentru scopul nostru. Dacă decideți să utilizați o altă sursă de alimentare decât 5V sau să utilizați alte LED-uri, trebuie să calculați rezistența R1. Formula este: R = (Alimentare V - LED V) / 0,002A = 1650 Ohm (Alimentare = 5V, LED V = 1,7V). Folosind două LED-uri cu curent redus în loc de unul, formula arată astfel: R = (sursă de alimentare V - 2 * LED V) / 0,002A = 800 Ohm. Vă rugăm să rețineți că trebuie să reglați calculul dacă alegeți un alt tip de LED. Valoarea rezistorului R2 depinde de LDR-ul folosit. 1KOhm funcționează pentru mine. Poate doriți să utilizați un potențiometru pentru a găsi cea mai bună valoare. Cicuitul ar trebui să poată detecta schimbările de lumină la lumina normală a zilei. Pentru a economisi energie, PB3 este setat la ridicat numai dacă se face o măsurare. Actualizare: schema era înșelătoare. Mai jos este o versiune corectă. Mulțumesc, dave_chatting.

Pasul 4: Asamblați pe o placă prototip

Asamblați pe o placă prototip
Asamblați pe o placă prototip
Asamblați pe o placă prototip
Asamblați pe o placă prototip

Dacă îți place să-ți testezi circuitul, o placă de calcul este foarte utilă. Puteți asambla toate piesele fără a fi nevoie să lipiți nimic.

Pasul 5: Programați circuitul

Programează circuitul
Programează circuitul
Programează circuitul
Programează circuitul

Controlerul poate fi programat în diferite limbi. Cele mai utilizate sunt Assembler, Basic și C. Am folosit C deoarece se potrivește cel mai bine nevoilor mele. Am fost obișnuit cu C în urmă cu zece ani și am reușit să reînvie o parte din cunoștințe (ei bine, doar câteva …). Pentru a scrie programul, recomand Eclipse cu pluginul CDT. Obțineți eclipsa aici https://www.eclipse.org/ și pluginul aici https://www.eclipse.org/cdt/. Pentru a compila limbajul C pe microcontrolerele AVR, veți avea nevoie de un compilator încrucișat. Norocos ca și noi, există un port al faimosului GCC. Se numește WinAVR și poate fi găsit aici https://winavr.sourceforge.net/. Un tutorial foarte bun despre cum să programați controlere AVR cu WinAVR este aici https://www.mikrocontroller.net/articles/AVR-GCC- Tutorial. Ne pare rău, este în germană, dar este posibil să găsiți mii de pagini de tutoriale despre acest subiect în limba dvs., dacă le căutați. După ce ați compilat sursa, trebuie să transferați fișierul hex în controler. Acest lucru se poate face prin conectarea computerului la circuit utilizând ISP (în programatorul de sistem) sau folosind programatori dedicați. Am folosit un programator dedicat, deoarece ușurează circuitul, salvând niște fire și o priză. Dezavantajul este că trebuie să schimbați controlerul între circuit și programator de fiecare dată când doriți să vă actualizați software-ul. Programatorul meu provine de la https://www.myavr.de/ și folosește USB pentru a se conecta la notebook-ul meu. Există mulți alții în jur și îl puteți construi chiar dvs. Pentru transferul în sine, am folosit un program numit avrdude, care face parte din distribuția WinAVR. Un exemplu de linie de comandă poate arăta astfel:

avrdude -F -p t13 -c avr910 -P com4 -U flash: w: flickled.hex: iAtașat puteți obține sursa și fișierul hex compilat.

Pasul 6: lipire

Lipire
Lipire

Dacă circuitul dvs. funcționează pe panou, îl puteți lipi.

Acest lucru se poate face pe un PCB (placă de cicuit tipărită), pe o placă prototip sau chiar fără placă. Am decis să o fac fără ca circuitul să fie format doar din câteva componente. Dacă nu sunteți familiarizați cu lipirea, vă recomand să căutați mai întâi un tutorial de lipire. Abilitățile mele de lipit sunt cam ruginite, dar cred că îți vine ideea. Sper ca ti-a placut. Alex

Recomandat: