6 display a 4 cifre

Ciao, devo collegare ad arduino (per ora) 6 display a 4 cifre, per un totale di 24 cifre.
Avevo pensato di usare 3 max7219. Due cose non mi sono chiare:

  • con che frequenza arduino riuscirà a gestire i max7219. Esiste un modo per calcolarlo considerando anche che in futuro potrei arrivare a dover gestire molti più max7219 ? Cioè posso incorrere in problemi di lentezza nel refresh dei led ?

  • con i 3 max7219, avrò molto probabilmente 3 cifre delle 24 totali accese contemporaneamente, e calcolado che ognuna può assorbire fino a 400mA, avrò bisogno di 1200mA. In che modo dovrò alimentare arduino ? Basta utilizzare un alimentatore esterno ? E se dovessi aver bisogno di 3000mA, rischio di bruciare qualcosa ? C'è un limite di mA che posso fornire ad arduino ?

Grazie

L' interfaccia del MAX7219 funziona fino a 10MHz. Devi trasmettere 8 Byte per un refresh. Se lo colleghi al SPi con 1/2 clock ci metti un centinaio di µS per tutte 24 Cifre.

Come arrivi a 400mA?

Ciao Uwe

uwefed:
Come arrivi a 400mA?

Bhe si in effetti meno di 400. Ho letto che un segmento può assorbire dai 20 ai 30mA quindi x8 = 160, 240mA.
Collegando le 24 cifre più una 20ina di led vari, da dove prendo la corrente per alimentare il tutto ? Dal pin dei +5v? O la prendo direttamente dall'alimentatore ?

Molti pensano che il multiplexing di 20 - 30 cifre BCD carichi molto il mc a motivo del rinfresco ma in realtà il carico è piuttosto basso

esempio:
24 display led anodo comune, basso consumo,
4 shift register esterni tipo 4094 , 3 sono usati come selezione cifra sul anodo comune mediante 3 udn2981 e il quarto usato come valore cifre mediante uln2803 + 8 resistenze in modo da avere massimo 30 mA per ogni segmento, in totale sul micro si usano 3 pin : ck, data e strobe

ciclo di scansione in interrupt = ogni 800usec circa che corrisponde a 50hz di rinfresco totale
tempo di caricamento 32 bit in 4 shift register esterni a circa 1Mbit di ck = 40usec

-mc_duty (carico del microcontrollore)= 40/800 = 5% , restano liberi per altre cose il 95% del tempo
-consumo totale 24 cifre = 240mA quando tutti i 192 segmenti accesi (compresi i punti decimali)
-impiego di un timer hardware a 8 bit impostato come periodic timer, che è possibile utilizzare anche come RTC per il sistema

ciao icio
Sei partito.
La partenza sono 3 MAX7219.

Il MAX7219 fa il multiplexing 1 di 8 cifre a 7 segmenti. se non devono essere leggibili alla luce del sole puoi pilotare i display tra 5 e 10 mA. Visto che al massimo sono accesi sempre solo 8 (7 segmenti e punto decimale se usato) arrrivi a 40 a 80mA. Per tre sono allora 120 a 240mA per tutti i display.
La USB puó dare 500mA e percui hai tra 400 e 450 mA a disposizine per i LEd. Se non basta devi aliemntare i MAX7219 e i rispettivi LED con un aliemtnatore 5V esterno. Collega le masse.
Ciao Uwe

Devuhm:
Ciao, devo collegare ad arduino (per ora) 6 display a 4 cifre, per un totale di 24 cifre.
Avevo pensato di usare 3 max7219. Due cose non mi sono chiare:

  • con che frequenza arduino riuscirà a gestire i max7219. Esiste un modo per calcolarlo considerando anche che in futuro potrei arrivare a dover gestire molti più max7219 ? Cioè posso incorrere in problemi di lentezza nel refresh dei led ?
    Grazie

forse c'è una terza cosa che non ti è chiara ]:smiley: il max 7219 fa tutto lui è come "se fosse" un lcd,
gli spedisci il dato da visualizzare e te lo visualizza fino a che non ne invii un altro diverso,
non vedo l'utilità di inviare un dato con una frequenza talmente alta che l'occhio fatica a vedere/distinguere,

Sono d'accodo con te uwefed, era solo una svisata :smiley:

icio:
Molti pensano che il multiplexing di 20 - 30 cifre BCD carichi molto il mc a motivo del rinfresco ma in realtà il carico è piuttosto basso

mah... (secondo me) ti sbagli se fai multiplexing (vero) devi dare una pausa tra una cifra e l'altra
e se ti abbassi troppo vedi una ciofeca

e se il micro deve fare anche qualcos'altro che prende più tempo di 10 millis () la visualizzazione peggiora,
se usi interrupt nello sketch non ne parliamo nemmeno

convinto te gingardu convinti tutti

icio:
convinto te gingardu convinti tutti

ci mancherebbe ... lungi da me convincere qualcuno... quello che dico me l'ha insegnato la (non molta) pratica che ho fatto,
e che progetti campati in aria (solo scrivere lo sketch) con la ferma convinzione che funzionano davvero c'è ne una marea,
ne ho fatti pure un paio, fortunatamente solo 2-3 di settimane di tempo libero perso =( ,
ho anche cercato di farli funzionare collegando dopo l'hardware :~

poi magari abbiamo idee diverse sul significato di multiplex e alla fine hai ragione tu

Adesso si ragiona gingardu,

Questo video che ho fatto una decina di anni fà mostra un display (fino a 22 cifre) con un'aggiornamento di 9000 volte al secondo che corrisponde passi / secondo degli stepper, comunque posso aggoirnarlo fino a 35.000 volte al secondo senza sfarfallamenti

http://www.procommel.altervista.org/download/vpcb.3gp

è tutto in multiplexer con un unico processore motorola 68hc705p6 otp programmato in assembler, con una velocità 4 volte meno di arduino

Se ti leggi attentamente il mio messaggio precedente capirai come si fà

Io però non uso il compilatore arduino , uso AVRSTUDIO + WinAVR e le librerie me le costruisco tutte da me, ogni tanto uso una scheda arduino ma solo la scheda , non uso una sola riga di codice di arduino