In questo post vediamo come programmare tale modulo con Arduino e Scratch
Piedinatura Modulo Matrice 8x8 Led
Il modulo Matrice 8x8 Led con MAX7219 ha due connettori da 5 peidini disposte ai due lati del PCB.
Entrambi i connettori hanno la stessa funzionalita'.
I piedini partendo dall'alto verso il basso sono contrassegnati come:
- VCC: piedino di alimentazione +5V
- GND: piedino di massa
- DIN: Data Input Seriale. Serve per caricare la parola da 16 bit all'interno dello shift register del MAX7219
- CS: Chipe Select. Serve per indicare al MAX7219 quando caricare un bit presente sul pin DIN nello shift register. Questo avviene quando CS e' basso (LOW)
- CLK:Clock utilizzato per le operazioni di caricamento della parola da 16 bit. Quando il clock va alto (HIGH) i bit in ingresso sono trasferiti nello shift register interno
- VCC: piedino di alimentazione +5V
- GND: piedino di massa
- DIN: Data Input Seriale. Serve per caricare la parola da 16 bit all'interno dello shift register del MAX7219
- CS: Chipe Select. Serve per indicare al MAX7219 quando caricare un bit presente sul pin DIN nello shift register. Questo avviene quando CS e' basso (LOW)
- CLK:Clock utilizzato per le operazioni di caricamento della parola da 16 bit. Quando il clock va alto (HIGH) i bit in ingresso sono trasferiti nello shift register interno
Connessione del modulo Matrice 8x8 Led con Arduino
Come si puo' vedere nelle due figure ho collegato il piedino VCC e GND del modulo rispettivamente ai piedini +5V e a GND di Arduino.Il pin DIN del modulo l'ho collegato al GPIO 4 di Arduino
Il pin CS dell modulo l'ho collegato al GPIO 3 di Arduino
Il pin CLK del modulo l'ho collegato al GPIO 2 di Arduino
Test base del modulo
Ora che ho assemblato il modulo e l'ho collegato ad Arduino non mi resta che testarlo.Inizio creando un primo programma Scratch che utilizzo per verificare se il modulo funziona correttamente.
Codice Scratch
Scrivi Byte
Il blocco si occupa di scrivere questo byte, un bit alla volta, nel MAX7219. Come si puo' vedere prima di scrivere il bit sul piedino DIN (pinData) si imposta il CLK a 0 (LOW) e poi dopo la scrittura si impostal il CLK a 1 (HIGH).
In questo modo il bit sul piedino DIN vienetrasferito nello shift register del MAX7219
In particolare questo blocco puo' essere utile a chi inizia per capire come si fa uno shift a sinistra di un byte.
E' un implementazione rozza (Scrtach e' alquanto limitato) dell'operatore di shift << (bitwise left) del lingiuaggio C.
Scrivi Comando
Il blocco si occupa di scrivere il comando fornito (byte) all'indirizzo fornito (indirizzo)
Come detto prima si trasferiscono i 16 bit di parola (8 di indirizzo e 8 di comando) con il pin CS (pinCS) a o (LOW). Solo alla fine il CS va' portato alto (HIGH) effettivamente trasfererendo i 16 bit nello shift register del MAX7219.
Solo a questo punto il MAX7219 esegue il comando fornito
Altri Blocchi
Gli altri blocchi sono di supporto per avere un main piu' pulito.
In particolare i blocchi hanno questa funzionalita':
- setupGPIO: imposta i GPIO di Arduino per poter comunicare con il modulo Led in modo corretto e secondo le connessioni elettriche
- setDecodeMode: imposta la modalita' di decodifica del MAX7219
- setLuminosita[valore]: imposta la luminosita' della matrice (0-15)
- setScanLimit: imposta lo scanlimit del modulo
- accendiMatrice[valore]: accende o spegne la matrice (0-1)
- testMatrice[valore]: imposta la modalita' di test (0-1)
Blocco Main
Il blocco main e' piuttosto semplice in quanto e' una serie di chiamate aglia ltri blocchi definiti
Inizia impostando i GPIO in modo corretto, poi imposta i parametri principali per il modulo MAX7219, in particolare la luminosita'.
Dopo di cio' spegne la matrice ed esce dalla modalita' di test, per resettare ogni stato precedente.
Poi attende 2 secondi e poi infine imposta la modalita' di test ed accende la matrice.
Se tutto funziona correttamente dovreste vedere tutti i led della matrice accendersi insieme
Bene a questo punto siete sicuri che il vostro che avete assemblato e completamente funzionante.
Nessun commento:
Posta un commento