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.