Salve a tutti, ho un piccolo problema che non so risolvere e spero in qualche consiglio. Mi sono costruito una matrice 8x8 di led ad alta luminosità (3,2-3,8 V | 30mA), e li controllo con due shift register (74HC595 per le colonne, TPIC6A596NE per le righe). Se accendo tutti i led in una singola riga funziona perfettamente, mentre se provo ad attivare solo qualche led, sempre sulla stessa riga, si accendono anche altri led in righe diverse ma con una luminosità più bassa. Qualche consiglio? io non so più dove sbattere la testa, vi allego anche lo schema per farvi capire come ho collegato il tutto (al posto dell'atmega c'è arduino)
come hai collegati i led?
Hai lo stesso effetto quando usi i 2 Shiftregister non in serie ma se li programmi in modo separato collegandoli al ATmeda con piedini diversi?
Seguendo la seguente sequenza:
- spegni i led delle colonne del 595
- programmi la prossima righa
- programmi il 595 per i led che devono essere accesi.
Ciao Uwe
Ciao uwefed, grazie per l'aiuto.
Ho collegato gli anodi di ogni colonna in modo di avere otto anodi comuni, e la stessa cosa ho fatto con i catodi dei led, quindi per ogni riga ho un catodo comune (sono diventato bravo a saldare :D).
Ho provato a utilizzare i register in modo separato, ma ottengo lo stesso effetto.
uwefed:
Seguendo la seguente sequenza:
- spegni i led delle colonne del 595
- programmi la prossima righa
- programmi il 595 per i led che devono essere accesi.
Questa non l'ho capito?
Pero' grazie alla risposta che mi avevi dato precedentemente ho scoperto il problema =( (penso
).
Il TPIC vuole corrente su tutte le uscite, io per accendere solo qualche led non d'ho corrente ad alcune uscite, e in quelle uscite la corrente non viene bloccata completamente per questo alcuni si accendono. La prima soluzione che mi era venuta in mente era dare i 5v su tutte le uscite del TPIC, risultato? Non funziona niente XD, dopo qualche prova ho capito che dovevo dare i 5v a tutte le uscite tranne alla riga che volevo accendere, risultato? Funziona XD. Quindi per gestire il tutto in teoria devo usare 3 shift register =( , due 595 e un TPIC. Un 595 e un TPIC controllano la matrice, mentre il secondo 595 da i 5V alle uscite del TPIC che non si devono attivare (tutto in teoria, appena ho l'illuminazione ci provo). Il problema sarà infilare il tutto in una basetta 100x70. Ma esiste qualche integrato che riesca a gestire sta benedetta matrice?
credo che un MAX72xx da solo riesca a far funzionare la matrice dovrei provarlo anche io su una matrice 8x8 appena finisco la sessione d'esami ![]()
prova a dare un'occhiata! Arduino Playground - LEDMatrix
Sí il Max7219 puó pilotare una matrice LED 8x8 e limita anche la corrente.
Il TPIC6A596NE ha come uscite dei transistori open Drain; puó solo portare a massa l' ucita. L' uscita va a massa quando scrivi un 1 nel registro.percui B11111111 fanno condurre tutte le uscite e percui li portano a massa.
Non ho capito il seguente:
Quindi per gestire il tutto in teoria devo usare 3 shift register smiley-cry , due 595 e un TPIC. Un 595 e un TPIC controllano la matrice, mentre il secondo 595 da i 5V alle uscite del TPIC che non si devono attivare
No, non funziona cosí. Devi collegare i catodi al TPIC6A596NE e accenderne un uscita dopo l' altra (una riga dopo l'altra) e gli anodi (collonne) devi collegare con la resistenza alle uscite del 595. per ogni led acceso devi mettere a HIGH la corrispondente uscita; per il led spento a LOW.
Ciao Uwe
uwefed:
Sí il Max7219 puó pilotare una matrice LED 8x8 e limita anche la corrente.
Ma riesce a gestire i 240mA (peggiore dei casi) di una riga della matrice? Altrimenti mi ritrovo con lo stesso problema dei register.
uwefed:
No, non funziona cosí. Devi collegare i catodi al TPIC6A596NE e accenderne un uscita dopo l' altra (una riga dopo l'altra) e gli anodi (collonne) devi collegare con la resistenza alle uscite del 595. per ogni led acceso devi mettere a HIGH la corrispondente uscita; per il led spento a LOW.
Questo e' come l'ho utilizzato io XD, sto cercando di scrivere un post semplice da mezz'ora ma non ci riesco (soprattutto perché' di elettronica non ne capisco molto). Stasera provo a fare una foto della matrice con il problema che ti ho descritto, penso che quando la vedi la capisci al volo
kvsd:
uwefed:
Sí il Max7219 puó pilotare una matrice LED 8x8 e limita anche la corrente.Ma riesce a gestire i 240mA (peggiore dei casi) di una riga della matrice? Altrimenti mi ritrovo con lo stesso problema dei register.
Il datasheet dice:
Valori massimi: Current
DIG 0–DIG 7 Sink Current...............................500mA (per una riga di 8 LED)
SEG A–G, DP Source Current...........................100mA (per ogni LED)
A pagina 11 sel http://datasheets.maxim-ic.com/en/ds/MAX7219-MAX7221.pdf vedi tabella 11 trovi la resistenza in funzione della corrente per i led in funzione al loro colore (Uf)
uwefed:
No, non funziona cosí. Devi collegare i catodi al TPIC6A596NE e accenderne un uscita dopo l' altra (una riga dopo l'altra) e gli anodi (collonne) devi collegare con la resistenza alle uscite del 595. per ogni led acceso devi mettere a HIGH la corrispondente uscita; per il led spento a LOW.
kvsd:
Questo e' come l'ho utilizzato io XD, sto cercando di scrivere un post semplice da mezz'ora ma non ci riesco (soprattutto perché' di elettronica non ne capisco molto). Stasera provo a fare una foto della matrice con il problema che ti ho descritto, penso che quando la vedi la capisci al volo
Allora per cosa Ti serveono due 595, di cui uno in combianzione col TPIC6A596NE?
Ciao Uwe
Ecco le foto, nella seconda foto c'è il problema che ti dicevo. I led che dovrebbero essere accesi sono i quattro dell'ultima fila. Questa e' la parte del codice che accende i led:
digitalWrite(latchPin1, LOW);
digitalWrite(latchPin2, LOW);
shiftOut(dataPin1, clockPin1, MSBFIRST, 11110000); //74HC595
shiftOut(dataPin1, clockPin1, MSBFIRST, 10000000); //TPIC6A596NE
digitalWrite(latchPin1, HIGH);
digitalWrite(latchPin2, HIGH);
Considera che la prima uscita del 595 corrisponde a quella del TPIC.
Nelle prime quattro uscite del TPIC arriva corrente e problemi non ce ne sono, mentre nelle ultime non arriva niente e i led si accendono. Collegando i 5v alle uscite del TPIC che non ricevono corrente il problema sparisce. Le uscite del secondo 595 andrebbero collegate direttamente al TPIC per dare corrente alle righe che non si dovrebbero attivare.
Praticamente alle uscite del TPIC deve arrivare sempre corrente o son dolori.
Fortunatamente ho mandato a prendere il MAX7219 cosi non mi incasino la vita.
Ripeto quello detto.
Il TPIC é un integrato che porta le ucita a massa ma non a +5V (Open Drain) devi collegarci i catodi dei LED.
al 595 devi collegare con le resistenze gli anodi.
Fin'adesso non hai detto come hai collegato i LED e dallo schema non riszlta visto che non hai disegnato la matrice dei LED.
Ciao Uwe


