Luminosità display a matrice

Ciao a tutti! Ho realizzato un display utilizzando 9 LED rossi e 9 verdi perchè sto realizzando il gioco del tris con Arduino (tic tac toe). Il risultato finale però non è come me lo aspettavo, nel senso che la luminosità dei LED normali, che già non sono molto luminosi di suo risulta ancora più bassa. Volevo quindi sostituire questi LED con dei LED ad luminosità bicolore con assorbimento di 20 mA e comandarli con le uscite digitali. Gli anodi dei LED verdi, quelli dei LED rossi e i catodi sono collegati ciascuno a tre uscite digitali diverse (9 in tutto come nella seguente immagine http://m.instructables.com/files/deriv/F0W/UCIE/G1ZGOG9O/F0WUCIEG1ZGOG9O.MEDIUM.jpg Attenzione che c'è un piccolo errore nei collegamenti in basso). Ora la mia domanda è questa: può Arduino erogare la corrente per alimentare i LED senza friggersi?!? (Ci tengo a dire che l'idea di uesto pregetto non è mia, ma mi sto basando su un altro visto su internet e che nonostante me la cavi bene in elettronia sono ancora alle prome armi von Arduino ;) )

Quello schema può andar bene solo se multiplexi la matrice. Metti di accendere tutti i led contemporaneamente, sui pin collegati ai catodi andrebbe a ricadere la corrente di 6 led per pin. Inoltre la luminosità varierebbe in base a quanti led accendi per riga/colonna.

Credo che il tuo problema sia proprio questo.

Quando multiplexi delle matrici di led, devi prevedere la corrente attraverso i led in modo che tenga conto del tempo in cui rimangono spenti, se vuoi avere una luminosita' apparente uguale a quella effettiva del singolo led sempre acceso ...

Nel tuo caso, siccome devi multiplexare le tre righe connesse a massa, ogni led restera' acceso solo per 1/3 del tempo effettivo, quindi devi calcolare la corrente 3 volte quella nominale (no, in quel modo i led non si bruciano, al contrario di quello che farebbero se fossero alimentati a 60mA fissi ;) )

Inoltre, dato che i pin di arduino non danno sufficente corrente, devi usare transistor NPN per i catodi che vanno a massa, e transistor PNP per gli anodi delle colonne ... e puoi togliere le resistenze sui catodi, che non servono a nulla, le hai gia sugli anodi :D

Grazie per le risposte, supponendo di sostituire solo i LED con quelli ad alta luminosità e togliendo le resistenze di catodo, ottengo un risultato migliore anche se la corrente che circola in ciascun LED è minore oppure sono obbligato a usare i transistor?!?

Non sei "obbligato" ad usare i transistor, ma devi pensare che i pin di arduino possono dare al massimo, se ricordo bene, 40mA, ed e' sempre meglio non arrivarci, quindi considerane 30 ... se trovi led ad alta efficenza e basso consumo, dovresti comunque dimensionare le resistenze per una corrente massima di 10mA (perche' puoi avere fino ad un massimo di 3 led accesi insieme, per pin), il che multiplexato ti darebbe una luminosita' apparente di un led alimentato fisso con 3,3mA ... non molto luminoso.

Un'altro "trucco" potrebbe essere quello di usare led con il case opalino (quelli con la plastica bianca opaca), che cambiando colore dallo stato spento a quello acceso (da bianchi diventano rossi o verdi, quindi il cambio di stato si distingue meglio) ti darebbero un po di visibilita' in piu, anche se non piu luminosita'.

Posso usar i transistor prelevando l'alimentazione dell'Arduino o devo usare un alimentatore a parte?

Stefano94: Posso usar i transistor prelevando l'alimentazione dell'Arduino o devo usare un alimentatore a parte?

Cosa intendi per "prelevando l'alimentazione dell'Arduino?"

Il regolatore on-board dell'arduino non e' progettato per dare molta corrente ... potresti usare un'altro alimentatore da 5V per alimentare il lato positivo (transistor PNP), magari filtrandola un po con un condensatore elettrolitico extra ... per pilotare i transistor, usa resistenze da 4K7 sulle basi e 100K fra le basi e le alimentazioni (fra base e massa per gli NPN e fra base e collettore per i PNP), e ricordati di invertire i segnali (usando i transistor, gli NPN chiudono a massa quando gli mandi un segnale alto, mentre i PNP chiudono al positivo quando gli mandi un segnale basso)

Etemenanki, non ho ben capito come collegare i transistor. In realtà io avevo intenzione di usarli in configurazione da "switch", con la base collegata ai pin dell'arduino che abilita o meno la conduzione alle alimentazioni o alle masse.

Dipende dall’alimentatore che usi.

Se usi l’uscita a 5V dall’arduino, bastano dei PNP con le loro resistenze, per gli anodi (pero’ devi tenere la corrente complessiva in modo che non sia superiore a quella erogabile dal regolatore di arduino, senno lo friggi :P) … anche se usi un’alimentatore esterno, ma da massimo 5V, possono bastare … se invece scegli di usare un’alimentatore esterno a tensione piu elevata, o di prendere il positivo per i led da prima del regolatore dell’arduino, ti servono altri transistor NPN per disaccoppiare le uscite in modo da far spegnere i PNP (perche’, se ad esempio tu usi un’alimentatore da 9V o 12V per l’alimentazione positiva dei led, i PNP che li pilotano sarebbero sempre accesi sia con le uscite ad 1 che a 0, in quanto tali uscite sarebbero sempre comunque ad un livello di tensione piu basso di quello dei transistor, e li manterrebbero in conduzione).

In quel caso, ti converrebbe usare un’array di transistor PNP che gia incorpora tutti i componenti necessari, come ad esempio un 2981 oppure 2982, che ti risparmierebbero di cablare 6 transistor PNP, 6 NPN e 24 resistenze … comunque ti allego tutti i possibili schemi.

Supponiamo che tu colleghi la matrice come da schema 1 … per i catodi la connessione dei transistor e’ sempre quella, come da schema 2 (ho disegnato un solo transistor, tanto sono tutti uguali, ne va uno per linea, e per collegare a massa devi dare valore 1 all’uscita corrispondente di arduino) … per gli anodi, se il positivo per i led e’ identico a quello dell’arduino (5V), puoi collegarli come da schema 3 (ed in questo caso, per accendere la colonna devi dare valore 0 all’uscita), mentre se e’ superiore devi collegerli come da schema 4 (ed in questo caso per accendere la colonna devi dare valore 1 all’uscita, perche’ il transistor NPN te lo inverte) … oppure usare un 2981 al posto di tutti i componenti delle colonne (contiene 8 transistor gia configurati per ingressi TTL, quindi li puoi anche collegare direttamente ai pin senza resistenze, anche se per sicurezza una resistenza da poche centinaia di ohm fra i pin dell’arduino e gli ingressi sarebbe sempre meglio mettercela)

2 catodi.png

3 colonne 5V.png

@etemenanki: ti prego di NON modificare il tuo messaggio qui sopra. L'ho segnalato al webmaster come esempio dei problemi sugli allegati che abbiamo. Grazie.

Se intendi che ha creato problemi, non era proprio mia intenzione, mi spiace.

O intendi un'altra cosa ?

Comunque se ti serve cosi, non lo tocco proprio ;)

Etemenanki: Se intendi che ha creato problemi, non era proprio mia intenzione, mi spiace. ...

Tranquillo Etemenanki ... non sei tu che hai creato i problemi ... sono problemi del software del forum che fa cose strane con gli allegati ... XD

Guglielmo

E' esatta l'interpretazione di Gugliemo. ;) Stamani sul tardi c'è stato un blackout del forum, causato da un crash del server: per rimettere online il forum hanno attivato una istanza di emergenza che tira su un'immagine del forum. Solo che l'immagine salvata non era aggiornatissima e gli allegati puntavano a file inesistenti. Da qui il bug su quel messaggio ed i suoi allegati.

Oh, ho capito … ti posso dire se gli serve per controllare, che quando ho fatto il post funzionavano (li ingrandisco sempre per controllare di aver allegato quelli giusti), in seguito non so.