Sommario:

Esempio di armadietto con tastiera a matrice Arduino 4x4: 6 passaggi
Esempio di armadietto con tastiera a matrice Arduino 4x4: 6 passaggi

Video: Esempio di armadietto con tastiera a matrice Arduino 4x4: 6 passaggi

Video: Esempio di armadietto con tastiera a matrice Arduino 4x4: 6 passaggi
Video: Usare Matrici e Tabelle con Arduino - #49 2024, Dicembre
Anonim
Esempio di armadietto con tastiera a matrice Arduino 4x4
Esempio di armadietto con tastiera a matrice Arduino 4x4

2 modi per gestire una tastiera a 16 pulsanti con un minimo di pin.

Passaggio 1: introduzione

Recentemente ho lavorato su un modo per gestire una matrice di tastiere touch 4x4 collegata a un clone di Arduino. I set point erano:

-usare solo 4+1 pin invece di 8 pin sull'atmega328p

-per aggiungere un collegamento CHAR display LCD 4x20 tramite I2C (2 pin)

-per controllare le uscite digitali e analogiche.

Quindi, avere un sacco di cose da controllare con una quantità peccato di I/O.

Passaggio 2: cose da usare:

Cose da usare
Cose da usare

Ho acquistato un display LCD 4x20 caratteri e un adattatore per modulo I2C per collegare il display con i pin SDA (A4) e SCL (A5) sul mio clone arduino.

Uso il famoso e ormai obsoleto MM74C922N: un convertitore da 8 a 4 vie adatto alla tastiera a matrice 4x4.

Ho creato un clone dell'arduino basato sull'atmega328p e programmato tramite un connettore HE10 (bus SPI) e un cavo USBasp.

Fase 3: Schema e scheda:

Schema e Consiglio
Schema e Consiglio
Schema e Consiglio
Schema e Consiglio

Il tabellone è composto da:

-la tastiera LCD si usa solo con Arduino IDE, non possibile con LDmicro (programmazione Ladder)

-la scheda MM74C922N: 16 pulsanti codificati su 16 valori binari su 4 bit DCBA. Alla pressione di un pulsante: il led blu si accende e appare un valore su DCBA (A è l'LSB). Al rilascio di un pulsante: il led blu si spegne e il valore viene azzerato su DCBA.

-la scheda clone Arduino atmega238p.

Passaggio 4: utilizzo di LDmicro con la programmazione ladder:

Utilizzo di LDmicro con la programmazione ladder
Utilizzo di LDmicro con la programmazione ladder
Utilizzo di LDmicro con la programmazione ladder
Utilizzo di LDmicro con la programmazione ladder
Utilizzo di LDmicro con la programmazione ladder
Utilizzo di LDmicro con la programmazione ladder

Il codice da inserire è composto da 4 valori tra 16 valori premuti quindi 16x16x16x16 combinazioni.

Una volta disegnato l'SFC, devi poi tradurlo in LADDER con il metodo dato in uno dei miei

istruibili:

www.instructables.com/id/Arduino-tomation-…

Una volta digitato, compilalo come xxxx.hex e poi scaricalo con il downloader KHAZAMA.

Il display LCD non può essere programmato su LDmicro.

Fornisco LDmicro zip con lo sketch SERRURE.id e il downloader KHAZAMA.

Passaggio 5: utilizzo di Arduino IDE 1.8.x con Mightycore e SMlib:

Utilizzando Arduino IDE 1.8.x con Mightycore e SMlib
Utilizzando Arduino IDE 1.8.x con Mightycore e SMlib

Traduco l'SFC in una macchina a stati. Poi ho usato Arduino IDE con la libreria Mightycore e SM all'interno.

Sul display LCD visualizzo messaggi del tipo: ERRORE, ATTESA, SBLOCCO, stato raggiunto, valore del tasto premuto.

Ti do lo sketch e la lib SM. Per Mightycore guarda questo:

www.instructables.com/id/Arduino-18x-Clone…

Passaggio 6: per concludere:

Questi sono due modi per gestire la tastiera 16 e mi ci sono volute diverse ore per trovare la buona sequenza, ma ora funziona bene. Devi rispettare questi passaggi:

-1 rilevare un tasto premuto su un fronte di salita del pin DA

-2 leggi il valore generato su DCBA e confronta con quello buono

A meno che non funzionerà di certo.

Grazie a tutti i tutorial interessanti in rete.

Consigliato: