Visualizzazione post con etichetta matirce led. Mostra tutti i post
Visualizzazione post con etichetta matirce led. Mostra tutti i post

domenica 23 ottobre 2016

Modulo Matrice 64 Led con MAX7219 - Programmazione

In questi due post Modulo Matrice 64 Led con MAX7219 - Assemblaggio  e precedenti Modulo Matrice 64 Led con MAX7219 - Test iniziale abbiamo saldato ed assemblato il modulo matrice 8x8 led con MAX7219 e lo abbiamo testato con un programma in Scratch.





In questo post vediamo come programmarlo per visualizzare una figura sulla matrice.

Codice Scratch



Il codice Scratchper programmare la matrice led si basa sul codice utilizzato per testare la matrice spiegato nel post precedente.

Vengono aggiunti alcuni blocchi utili.

Conversone da Esadecimale a Decimale



Questo blocco accetta in input un valore esadecimale (in base 16) e lo converte in decimale (base 10)


Invesrione di un byte


Questo blocco dato un valore in byte ne calcola il valore decimale invertendo a specchio tutti i suoi bit.

Per esempio se il valore in input e' 123 il risultato fornito dal blocco sara' 222.

Se scriviamo i numeri in binario risulta tutto piu' chiaro

123 -> 01111011
222 -> 11011110

Come vedete se invertitr i bit del numero 123 si ottiene il numero 222.

I due blocchi introdotti sopra sono utili per programmare la matrice con una figura arbitraria.

Accensione di una linea della matrice



Questo blocco sfrutta il blocco scriviComando per accendere i led di una specifica riga (riga) della matrice in base al valore (data) fornito


Editor per Matrice a Led

Su Internet e' disponibile un editor web per la matrice 8x8 usata in questo post.




Questo ottimo sito permette di disegnare il bitmap 8x8 che si vuole visualizzare sulla matrice.
La cosa piu' bella e' che fornisce moltissime immagini (font, numeri ed iconi) gia' disegnate, quindi ideale per una prova veloce.

Una volta terminato di editare il bitmap della matrice, il sito visualizza una porzione di codice C che rappresenta il bitmap stesso.

Inoltre rappresenta tutto il bitmap con un singolo numero a 64 bit rappresentato in formato esadecimale.

Per esempio il bitmap in figura e' rappresentato con questo codice: 10387cfe7c381000

Il nostro codice Scratch usa questo codice esadecinmale per visualizzare il bitmap sulla matrice andando a programmare l'accensione o lo spegnimento di ogni singolo led della matrice.

Programma Principale



L'unico input da fornire e' il codice prese dal sito Editor per Matrice (10387cfe7c381000) ed assegnarlo alla variabile matrice, come si vede nel secondo blocco in figura.

Dopo di cio', allo stesso modo del programma di test, si inizializzano i GPIO e si inizializza la matrice.

Ora il modo in cui il bitmap e' rappresentato nel codice esadecimale non e' direttamente utilizzabile dal mio programma, ma deve prima essere manipolato.

In dettaglio in un ciclo che viene ripetuto 8 volte si leggono due cifre alla volta (8x2) del codice esadecimale e si convertono in decimale.

Il valore nibble1+nibble2 e' il valore decimale di due cifre esadecimali del codice complessivo.

Questo valore viene passato al blocco invertiByte che come visto prima ne inverte i bit a specchio.

A questo punto il valore ottenuto e' quello corretto per essere programmato e visualizzato dalla matrice. Cio' avviene andando a scrivere tale valore all'indirizzo della riga tramite il blocco accendiRiga.

Al termine del ciclo tutte le 8 righe della matrice sono programmate e il bitmap rappresentato dal codice esadecimale a 64 bit e' visualizzato sulla matrice


Nota

Ho notato che la programmazione del modulo e' abbastanza lenta e richiede circa 22 secondi.
Questo non e' dovuto ad un malfunzionamento di Arduino o del modulo, ma ad una caratteristica del software Firmata che gira su Arduino.

Ma dopotutto questo post serve per imparare. Se poi si vuole usare il modulo in modo piu' serio realizaando delle animazioni si usa il codice Arduino e non Scratch, ma questo viene trattato in decide di post su Internet.

Buon divertimento e buona sperimentazione.





venerdì 21 ottobre 2016

Modulo Matrice 64 Led con MAX7219 - Assemblaggio

In questo post assemblo un piccolo modulo che implementa una matrice di 64 led che puo' essere utilizzata nei progetti Arduino e Raspberry Pi.

Il modulo l'ho acquistato su qui 





Ho ricevuto il kit del modulo da autocostruire in una piccola confezione





Componenti


Questi sono i componenti contenuti nel kit da autocostruire






  • Una matrice di 8x8 led
  • 1 integrato MAX7219 [qui il datasheet]
  • 1 zoccolo a 24 pin per integrato
  • 1 PCB 
  • 1 Condensatore da 10uF
  • 1 Condensatore da 0.1uF
  • 1 Resistenza da 10K ohm [marrone - nero - arancio]
  • 2 pin header femmina - 8 pin lineari
  • 2 pin header maschio - 5 pin a L

Il kit e' di buona fattura e soprattutto il PCB e' realizzato bene Considerando il costo e cio' che viene fornito e' un buon acquisto.


Montaggio

Ho fatto scaldare il saldatore per bene ed ho pulito la punta. 
Ho montato e saldato i componentinel seguentre ordine:

Zoccolo a 24 pin




Bisogna fare attenzione al verso di montaggio. Lo zoccolo presenta una piccola scanalatura a forma di U.
Ho montate lo zoccolo sul PCB con la scanalatura a U verso l'alto come in figura




Ho cercato di fare le saldature in modo piu' pulito possibile senza depositare troppo stagno.
Il PCB ha i fori stagnati che aiutano moltissimo nella saldature

2 pin header femmina - 8 pin lineari





Non ci sono indicazioni particolari. Io li ho montati entrambi allo stesos momento cosi' quando ho girato il PCB per fare la saldatura la scheda era in piano agevolando la saldatura




2 pin header maschio - 5 pin a L





Condensatore da 0.1uF







Condensatore da 10uF

Il condensaore da 10uF e' elettrolitico e quindi ha una polarita'.
Come si vede in figura ho prestato attenzione a montare il condensatore con il piedino piu' lungo nel foro contrassehnato con + ed il piedino piu' corto nel foro con il -



Come si vede in figura ho piegato i piedini in modo da tenere il condensatore in posizione facilitando la saldatura.


Resistenza da 10K Ohm



Ed ecco il modulo con tutti i componenti saldati sul PCB







HO tagliato i piedini dei due condensatori e della resistenza tramite una piccola tronchesina.

Assemblaggio finale

A questo punto ho inserito l'integrato MAX7219 nel suo zoccolo




Anche l'integrato presenta una piccola scanalatura ad U in una delle due estremita'.
Ho montato l'integrato facendo combaciare la scanalatura ad U con quella presente nello zoccole, come indicato in figura





A questo punto ho montato la matrice 8x8 di led



Ed ecco il Modulo Matrice 64 Led con MAX7219 completamente assemblato e pronto per essere utilizzato



In un prossimo post faro' vedere come utilizzare il modulo appena assemblato