Sommario:

LED programmabile: 6 passaggi (con immagini)
LED programmabile: 6 passaggi (con immagini)

Video: LED programmabile: 6 passaggi (con immagini)

Video: LED programmabile: 6 passaggi (con immagini)
Video: I LED PIU' FIGHI CHE ABBIA MAI PROVATO - SONO ECONOMICI 2024, Novembre
Anonim
LED programmabile
LED programmabile

Ispirato da vari LED Throwies, LED lampeggianti e istruzioni simili, ho voluto realizzare la mia versione di un LED controllato da un microcontrollore. L'idea è di rendere riprogrammabile la sequenza di lampeggio dei LED. Questa riprogrammazione può essere eseguita con luci e ombre, ad es. potresti usare la tua torcia. Questa è la mia prima istruzione, qualsiasi commento o correzione è benvenuto. Aggiornamento del 2008-08-12: ora è disponibile un kit presso il Tinker Store. Ecco un video di riprogrammazione. Ci scusiamo per la qualità.

Passaggio 1: come funziona

Un LED viene utilizzato come uscita. Come input ho usato un LDR, un resistore dipendente dalla luce. Questo LDR cambia la sua resistenza quando riceve più o meno luce. Il resistore viene quindi utilizzato come ingresso analogico per i microprocessori ADC (convertitore digitale analogico).

Il controller dispone di due modalità di funzionamento, una per la registrazione di una sequenza, l'altra per la riproduzione della sequenza registrata. Quando il controller rileva due cambiamenti di luminosità entro mezzo secondo (scuro, chiaro, scuro o viceversa), passa alla modalità di registrazione. In modalità di registrazione l'input dell'LDR viene misurato più volte al secondo e memorizzato sul chip. Se la memoria è esaurita, il controller torna alla modalità di riproduzione e inizia a riprodurre la sequenza registrata. Poiché la memoria di questo piccolo controller è molto limitata, 64 byte (sì, byte!), il controller è in grado di registrare 400 bit. Questo è abbastanza spazio per 10 secondi con 40 campioni al secondo.

Passaggio 2: materiali e strumenti

Materiali e strumenti
Materiali e strumenti
Materiali e strumenti
Materiali e strumenti

Materiali- 2 x 1K resistore- 1 x LDR (Light Dependent Resistor), ad es. M9960- 1 x LED a bassa corrente, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB flash RAM, 64 byte RAM, 64 byte EEPROM, [email protected] 1 x CR2032, 3V, 220mAhStrumenti- saldatore - filo di saldatura- breadboard- programmatore AVR- alimentatore 5V- multimetro Software- Eclipse- plug-in CDT- WinAVR I costi complessivi dovrebbero essere inferiori a 5 $ senza gli strumenti. Ho usato l'ATtiny13v perché questa versione di questa famiglia di controller è in grado di funzionare a 1,8V. Ciò rende possibile far funzionare il circuito con una batteria molto piccola. Per farlo funzionare a lungo, ho deciso di utilizzare un LED a bassa corrente che raggiunge la massima luminosità già a 2mA.

Passaggio 3: schemi

Schematico
Schematico

Alcuni commenti sullo schema. L'ingresso di reset non è collegato. Questa non è la migliore pratica. Sarebbe meglio usare un resistore da 10K come pull up. Ma funziona bene per me senza e salva un resistore. Per mantenere il circuito il più semplice possibile, ho usato l'oscillatore interno. Ciò significa che risparmiamo un cristallo e due piccoli condensatori. L'oscillatore interno consente al controller di funzionare a 1.2MHz che è una velocità più che sufficiente per il nostro scopo. Se decidi di utilizzare un'altra alimentazione di 5V o di utilizzare un altro LED devi calcolare il resistore R1. La formula è: R = (Alimentazione V - LED V) / 0.002A = 1650 Ohm (Alimentazione = 5V, LED V = 1,7V). Utilizzando due LED a bassa corrente invece di uno, la formula si presenta così: R = (Alimentazione V - 2 * LED V) / 0.002A = 800 Ohm. Si prega di notare che è necessario regolare il calcolo se si sceglie un altro tipo di LED. Il valore del resistore R2 dipende dall'LDR utilizzato. 1KOhm funziona per me. Potresti voler usare un potenziometro per trovare il valore migliore. Il circuito dovrebbe essere in grado di rilevare i cambiamenti di luce durante la normale luce diurna. Per risparmiare energia, PB3 è impostato su alto solo se viene eseguita una misurazione. Aggiornamento: lo schema era fuorviante. Di seguito è una versione corretta. Grazie, dave_chatting.

Passaggio 4: assemblare su una scheda prototipo

Assemblare su una scheda prototipo
Assemblare su una scheda prototipo
Assemblare su una scheda prototipo
Assemblare su una scheda prototipo

Se ti piace testare il tuo circuito, una breadboard è molto utile. Puoi assemblare tutte le parti senza dover saldare nulla.

Passaggio 5: programmare il circuito

Programma il circuito
Programma il circuito
Programma il circuito
Programma il circuito

Il controller può essere programmato in diverse lingue. I più usati sono Assembler, Basic e C. Ho usato C perché soddisfa al meglio le mie esigenze. Ero abituato al C dieci anni fa e sono riuscito a far rivivere parte delle conoscenze (beh, solo alcune…). Per scrivere il tuo programma, consiglio Eclipse con il plugin CDT. Ottieni eclipse qui https://www.eclipse.org/ e il plugin qui https://www.eclipse.org/cdt/. Per compilare il linguaggio C nei microcontrollori AVR avrai bisogno di un compilatore incrociato. Per fortuna, esiste un porto del famoso GCC. Si chiama WinAVR e può essere trovato qui https://winavr.sourceforge.net/. Un ottimo tutorial su come programmare i controller AVR con WinAVR è qui https://www.mikrocontroller.net/articles/AVR-GCC- Tutorial. Scusa, è in tedesco ma potresti trovare migliaia di pagine di tutorial su quell'argomento nella tua lingua, se le cerchi. Dopo aver compilato la tua fonte, devi trasferire il file esadecimale al controller. Ciò può essere fatto collegando il PC al circuito tramite ISP (in system programmer) o utilizzando programmatori dedicati. Ho usato un programmatore dedicato in quanto rende il circuito leggermente più semplice risparmiando alcuni fili e una spina. Lo svantaggio è che devi scambiare il controller tra il circuito e il programmatore ogni volta che vuoi aggiornare il tuo software. Il mio programmatore proviene da https://www.myavr.de/ e utilizza USB per connettersi al mio notebook. Ce ne sono molti altri in giro e puoi persino costruirlo da solo. Per il trasferimento stesso ho usato un programma chiamato avrdude che fa parte della distribuzione WinAVR. Una riga di comando di esempio potrebbe assomigliare a questa:

avrdude -F -p t13 -c avr910 -P com4 -U flash:w:flickled.hex:iIn allegato potresti ottenere il sorgente e il file esadecimale compilato.

Passaggio 6: saldatura

saldatura
saldatura

Se il tuo circuito funziona sulla breadboard, puoi saldarlo.

Questo può essere fatto su un PCB (scheda del circuito stampato), su una scheda prototipo o anche senza una scheda. Ho deciso di farne a meno in quanto il circuito è composto solo da pochi componenti. Se non hai familiarità con la saldatura, ti consiglio di cercare prima un tutorial di saldatura. Le mie capacità di saldatura sono un po' arrugginite, ma penso che si renda l'idea. Spero ti sia piaciuto. Alex

Consigliato: