Go Down

Topic: Lampada da tavolo RGB (Read 2043 times) previous topic - next topic

leo72

Jun 08, 2012, 05:53 pm Last Edit: Jun 09, 2012, 11:32 am by leo72 Reason: 1
Altro progettino terminato. Questa volta si tratta di una lampada da tavolo con led RGB.
Il circuito si basa su un Atmega328P a 16 MHz che pilota 5 led bianchi ad alta luminosità (20000 mcd) e 5 led RGB ad anodo comune ad alta luminosità (8000 mcd).
I led bianchi sono pilotatati tramite un semplice transistor NPN 2N2222 collegato ad un pin PWM dell'Atmega mentre i led RGB sono pilotati utilizzando un integrato TCL5940. La cosa divertente del circuito è l'utilizzo di un sensore capacitativo per cambiare lo schema di illuminazione dei led, grazie al quale è stato possibile alloggiare il circuito all'interno di una lampada da tavolo in vetro senza forare nulla. Come alimentazione ho riciclato un caricabatteria di un cellulare: 550 mA@5V, più che sufficienti per il mio progetto dato che ho usat comunissimi led ad alta luminosità.
Ho usato un micro a 16 MHz perché la funzione PWM di Arduino non funziona bene a velocità inferiori e poi perché non ho necessità di risparmiare energia.
In allegato trovate un pacchetto contenente lo schema Eagle e la bozza del codice che esegue già alcuni schemi di colore.
Librerie utilizzate:
CapSense - http://www.arduino.cc/playground/Main/CapSense
Tlc5940Mux - http://code.google.com/p/tlc5940arduino/

http://www.youtube.com/watch?v=duSAd8ZzFkY

EDIT:
nello schema trovate un pulsantino sul pin di reset dell'Atmega328. Tale pulsantino è opzionale (è un rimasuglio del primo schema che avevo costruito, riferito al circuito assemblato su breadboard) ed io non l'ho messo dato che il  circuito è all'interno della lampada e quindi non facilmente raggiungibile. R8 è da 20K e serve per limitare la corrente dei led RGB collegati al TLC5940. Se non avete una resistenza di tale valore potete mettere in serie 2 R da 10K l'una, come ho fatto io. Ricordate che il valore di 20K è calcolato per limitare la corrente a 20 mA per canale, se i vostri led hanno un valore differente, dovete ricalcolare tale valore (il datasheet dell'integrato riporta la formula per farlo). R1..R5 sono da 82 ohm e sono calcolate per dare 20 mA ai led bianchi LED6..LED10. Tale valore è calcolato sul tipo di led che ho acquistato. Controllate quelli che avete e calcolate le resistenze in base alle caratteristiche dei vostri led.

R9 è da 8,2 Megaohm. Ho visto che questo valore era quello più indicato per "sentire" le fluttuazioni di capacità di un semplice filo volante. Forse usando una lamina di metallo le cose cambiano.
L'autore della libreria CapSense suggerisce anche di usare un condensatore: a me ha dato più problemi che altro, per cui non l'ho utilizzato. Fate però molte prove su questo fattore prima di realizzare il circuito perché il sensore capacitativo è la parte più delicata dell'interno schema e non c'è, secondo me, una regola che valga per tutti.

ratto93

Bellino :)
Il problema di farsi le lampade poi è sempre quello di trovare un contenitore adatto  =(
Se corri veloce come un fulmine, ti schianterai come un tuono.

leo72


Bellino :)
Il problema di farsi le lampade poi è sempre quello di trovare un contenitore adatto  =(

Difatti io prima mi sono comprato la lampada e poi ho fatto il circuitino. La 1000fori è precisa precisa per entrare nel cilindro in vetro  :)

z3us

Mi piace!

dove hai preso i led RGB?

volevo metterne un po lungo una parete del mio laboratorio che ho ritinteggiato da poco ed è completamente bianca! per dare colore! ma le strip costano troppo!

leo72

Li ho presi su Ebay, non mi ricordo il venditore ma vengono sicuramente dall'Italia. E' facile trovarli, ne trovi a migliaia di annunci. Io ho preso questi che erano ad alta luminosità e ad anodo comune (altrimenti non potevo usarli con il Tcl5940).

critical

Bella Leo complimenti :)!! Ma il contenitore potevi farlo a mano  :smiley-yell:

leo72

Una lampada pagata meno di 10€ in vetro a mano?  XD

Michele Menniti

Bella leo, lavoro preciso ed efficiente come sempre; una sola cosa sulla logica: lo spegnimento lo fai con una pressione più lunga, non credo che devi fare tutto il giro dei colori :smiley-eek-blue:?
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

sciorty


Bella leo, lavoro preciso ed efficiente come sempre; una sola cosa sulla logica: lo spegnimento lo fai con una pressione più lunga, non credo che devi fare tutto il giro dei colori :smiley-eek-blue:?


Stavo per chiedere anche io, sarebbe figo fare lo spegnimento con due tocchi :D

leo72


Bella leo, lavoro preciso ed efficiente come sempre; una sola cosa sulla logica: lo spegnimento lo fai con una pressione più lunga, non credo che devi fare tutto il giro dei colori :smiley-eek-blue:?

Sì, si può fare anche come dici tu.
D'altronde, questo è un protocodice, quindi lo si può sviluppare come uno vuole, secondo i propri gusti.
Ci sono difatti un paio di giochi di luce che in pratica sono quasi uguali, li ho scritti senza neanche provarli dal vivo   :smiley-sweat:

Michele Menniti



Bella leo, lavoro preciso ed efficiente come sempre; una sola cosa sulla logica: lo spegnimento lo fai con una pressione più lunga, non credo che devi fare tutto il giro dei colori :smiley-eek-blue:?

Sì, si può fare anche come dici tu.
D'altronde, questo è un protocodice, quindi lo si può sviluppare come uno vuole, secondo i propri gusti.
Ci sono difatti un paio di giochi di luce che in pratica sono quasi uguali, li ho scritti senza neanche provarli dal vivo   :smiley-sweat:

no, no, come detto era solo una semplice curiosità, immaginando che uno deve uscire di fretta alla fine la lascia accesa se per spegnerla deve prima riempirla di un buon numero di ceffoni :smiley-mr-green:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

La lampada non è nata per stare collegata fissa alla rete. Il consumo c'è. Va messo un interruttore sul filo di alimentazione oppure, meglio ancora (come faccio io), va scollegato l'alimentatorino da parete in modo che neanche il trasformatore interno consumi corrente.

Perché?
La lampada "spenta" è in realtà una lampada che non accende i led, ma non c'è nessuno sleep o altro. Il micro resta ben sveglio  altrimenti non potrebbe leggere il sensore capacitativo e capire se qualcuno avvicina la mano per "accenderla". Non so se mi sono spiegato.

z3us

bello il sensore capacitivo! ti legge anche attraverso il vetro? micidiale!


leo72


bello il sensore capacitivo! ti legge anche attraverso il vetro? micidiale!

Come puoi vedere dal video... sì.
E' fatto con una semplice spirale di filo, niente foglio di metallo.
Il ritardo che vedi è voluto: ho messo un delay per evitare che il sensore leggesse 2 volte la prossimità della mano.

Michele Menniti


La lampada non è nata per stare collegata fissa alla rete. Il consumo c'è. Va messo un interruttore sul filo di alimentazione oppure, meglio ancora (come faccio io), va scollegato l'alimentatorino da parete in modo che neanche il trasformatore interno consumi corrente.

Perché?
La lampada "spenta" è in realtà una lampada che non accende i led, ma non c'è nessuno sleep o altro. Il micro resta ben sveglio  altrimenti non potrebbe leggere il sensore capacitativo e capire se qualcuno avvicina la mano per "accenderla". Non so se mi sono spiegato.

Il sensore capacitivo non è in grado di agire su un interrupt? :smiley-roll:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up