Ciao a tutti! vorrei ricreare una matrice a LED 8x8 (analoga a quella nella foto in calce) alimentandola con 12V ed avente dei LED rossi con le seguenti caratteristiche:
Size (mm) : 10mm
Forward Voltage (V) : 2.0 ~ 2.4
Reverse Current (uA) : <=10
Max Power Dissipation : 180mw
Max Continuous Forward Current : 80mA
Max Peak Forward Current : 120mA
Reverse Voltage : 5~6V
ma ho delle difficoltà nella parte di sostituzione della matrice di prova.
Premesso che la matrice ha come schema elettrico il seguente:
avevo pensato di collegare un transistor BC337 ad ogni pin di ingresso della matrice ma purtroppo la corrente fornita non è sufficiente ad alimentare più di un led in serie.
Avete dei consigli oppure l'unica via possibile è sostiuire i transistor con dei relay?
Mah, io on ci vedo grandi difficoltà.
Alimenti gli anodi con 8 transistor pnp tra + e anodi, i catodi li colleghi a 8 npn messi a massa...
Ricorda solo che i pnp vanno comandati negati.
Togli 1,4 volt dalle formule di calcolo delle resistenze dei led.
Finito
Edit, non va, siamo a 12 volt.
Meglio, neghi il segnale ai pnp con 8 npn, non devi nemmeno ricordarti di negare le uscite di arduino
Santo open collector, sia sempre ringraziato
Alimentati ad 80mA per led, che fra parentesi, per fare un bel lavoro richiederebbero una resistenza per led, o un driver che integri il controllo della corrente, fanno 800mA per riga o colonna accesa intera, il 337 non li regge ...
Per i NPN tocca andare su SS8050, PHE13003, o altri simili da almeno 1.5A, c'e' comunque abbastanza scelta ... per il lato anodi, PNP, c'e' un po meno scelta, ma comunque si puo stare sugli SS8550, sempre 1.5A ed abbastanza economici ...
Si possono anche alternare accendendone 1 alla volta (l'occhio non vede il cambiamento se fatto velocemente). Ovviamente hai bisogno di 16 pin (se non sbaglio).
Si trova sul web come fare, cerca "matrix 8x8"
Ma la vedo rischiosa
grazie mille per le risposte.
Avevo inizialmente provato a collegare in serie i led indicati ma con il bb337 non riuscivo ad alimentarne più di uno per appunto la bassa corrente che può gestire.
I led li accendo mediante MAX7219 di conseguenza non ho la possibilità di comandare direttamente le uscite di Arduino.
Purtroppo mi è complicato saldare una resistenza per led e pensavo di metterne una da 51ohm prima dell'anodo di ogni riga (generalmente accendo un massimo di 3 led per fila). @Etemenanki se hai qualche link o guida per un driver di corrente me lo studio e vedo se è una soluzione percorribile.
Etemenanki:
Alimentati ad 80mA per led, che fra parentesi, per fare un bel lavoro richiederebbero una resistenza per led, o un driver che integri il controllo della corrente, fanno 800mA per riga o colonna accesa intera, il 337 non li regge ...
cosa vuol dire?
È chiaro che vanno multiplati uno per volta, se ne accendi più di uno non puoi calcolare la resistenza di caduta
Standardoil:
cosa vuol dire?
È chiaro che vanno multiplati uno per volta, se ne accendi più di uno non puoi calcolare la resistenza di caduta
No, mi sono espresso male io, intendevo che se non metti una resistenza per ogni led, devi usare un driver che preveda gia al suo interno i regolatori di corrente sulle singole uscite ... tipo ad esempio i TCL5940 o altra roba simile, le cui 16 uscite incorporano all'interno dei limitatori di corrente programmabili in gruppo con una resistenza esterna, in modo che sia il driver a regolare la corrente dei led ... era riferito ad un'altra cosa, al pilotaggio diretto con transistor PNP verso il positivo e NPN verso il negativo della matrice disegnata cosi, senza resistenze, ma ho fatto un po di confusione fra due cose diverse che volevo scrivere e ne e' uscito un pastrocchio, mea culpa
Il MAX7219 é un driver per LED a matrice 8x8 oppure un display a 8 cifre 7 segmenti con punto decimale a catodo comune che limita la corrente dei LEd e percui non servono resistenze. Funziona a 5V.
Non capisco cosa vuoi mettere in serie e per cosa Ti servono i 12V.
Se hai solo una alimentazione 12V allora usa un convertitore DC/DC per ottenere 5V.
Se hai dei Display per 10V (Display 7 segmenti di dimensioni piú grando dove sono 4 LED messi in serie e percui servono almeno 10V per alimentarli) segui questa guida:
Infatti c'è un po' di confusione.
Non capisco più se lo OP usa un max7219 oppure ha solo i led da connettere ad arduino.
Se alimenta a 12, oppure ha 12 volt ma deve alimentare a 5
Certo è che esiste una certa confusione, collegare in Serie i led NON cambia la loro corrente, coi numeri citati 80mA 51 Ohm 12 volt i conti non tornano...
Urgono maggiori spiegazioni
scusate non sono stato abbastanza dettagliato:
attualmente utilizzo il max7219 per comandare una matrice led 1088RS che funziona con i 5V. Con questa non ho nessun problema e non ho attaccato ne transistor ne resistenze tra il max e gli ingressi della matrice. Ad Arduino ho collegato solamente i pin necessari per far funzionare il MAX7219.
Ora vorrei replicare questa matrice saldando su un pannello di circa 1mx1m i led che ho indicato nel primo post. questi sono di grosse dimensioni e con i 5V non riuscirei ad alimentarli se ne accendo più di uno per riga o colonna. Da qui nasce l'esigenza dei 12V.
La mia idea (correggetemi se sto sbagliando) è di collegare la base di un transistor per ogni uscita del max e l'emettitore all'ingresso della matrice "grande".
Per collegamento in serie intendo che se accendo più di un led per riga essi saranno collegati in serie tra loro.
Aspetta, allora e' diversa la cosa ... cioe', tu vuoi replicare quello che gia stai facendo con la matrice piccola, ma usando dei led da 10mm disposti in una matrice esterna da 1x1m, solo che i led in questione, richiedendo piu corrente, non ti si accendono bene con il MAX, e' corretto fin qui ?
Se si, ti servono semplicemente dei driver per correnti maggiori, perche' dai tuoi dati i led che vorresti usare hanno una VF di 2.4V massimi, quindi li puoi comunque alimentare con i 5V, non ti servono i 12 ... quello che invece ti serve, e' un'alimentatore in grado di erogar una corrente maggiore, in modo da non avere problemi con l'assorbimento extra dei led ... inoltre la limitazione di corrente la dovrai fare usando delle resistenze, ed io continuo a suggerire che ogni led abbia in serie la propria in modo da evitare qualsiasi possibile problema, bastano un centinaio di resistenze da 3.3 ohm (75mA per led) oppure da 2.7 ohm (95mA per led), una spesa irrisoria se paragonata ai led ;), perche' usando dei driver esterni, quelli interni del MAX non interverranno piu ovviamente ... e non e' consigliabile usare una sola resistenza per riga o colonna, perche' a numeri di led diversi corrisponderebbero correnti diverse, che sballerebbero le luminosita', ne serve per forza una per led ...
Poi per farti i driver puoi usare dei mosfet, che ti daranno minore caduta di tensione dei transistor o dei driver gia fatti in case DIP come i vari ULN ed UDN ...
EDIT: l'ho visto solo ora ... no, una matrice non e' "in serie", e' "a griglia" ... il chip pilota una linea (o colonna, dipende come lo cabli) per volta, in multiplexing, ed i led di quella linea (o colonna) uno per uscita ... un capo dei led sara' in comune, l'altro connesso ognuno al proprio driver ... potrai ridurre la resistenza dei led di un po per compensare l'apparente diminuzione di luminosita' dovuta al multiplexing, anche se personalmente non scenderei sotto i 2.2 ohm per sicurezza, ma non avrai mai led "in serie" fra loro ...
Edit, Ete mi ha preceduto
Purtroppo non vedo soluzioni semplici
Max 7219 integra il regolatore di corrente per i led, tu dovresti farlo separato.
Se accendi più led questi sono in parallelo, è non in Serie. Questo complica discretamente i calcoli, dovresti mettere le resistenze di limitazione high side, e fin qui nessun problema.
Il primo problema lo hai col comando high side. Le uscite per i segmenti del 7219 non possono comandare i transistor per i led al 12 volt. Devi mettere un npn low side che comanda un pnp high side, lo npn va bene anche per usi generali, il pnp pure diciamo che 300 400 mA vanno una meraviglia.
In questa maniera perdi la programmabilita della corrente dei led, sempre accedi al massimo. Rimane invece la funzione del 7219 di regolare da seriale la luminosità, perché è pwm e passa dai due transistor
Secondo problema:
Il 7219 ha ingressi per i catodi comuni, a te servono uscite (più tecnico, i pin di catodo sono corrente sink, a noi servono corrente source)
non so, si potrebbe provare, a mettere un pnp con collettore a massa. Magari va
Altrimenti viene un casino, serve una porta NOT pulluppata che comanda un npn
Comunque qui i transistor devono reggere almeno un ampere, teorici 800mA
@Etemenanki esattamente il problema è proprio questo. Attualmente devo ancora montare i led nel pannello (lo terrei come ultimo step). Ho provato semplicemente a collegarli in serie (non pensavo fossero in parallelo) con una tensione di 5V.
Consiglio accettato metto delle resistenze prima di ogni led ed alimento il tutto con un alimentatore a 5V con un buon amperaggio.
Non mi è chiara la parte dell'utilizzo dei mosfet: devono essere messi in cascata al MAX (o altro driver)? se si in che modo? mi potresti indicare anche il modello dei mosfet?
non ho proprio modo di utilizzare i MAX al posto di altri driver? ho già fatto lo sketch, il cablato i MAX e fatto un'interfaccia web per comandare arduino! mi daresti una bella mazzata se devo rifarli !
Se metto una resistenza per ogni led e il mosfet al posto dei transistor in cascata a ogni uscita del max? come potete leggere nella parte elettronica ho grosse carenze
Il max7219 comanda dei display a catodo comune, i display li seleziona con un current sink, non vedo altra maniera che quella che ho descritto prima, se vuoi usare il max7219.
Non ho mai usato mosfet qui magari ci può aiutare etem, ma comunque sempre high side devi comandare, e sempre un current sink hai in uscita
Comunque nel documento che ho allegato c'é lo schema per usare col MAX7219 sia una tensione piú alta che una corrente piú alta. Se usi un transistore per aumentare la corrente devi mettere una resistenza che limita la corrente su ogni transistore amplificatore di corrente.
Per collegamento in serie intendo che se accendo più di un led per riga essi saranno collegati in serie tra loro.
Non ho trovato il documento citato da uwe, quindi ho pensato di guardare le AN di Maxim
Trovato suggerimento, geniale l'idea di invertire la logica semplicemente usando display ad anodo comune.
Comunque sempre un transistor (vabbe' un P mosfet) high side e uno low side servono
@uwefed hai ragione mi ero perso il tuo post. Il tuo link sembra la chiave per la risoluzione del problema.
me lo studio con calma e vedo se riesco a capirlo e a replicarlo
casomai vi chiedo ancora aiuto!
grazie ancora a tutti!
uwefed:
Il MAX7219 é un driver per LED a matrice 8x8 oppure un display a 8 cifre 7 segmenti con punto decimale a catodo comune che limita la corrente dei LEd e percui non servono resistenze. Funziona a 5V.
Non capisco cosa vuoi mettere in serie e per cosa Ti servono i 12V.
Se hai solo una alimentazione 12V allora usa un convertitore DC/DC per ottenere 5V.
Se hai dei Display per 10V (Display 7 segmenti di dimensioni piú grando dove sono 4 LED messi in serie e percui servono almeno 10V per alimentarli) segui questa guida:
7uk387:
... metto delle resistenze prima di ogni led ...
No, devi mettere una resistenza in serie ad ogni singolo led, poi li colleghi comunque a matrice ... nello schema che hai postato tu prima, immagina semplicemente che ogni singolo led abbia una resistenza in serie, il resto non cambia ...
... Non mi è chiara la parte dell'utilizzo dei mosfet ... ... non ho proprio modo di utilizzare i MAX al posto di altri driver? ...
Si che usi i MAX, solo che i MAX piloteranno 8 mosfet canale P ed 8 canale N, quelli canale P andranno agli anodi della matrice che chiuderanno verso il +5V, quelli canale N ai catodi verso massa, e dovrai pilotarli in inversione, oppure invertire la logica di pilotaggio di linee e colonne nello sketch, perche' per "accendere" un mosfet canale P serve collegare il gate verso massa, mentre le uscite degli anodi del MAX collegano verso VCC, e viceversa ... se inverti la logica nello sketch, risparmi un po di componenti, se invece non puoi, si possono usare 16 transistor, o 16 porte NOT (3 integrati), devi vedere tu che spazio hai ... come tipo di mosfet, piu corrente reggono e minore RdsON avranno, quindi meno caduta di tensione e led piu lumnosi ... l'unica cosa e' che dovranno essere per forza logic-level ... per i canale N c'e' una scelta piuttosto vasta, ma per i canale P ci sono pochissimi modelli ...
Etemenanki:
No, devi mettere una resistenza in serie ad ogni singolo led, poi li colleghi comunque a matrice ... nello schema che hai postato tu prima, immagina semplicemente che ogni singolo led abbia una resistenza in serie, il resto non cambia ...
Secondo me non è strettamente necessario mettere una resistenza per ogni diodo, ne basta una per ogni .....
riga o colonna a seconda dei casi, ma comunque quelli messi sulle uscite "segmenti" del maxim, non su quelli collegati alle uscite "digit", che in realtà sono current sink, il maxim accende casomai più di un segmento, mai più di un digit, quindi serve limitare la corrente sgmento per segmento, non digit per digit
il trucco è capire che il maxim multipla le cifre, non i segmenti, quindi i segmenti, che non sono multiplati, devono avere la loro resistenza di limitazione, credo che all'interno del maxim ci siano in realtà 8 specchi di corrente, dato che la luminosità è regolabile in analogico con una resistenza esterna, funzione questa che perdiamo mettendo dei transitor esterni sui segmenti
rimane il fatto che se si vuole alimetare carichi a tensione maggiore di quella del maxim servono due transistor High Side, uno basta per carichi alla stessa tensione del maxim, gira che si rigire sempre sugli stessi componenti si casca
a cercare sul si trova uno che anni fa è riuscito con un ULN e due udn uno dei quali usato solo come ottuplo not, ma siamo sempre qui, sempre le stesse cose diciamo
e con questo chiudo.