Ma ti avevo già passato un link che spiegava bene la cosa: http://playground.arduino.cc/Main/DirectDriveLEDMatrix
Oltretutto lì hai il pilotaggio della matrice con un interrupt, per cui non avresti neanche bisogno di visualizzare i dati dal loop.
Altrimenti cerca "arduino led matrix 8x8" e ti vengono fuori un sacco di progetti.
Ho fatto due prove ma ancora non riesco a capire per quale motivo non vada. La Piedinatura dovrebbe essere come questa http://arduino.cc/en/Tutorial/RowColumnScanning eventualmente come faccio a sapere se è come questa o no ? dovrei trovare il datasheet ?
ho modificato lo sketch in questo modo
byte col = 0;
byte leds[8][8];
// pin[xx] on led matrix connected to nn on Arduino (-1 is dummy to make array start at pos 1)
int pins[17]= {-1, 13, 12, 11, 10, 16, 17, 18, 19, 2, 3, 4, 5, 6, 7, 8, 9};
// col[xx] of leds = pin yy on led matrix
int cols[8] = {pins[6], pins[11], pins[10], pins[3], pins[17], pins[4], pins[8], pins[9]};
// row[xx] of leds = pin yy on led matrix
int rows[8] = {pins[2], pins[7], pins[19], pins[5], pins[13], pins[18], pins[12], pins[16]};
. Si accende tutto ma in modo disordinato senza creare nessuna lettera.
Come faccio a farlo funzionare ?
Grazie ancora!
Si ho provato lo sketch del link , cambiando la posizione dei pin, ma mi accende in maniera disordinata i led senza disegnare niente. Come posso fare ? Vuoi che ti mandi il link dello sketch modificato ?
Ma hai provato a scrivere un semplice codice composto da 2 for annidati, in cui nel primo attivi 1 anodo e poi nel secondo cicli fra gli 8 led di quella riga ti funziona?
Tipo così:
void loop() {
for (byte i = 0; i < 8; i++) {
digitalWrite(rows[i], HIGH); //controlla i tuoi collegamenti
for (byte j = 0; j < 8; j++) {
digitalWrite(cols[j], LOW);
delay(250);
digitalWrite(cols[j], HIGH);
}
digitalWrite(rows[i], LOW);
}
}
PS:
nel setup() metti tutti gli anodi su LOW e tutti i catodi su HIGH, almeno non scorre corrente (nel verso contrario i led non conducono, sono diodi).
Grazie adesso ho visto come accendere i led separatamente ! ma ancora non riesco a scrivere uno sketch per disegnare una "A" sulla matrice , ho provato a modificare lo sketch dell'esempio DirectDrive ma non riesco a farlo ! Devo semplicemente disegnare sulla matrice la temperatura che viene letta dal sensore.
rewam:
Grazie adesso ho visto come accendere i led separatamente ! ma ancora non riesco a scrivere uno sketch per disegnare una "A" sulla matrice , ho provato a modificare lo sketch dell'esempio DirectDrive ma non riesco a farlo ! Devo semplicemente disegnare sulla matrice la temperatura che viene letta dal sensore.
Dai un pò di impegno
Hai il codice già fatto per accendere un led per volta.
Modifica quel codice per accendere 1 led per volta in maniera molto veloce (togli il delay) costruendo una lettera "A" partendo da una matrice 8x8 in cui hai memorizzato scomposta in bit la lettera.
Trasforma in matrice qualcosa del genere:
leo72:
Questo è vero, sarebbe più giusto parlare di catodo a colonna o di anodo a colonna, a seconda di come sono collegati i led sulle colonne.
Questo comporta qualcosa sulla scrittura dello sketch? Ho provato ad usare l'esempio Arduino Playground - DirectDriveLEDMatrix ma con nessun risultato. I led sulla matrice si comportano in modo disordinato :P.
Devo arrendermi! Forse ci sono delle incongruenze con la mia matrice o lo shield per il tipo di sketch .... Vorrà dire che ci proverò in un secondo tempo.
Grazie per il supporto a presto!