Progetto 9: Matrice LED Facciale 8*16
(1)Descrizione:
Non sarebbe divertente aggiungere un pannello espressivo al robot? La matrice LED 8*16 di Keyestudio può fare al caso tuo. Con il suo aiuto, potresti progettare espressioni facciali, immagini, pattern e altri display da solo.
Il pannello LED 8*16 è dotato di 128 LED. I dati del microprocessore (Arduino) comunicano con l’AiP1640 attraverso un’interfaccia bus a due fili. Pertanto, può controllare l’accensione e lo spegnimento di 128 LED sul modulo, in modo da far visualizzare alla matrice di punti sul modulo il pattern desiderato. Un cavo HX-2.54 4Pin è fornito per comodità di cablaggio.
(2)Parametri:
Tensione di lavoro: DC 3.3-5V
Dissipazione di potenza: 400mW
Frequenza di oscillazione: 450KHz
Corrente di pilotaggio: 200mA
Temperatura di lavoro: -40~80℃
Modalità di comunicazione: bus a due fili
(3)Conoscenze:
Circuito della matrice LED 8*16

Principio della matrice LED 8*16
Come controllare ogni LED della matrice di punti 8*16? È noto che ogni byte ha 8 bit e ogni bit è 0 o 1. Quando è 0, il LED è spento, mentre quando è 1 il LED è acceso. Un byte può controllare una colonna di LED, e naturalmente 16 byte possono controllare 16 colonne di LED, questa è la matrice di punti 8*16.
Descrizione dei pin e protocollo di comunicazione
I dati del microprocessore (Arduino) comunicano con l’AiP1640 attraverso un cavo bus a due fili.
Il diagramma del protocollo di comunicazione è il seguente: (SCLK) è SCL, (DIN) è SDA.

①La condizione di partenza per l’ingresso dati: SCL è a livello alto e SDA cambia da alto a basso.
②Per l’impostazione del comando dati, ci sono metodi come mostrato nella figura sottostante.
Nel nostro programma di esempio, selezionare il metodo per aggiungere 1 all’indirizzo automaticamente, il valore binario è 0100 0000 e il corrispondente valore esadecimale è 0x40.

③Per l’impostazione del comando indirizzo, l’indirizzo può essere selezionato come mostrato di seguito.
Il primo 00H è selezionato nel nostro programma di esempio, e il numero binario 1100 0000 corrisponde all’esadecimale 0xc0.

④Il requisito per l’ingresso dati è che quando SCL è a livello alto durante l’inserimento dei dati, il segnale su SDA deve rimanere invariato. Solo quando il segnale di clock su SCL è a livello basso, il segnale su SDA può essere modificato. L’inserimento dei dati avviene prima con il bit meno significativo e poi con il bit più significativo.
⑤La condizione per la fine della trasmissione dati è che quando SCL è a livello basso, SDA a livello basso e SCL a livello alto, il livello di SDA diventa alto.
⑥Controllo del display, impostare diverse larghezze di impulso; la larghezza di impulso può essere selezionata come mostrato nella figura sottostante.
Nell’esempio, la larghezza di impulso è 4/16, e l’esadecimale corrispondente a 1000 1010 è 0x8A.

Istruzioni per l’uso dello strumento modulus
Lo strumento per la matrice di punti utilizza la versione online, e il link è: http://dotmatrixtool.com/#
①Inserire il link e la pagina appare come mostrato di seguito

②La matrice di punti è 8*16, quindi regolare l’altezza a 8 e la larghezza a 16, come mostrato nella figura sottostante.

③Generare dati esadecimali dal pattern.
Come mostrato nella figura sottostante, premere il tasto sinistro del mouse per selezionare, fare clic con il tasto destro per annullare; disegnare il pattern desiderato, fare clic su Generate, e i dati esadecimali di cui abbiamo bisogno verranno generati.

(4)Schema di Collegamento:

GND, VCC, SDA e SCL del pannello LED 8x16 sono collegati rispettivamente a G(GND), V (VCC), A4 e A5 della scheda di espansione per la comunicazione seriale a due fili.
(Nota: sebbene sia collegato al pin IIC di Arduino, questo modulo non è per la comunicazione IIC. La porta IO qui serve per simulare la comunicazione I2C e può essere collegata a qualsiasi due pin)
(5)Codice di Test:
Puoi anche trascinare i blocchi per modificare il tuo codice, come mostrato di seguito



Codice di Test Completo
(Nota: Non collegare il modulo Bluetooth prima di caricare il codice, perché il caricamento del codice utilizza anche la comunicazione seriale, e potrebbero verificarsi conflitti con la comunicazione seriale Bluetooth, il che può causare il fallimento del caricamento.)

(6)Risultati del Test:
Dopo aver caricato con successo il codice di test, collegare i cavi, portare l’interruttore DIP sull’estremità ON e alimentare il dispositivo; sulla matrice di punti appare un pattern a forma di sorriso.

(7)Pratica di Estensione:
Utilizziamo lo strumento modulus appena imparato, http://dotmatrixtool.com/#, per far visualizzare alla matrice di punti il pattern di avvio, andare avanti, fermarsi e poi cancellare il pattern. L’intervallo di tempo è di 2000 ms.

Blocco per mostrare la faccina sorridente
Codice per mostrare l’espressione
Blocco per mostrare il cuore
Codice per andare avanti
Blocco per andare indietro
Blocco per girare a sinistra
Blocco per girare a destra
Blocco per fermarsi
Blocco per cancellare
Puoi anche trascinare i blocchi per modificare il tuo codice, come mostrato di seguito.
(1)
(2)
(3)
Codice di Test Completo
(Nota: Non collegare il modulo Bluetooth prima di caricare il codice, perché il caricamento del codice utilizza anche la comunicazione seriale, e potrebbero verificarsi conflitti con la comunicazione seriale Bluetooth, il che può causare il fallimento del caricamento.)

Caricare il codice sulla scheda di sviluppo, il pannello 8*16 mostrerà i seguenti pattern.


