Led Matrix Playground

Ciao a tutti, sto cercando di provare questo dal playground

http://www.arduino.cc/playground/Main/MultiplexMAX72xx

ma il disegno e' piuttosto rovinato, e non sono segnati i valori dei condensatori, se sono elettrolitici o ceramici, e non mi sono ben chiari i collegamenti ad arduino...

Nessuno ha per caso un disegno meno sgranato?

ti serve per una matrice rgb?

Si, possiedo una matrice rgb di 8x8 bicolore e una coppia di quei led driver, i max7221. Quale occasione migliore per crearci qualcosa?

Ieri sera ho iniziato a cablare una breadboard che a tempo zero e' diventata un delirio e poi mi sono dovuto fermare alla fine del cablaggio del primo chip perche' erano finiti i fili che possedevo... devo farmene altri :) Ho tralasciato per ora la questione condensatore che ancora non ho capito, e della resistenza, che non ho capito perche' proprio quel valore. Per il resto dei pin invece, ho capito qualcosa col datasheet del 7221 alla mano.

Fede

leggi questo mio articolo:
http://www.stefanomanni.it/arduino/2009/03/10/control-a-5x7-led-matrix-with-a-max7219/

io uso un max7219 (ma e’ quasi identico al max7221) e una matrice singolo colore 5x7… pero’ magari ti puo’ essere di aiuto!

la resistenza la calcoli in base alle caratteristiche dei led che compongono la matrice… i condensatori DEVI metterli per forza perchè servono per limitare i disturbi…
su come funziona il driver sulla mia guida si capisce abbastanza!|

ciao

Il condensatore e' un ceramico, giusto? Stasera provo di nuovo seguendo la tua pagina anche. Grazie e vi faccio sapere!

credo non faccia motla differenza. l'importante è che siano dimensionati bene!

p.s. di consiglio di saldare su una millefori! con la breadboard e un casino!

Volevo fare almeno la prova di uno dei due chip, prima di saldarlo da qualche parte, ma effettivamente la vedo molto dura fare il cablaggio sulla breadboar dei due 7221... Devo un attimo inventarmi come fare, perche' potrei implementare poi questa matrice in uno scatotto e se faccio una scheda millefori, sarebbe da fare su piu' livelli...

Federico, poi ti chiedo se puoi portare anche la tua testimonianza al riguardo. Come sa uccio anche io mi devo cimentare su questo argomento appena finirò il mio primo progettino e un'esperienza a riguardo ulteriore farebbe comodo. 8-)

Sicuramente! Ho pensato di iniziare con un colore solo, per semplicita', e poi passare all'altro (si tratta solo di replicare il circuito). Vorrei tentare di mantenerlo compatto, sotto la matrice per quanto possibile, per installarlo magari assieme alle mie diavolerie in auto, magari posso farci le animazioni di space invaders quando viene notte, che ne so :) In realta' a tal proposito, avevo visto questa realizzazione http://tinkerlog.com/howto/64pixels/ che e' MOLTO bella, ma in particolare non ho un attiny, non ho un programmatore di eeprom, e non ho idea di come si programmi un attiny. PS: la sua matrice poi, e' a led quadrati, che secondo me e' molto piu' figa della mia, a led rotondi.

Puoi usare arduino per programmare gli ATtiny:

http://www.uchobby.com/index.php/2007/11/04/arduino-avr-in-system-programmer-isp/

Altri sistemi qui:

http://www.avrprojects.net/index.php?option=com_content&view=category&id=35&Itemid=55

Guardando la versione "serial", noto che e' del tutto simile a una parte che e' presente su un miniPOV che possiedo, e infatti il minipov si programma direttamente cosi' com'e', con un attiny2313 se non leggo male... magari posso usarlo come programmatore... se mi capita, provo.

Per la matrice di led, relativa a quel playground. Ho cablato su una breadboard per adesso tutta la parte di un colore, e ho testato il codice di esempio, e funziona. Non ho capito bene tutta la questione di sti ISR che sembrano tanto cruciali quanto complessi, ma non l'ho studiata neanche molto. Volevo capire se stavo cablando giusto, visto che devo fare ancora molto :) Per dover di cronaca, ho utilizzato una resistenza da 10k al posto di quella da 26, e un condensatore elettrolitico da 1uF al posto di quello da 0.1 che ho visto in alcuni esempi. (Materiale che avevo qui)

Fede

Ho cablato anche il secondo chip, e continua a funzionare :) Ora vediamo se si riesce a fare qualche animazione basica...

Sto andando abbastanza fuori di testa... Lo schetch base proposto sulplayground funziona, e funziona anche qualche semplicissima testo di loop, tipo accendi colonna,riga X,X uno verde e uno rosso, per ottenere una diagonale sullo schermo.

I dolori arrivano quando provo a indirizzare i led singolarmente per fare disegni. Ho provato sia col setrow in binario (e pure la conversione decimale) sia con l'accensione dei singoli led. L'effetto che ottengo e' che con la frequenza settata a 650hz funzionano gli sketch precendenti, ma l'accensione dei led normalmente si inchioda brevemente, e si iniziano ad accendere led A CASO sulla matrice. Abbassando di brutto la frequenza, e impostando valore 500 (che secondo me, sara' attorno ai 70hz) con lentezza crea il disegno, e ogni tanto perde l'accensione di qualche led.

Insomma, una schifezza.

li hai messi i condensatori ben dimensionati??? ecco a cosa servivano! ed ecco perchè in qualche post fa scrissi DEVONO essere messi.

se non fa neanche con i condensatori allora non hai capito bene come si indirizzano i singoli led sulla matrice! Leggendo la fine del mio post dovresti capire bene come si indirizzano!

Il condensatore, uno per due chip, l'ho tirato a caso a dire il vero, ho visto sulla tua pagina che ne indichi due, ho visto pero' sul datasheet del 7221 ne indica un altro, e il playground che ho seguito un altro ancora.. mi lascia un po' perplesso... Potrebbe essere per questo che i led non si accendono sempre correttamente? Sono sicuro di indirizzarli bene perche' prima o poi si accendono quelli che indico io, ma devo smanettare parecchio coi delay e la frequenza di aggiornamento in hz della matrice...

allora sono i condensatori! io ho usato i condensatori che vengono indicato nel datasheet del max7219. Tu che usi il 7221 fai quello che ti dice il datasheet

Ci sto andando matto :slight_smile:
Vi racconto meglio la situazione attuale. Led matrix, 8x8 con due max7221. Seguendo questa pagina, http://www.arduino.cc/playground/Main/MultiplexMAX72xx , tutto il suo codice funziona. Alternativamente, seguendo la pagina di uccio, http://www.stefanomanni.it/arduino/2009/03/10/control-a-5x7-led-matrix-with-a-max7219/ , tutto il suo codice funziona. Con il codice di uccio non ho provato la doppia matrice, ma col primo codice si, e funzionano entrambi i colori.

I condensatori non fanno sostanzialmente alcuna differenza, ho notato, con quei codici.

Il problema nasce tutto quando cerco di fare qualcosa di diverso. Per ora ho provato solo con la libreria ledcontrol. Se faccio una animazione di punti che ciclano, funziona. Se cerco di fare un disegno fisso no, inizia a flikerare la matrice e buonanotte. Sembra un problema di refresh, o di frequenza, o di delay.

Esistono atre librerie? Metre scrivo sto studiando il metodo di uccio, che cosi’ “ou of the box” fa fare alla mia matrice quello che fa la sua, per vedere se riesco a fare disegni, ma poi ci sarebbe il problema di gestirne due di matrici (due colori), cosa che la liquid fa bene.

Oppure, sbaglio qualcosa di ovvio?
Fede

PS: In aggiunta, sempre dal codice di uccio, le funzioni di scroll delle lettere (o anche quelle fisse) non mi funzionano. Funziona invece il primo esempio di scroll di righe.

EDIT: POTREBBE ESSERE UN PROBLEMA DI CABLAGGIO. Dico potrebbe perche’ non sono piu’ sicuro di niente, ma mi sono accorto che avvicinando un dito alla breadboard, SENZA TOCCARE I FILI, la matrice sbarella in maniera diversa, a seconda di quanto sono vicino col dito. C’e’ una quantita’ indecente di cavi sulla board per questo progetto, e forse… Ho capito comunque che il cablaggio e’ sostanzialmente corretto, dovrei fare una scheda per saldarcelo su, purtroppo non ho trovato schemi di schede gia’ fatte per 2 chip e una sola faccia, e la cosa mi complichera’ non poco la vita…

Non potrebbe essere un problema di assorbimento di corrente dei led ? Ciclando ne hai uno solo aceso per volta, con l'immagine fissa molti. Prova ada ccenderne 1, poi 2 poi 3 e vedi se a un certo numero inizia a dare problemi.

Ci ho pensato, e ho provato ad alimentare l'arduino esternamente, eppure non cambia. Voglio comunque provarlo ancora tutto questo alla luce di nuove considerazioni che ho fatto...