Programma Arduino

Ciao a tutti :slight_smile:

Ho realizzato su breadboard un circuito composto da una matrice,con relativo max7219 per comandarla ed invio i soliti 3 dati da arduino attraverso 3 fili..il tutto funziona se non cerco di accendere piu di un certo numero di led..altrimenti si spegne la matrice.
Ovviamente è perchè mancherà corrente,quindi invece di utilizzare l'alimentazione di arduino,ho utilizzato un alimentatore esterno che mette a disposizione 2A(VERIFICATI),ma anche in questo caso non funziona come dovrebbe..se cerco di accendere piu di 16 led,dato che la matrice è 8x8,questa si spegne..(Tutte le masse le ho gia messe in comune).
Volevo chiedervi il perché?..dato che il max7219 non dovrebbe accendere soltanto 8 led per volta,ma dare l'impressione che tutti siano accesi?..
per fare ciò occorrono delle librerie?..io utilizzo soltanto LedControl.h,e binary.h..HELP :slight_smile: :slight_smile:

Sí il MAX7219 fa multiplecing e percui accende sempre al massimo 8 LEd alla volta.
Hai messo la resistenza sul pin 18 verso +5V per limitare la corrente dei LED?
http://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf pagina 11, tabella 11. metti per la prova qualcosa tra 33 e 47kOhm.
Ciao Uwe

Si certo che ho messo la resistenza..da 33 kohm per precisione..si certo ci sono 8 led accesi per volta,ma deve sembrare che siano accesi tutti,come faccio?..forse non so scrivere il programma o includere determinate librerie..leggevo di sprite.h ma mi da errore.

C'è una lib che si chiama LedMatrix che serve a pilotare la matrice in automatico,
qui ci sono un pò di cose utili
http://playground.arduino.cc/Main/LEDMatrix#.UyIZZs6mWQy

leo72:
C'è una lib che si chiama LedMatrix che serve a pilotare la matrice in automatico,
qui ci sono un pò di cose utili
Arduino Playground - HomePage

Si per fare il tutto ho seguito tutto quello che c'è scritto su arduino playground..quello che non riesco a fare è come scrivere il programma in modo da dare alla matrice il codietto effetto "scrolling",ovvero far sembrare che tutti i led siano accesi..per questo ho fatto la domanda sul forum..per sperare che qualcuno mi possa dare una mano..

Il MAX7219 ha 8 registri. Lí scrivi se un LED é acceso o no. Il numero viene interpretato bit per bit. Ogni bit corrisponde a un LED. Il MAX7219 fa automaticamente il pilotaggio riga dopo riga.

Ciao Uwe

uwefed:
Il MAX7219 ha 8 registri. Lí scrivi se un LED é acceso o no. Il numero viene interpretato bit per bit. Ogni bit corrisponde a un LED. Il MAX7219 fa automaticamente il pilotaggio riga dopo riga.

Ciao Uwe

Ma..io scrivendo un qualsiasi codice ad esempio "accendi una riga di led",mi si accende la riga di led ma rimane fissa..non scorre automaticamente..
Evidentemente non lo programmo come dovrei programmarlo..oppure non gli scrivo dentro a quei registri ma gli scrivo non so dove..non so..
Nessuno ha gia usato questo tipo di driver e puo aiutarmi?..e dirmi come scrivere il programma per far si che il max7219 scorra in automatico ogni dato?
Grazie.

Andrea_21:
Evidentemente non lo programmo come dovrei programmarlo..oppure non gli scrivo dentro a quei registri ma gli scrivo non so dove..non so..

Evidente ma se non posti il tuo codice, come facciamo a capire dove sbagli?

Oppure provi un codice già fatto.
Hai provato questo codice demo Matrix per la LedControl?
http://playground.arduino.cc/Main/LedControlDemos#LedMatrixDemo

Andrea_21:
Ma..io scrivendo un qualsiasi codice ad esempio "accendi una riga di led",mi si accende la riga di led ma rimane fissa..non scorre automaticamente..
Evidentemente non lo programmo come dovrei programmarlo..oppure non gli scrivo dentro a quei registri ma gli scrivo non so dove..non so..
Nessuno ha gia usato questo tipo di driver e puo aiutarmi?..e dirmi come scrivere il programma per far si che il max7219 scorra in automatico ogni dato?
Grazie.

Sei tu che devi "dirgli" tramite un programma cosa deve fare. Il chip si limita ad accendere i LED a seconda dei comandi che gli spedisci. Per far scorrere la riga devi scrivere il codice che esegua questo compito.

Sei tu che devi "dirgli" tramite un programma cosa deve fare. Il chip si limita ad accendere i LED a seconda dei comandi che gli spedisci. Per far scorrere la riga devi scrivere il codice che esegua questo compito.

OK ho capito,ma nessuno sa dirmi come?..Cioè come scrivere un codice per il quale il max7219 fa scorrere la riga o la colonna sulla matrice,in modo che tutte le righe sembrano accese..io riesco ad accenderne 8 per volte e con dei cicli for a far scorrere le righe,ma semplicemente spegnendo una riga ed accendendone un altra..io voglio che tutti i led sembrano accesi..come faccio??