Pilotaggio di grandi display 7 segmenti con MAX7219

Buongiorno a tutti,

ho intenzione di costruire un pannello segnapunti composto da n.3 cifre a 7 segmenti alte almeno 20cm, indipendentemente dalla composizione delle cifre in termini di led 5mm, vorrei proporvi lo schema che avevo pensato per il pilotaggio tramite l'interfaccia seriale di arduino. Tale soluzione dovrebbe essere valida anche per la regolazione della luminosità dei display tramite tecnica pwm. I valori di transistor e resistenze saranno scelti in funzione della configurazione dei led che sceglierò di adottare (sto studiando vari siti internet per capire come funziona un NPN in saturazione e come calcolare la resistenza di saturazione).

Pensate sia una buona idea o ci sono soluzioni migliori?

BuonGiorno anche a te.

Non mi pare che il MAX7219, sia pilotabile in PWM.... anzi, non lo e' proprio, dato che gestisce i display in mutliplexing.
Poi c'e' un errore sul transistor collegato alla linea DIGIT. Li' hai un livello logico LOW quando viene pilotato il digit interessato ( il MAX7219 vuole display a Catodo comune ) e se metti un solo NPN condurra' quando dovrebbe essere spento.

poi c'e' questa cosa che non ho capito

vorrei proporvi lo schema che avevo pensato per il pilotaggio tramite l'interfaccia seriale di arduino

il MAX7219 Serially Interfaced, 8-Digit LED Display Drivers, non e' che va' colllegato alle line Rx e Tx , ma forse ti riferivi al poter gestire il display, attraverso la seriale di Arduino collegata a un PC.

Grazie per essere intervenuto, seguo passo passo le tue indicazioni:

brunello:
Non mi pare che il MAX7219, sia pilotabile in PWM.... anzi, non lo e' proprio, dato che gestisce i display in mutliplexing.

Io pensavo che la luminosità fosse gestita tramite pwm, se non è possibile con quale tecnica viene regolata la luminosità da questa libreria (vedi il video)
http://www.icanmakeit.de/2012/06/20/icmi-max7219-arduino-library/

brunello:
Poi c'e' un errore sul transistor collegato alla linea DIGIT. Li' hai un livello logico LOW quando viene pilotato il digit interessato ( il MAX7219 vuole display a Catodo comune ) e se metti un solo NPN condurra' quando dovrebbe essere spento.

Hai ragione, sorry, errore mio nel disegnare il circuito. Dovrei sostituirlo con un PNP giusto?

brunello:
il MAX7219 Serially Interfaced, 8-Digit LED Display Drivers, non e' che va' colllegato alle line Rx e Tx , ma forse ti riferivi al poter gestire il display, attraverso la seriale di Arduino collegata a un PC.

Io avevo pensato collegare i piedini DIN CLK e LOAD del MAX7219 a tre qualsiasi output pwm dell'arduino .... ma a parte questo, ora mi è sorto un dubbio. Che differenza ce tra un output PWM e la linea Rx/Tx?

edit: all'ultima domanda credo di potermi rispondere da solo in quanto Rx e Tx utilizzano il protocollo UART che non è la stessa cosa di un semplice I/O pwm.

Io pensavo che la luminosità fosse gestita tramite pwm, se non è possibile con quale tecnica viene regolata la luminosità da questa libreria (vedi il video)

In effetti c'e' una regolazione in PWM della luminosita', ma gestita direttamente dal chip e non con un pin PWM di arduino, bensi' scrivendo in un registro del chip il valore ( da 0 a 15 ) di riduzione rispetto alla limitazione di corrente data dalla scelta della resistenza di carico.
In genere a gestirla c'e' un apposito comando della libreria

Hai ragione, sorry, errore mio nel disegnare il circuito. Dovrei sostituirlo con un PNP giusto?

Anche. Ma sulla linea di alimentazione positiva, non sulla massa

Io avevo pensato collegare i piedini DIN CLK e LOAD del MAX7219 a tre qualsiasi output pwm dell'arduino .

Non ti servono specificatamente dei Pin PWM, ma dei qualsiasi Pin.

Salve, in questi giorni mi sono arrivati i led e ho potuto fare una prova di un digit per verificarne l'intensità luminosa, configurando i led in serie-parallelo come previsto.
Ora rispetto allo schema iniziale ho sostituito i BJT con dei MOSFET, pilotati dal MAX7219, e mi trovo a dover scegliere quale modello adottare.

Mi serviranno dei MOSFET N per i singoli segmenti, e dei MOSFET P per ogni digit. In giro ho letto che per il mio scopo mi serviranno dei MOSFET Logic Level, ma mentre di tipo N son riuscito a trovarne (vedi NTD5867NL), per il tipo P non sono riuscito a trovare niente negli store online. Avete qualche suggerimento?

f_giorgio:

brunello:
Non mi pare che il MAX7219, sia pilotabile in PWM.... anzi, non lo e' proprio, dato che gestisce i display in mutliplexing.

Io pensavo che la luminosità fosse gestita tramite pwm, se non è possibile con quale tecnica viene regolata la luminosità da questa libreria (vedi il video)
http://www.icanmakeit.de/2012/06/20/icmi-max7219-arduino-library/

nel link da Te citato é scritto:

The MAX7219 offers a built-in brightness control for the display with a 16 step resolution. This method allows you to set the brightness level for the display and accepts value from 1 (darkest) to 16 (brightest).

Condivido l' idea di brunello che non é sensato aggiungere transistori.

Ciao Uwe

uwefed:

f_giorgio:

brunello:
Non mi pare che il MAX7219, sia pilotabile in PWM.... anzi, non lo e' proprio, dato che gestisce i display in mutliplexing.

Io pensavo che la luminosità fosse gestita tramite pwm, se non è possibile con quale tecnica viene regolata la luminosità da questa libreria (vedi il video)
http://www.icanmakeit.de/2012/06/20/icmi-max7219-arduino-library/

nel link da TE citato é scritto:
T

he MAX7219 offers a built-in brightness control for the display with a 16 step resolution. This method allows you to set the brightness level for the display and accepts value from 1 (darkest) to 16 (brightest).

Ciao Uwe

Si ti ringrazio, questa cosa è stata confermata, si era solo creato un fraintendimento sul modo in cui fosse gestita la luminosità, ma la cosa importante è che sia fattibile.

Ora il problema sono i MOSFET che gestiscono le serie di LED a partire dal MAX7219. Per i segmenti una soluzione potrebbe essere il seguente MOSFET N Logic Level

mentre il MOSFET P che gestisce i digit non son riuscito a trovarlo Logic Level, pertanto sono in cerca di soluzioni.

Allora, ho letto diverse cose sui mosfet sia su internet che su un libro di elettronica. A volte mi son trovato di fronte anche a informazioni discordanti, tuttavia cerco di fare un ragionamento che spero vogliate correggere se sbagliato.

Prendiamo un MOSFET N Channel e lo polarizziamo come previsto nel progetto. I normali mosfet hanno una Vth massima di 4V, quindi teoricamente potrei applicare una Vgs di 4.5 V o 5 V e il mosfet dovrebbe accendersi con una Id che possiamo valutare dal datasheet. Proprio perché con mosfet generici e Vgs "logiche" la Id disponibile è bassa (anche se forse per il mio scopo, cioè max 150mA, potrei farcela ) scegliamo di adottare dei Mosfet Logic Level, con Vth massima di 2V, capace di accendersi già con 3.3V e con Id già di diversi Ampere.

Per non mettere troppa carne sul fuoco, prima di procedere sul ragionamento sui MOSFET P, vorrei sapere se quanto detto finora è corretto. Vi ringrazio per l'aiuto datomi fin'ora.

ma perche' vuoi usare dei MOSFET ?

Non ho ben capito quanti led avrai per segmento, neppure se li alimenti a 12V o 24V, ma non mi pare che ci sia bisogno di cosi' tanta corrente per scomodare un MOSFET .
un ULN2003 basta e avanza per pilotare i segmenti.
Ci gestisci i sette segmenti e ti costa pure meno di un solo MOSFET

Non sono un esperto di elettronica, determinati componenti se non li trovo in qualche ricerca o se non me li indica qualcuno sono del tutto a me sconosciuti.
Inizialmente avevo pensato a dei BJT, poi un amico mi ha fatto notare che i MOSFET non consumano corrente e sono più facili da implementare per un neofita.

Venendo ai segmenti, ognuno è composto da due serie da 9 led (quindi 18 led in totale), e i led consumano 18mA, quindi 36mA per segmento, il tutto alimentato a 24V.
Nel display, però, la situazione peggiore che dovrò gestire (allo stesso modo dei digit) sarà 8 serie da 8 led, quindi 8x18=144mA.

Ho rivisto completamente lo schema del mio progetto grazie al consiglio di brunello, ora dovrei avere diversi mA di consumo in più, ma a fronte di un risparmio sulla spesa economica notevole.

Edit: Piccola distrazione, il ULN2003 in basso in realtà è un UDN2981.

Ho rivisto completamente lo schema del mio progetto grazie al consiglio di brunello, ora dovrei avere diversi mA di consumo in più, ma a fronte di un risparmio sulla spesa economica notevole.

Perche' mA in piu'.. ?
il Max7219 gestisce il tutto in multiplexing, quindi al massimo avrai il consumo di una cifra.
Non e' che se usavi dei Mosfet ci potevi mettere il bollino "Green Energy"

il Max7219 gestisce il tutto in multiplexing, quindi al massimo avrai il consumo di una cifra.

:astonished: Quanto hai ragione .... ero talmente concentrato su ciò che seguiva il MAX7219 che mi ero proprio dimenticato di questo particolare.

Non e' che se usavi dei Mosfet ci potevi mettere il bollino "Green Energy"

Si il discorso nasce dal fatto che un amico mi consigliava dei mosfet per il consumo di corrente praticamente nullo rispetto agli iniziali BJT previsti, considerando la cosa conveniente visto che all'inizio il progetto doveva essere alimentato a batteria (e forse lo sarà in un secondo momento). Non so quanto questo sia vero nella realtà perchè non sono un esperto però facendo due conti con tutti i soldi che avrei speso x i mosfet potrei comprare delle eventuali batterie piu grandi. Quindi il gioco non valeva la candela alla fine.