Sommario:
- Passaggio 1: display seriale
- Passaggio 2: tastiera a matrice
- Passaggio 3: assemblaggio
- Passaggio 4: codice sorgente
- Passaggio 5: visualizza i comandi
- Passaggio 6: funzionamento della tastiera
- Passaggio 7: impostazione della password
- Passaggio 8: configurazione
- Passaggio 9: ciclo
Video: Tastiera da cruscotto con display LCD e Arduino Uno: 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Questa è una tastiera a matrice che corre insieme a un display LCD e un Arduino Uno, il più elementare che esiste oggi. Lo scopo di questa configurazione è creare un programma che riceva una password digitata sulla tastiera a matrice, la confronti con la password corretta e visualizzi un messaggio di conferma sul display.
È importante ricordare che sia la tastiera a matrice che questo display funzionano con ESP8266 ed ESP32.
Come puoi vedere, alimentiamo il circuito con Arduino con una USB, poiché non stiamo usando una fonte esterna. Otto fili collegati in modo molto semplice alle porte di Arduino realizzano il collegamento della nostra tastiera. Questa tastiera non ha alimentazione ed è passiva, il che facilita notevolmente le connessioni.
Il display è collegato ad un Arduino tramite la UART, la porta seriale, che alimenta anche il dispositivo.
In una dimostrazione, mostriamo nel video il nostro circuito verificando se la password digitata sulla tastiera è corretta o meno.
Nel PDF utilizzato nel video e disponibile qui, abbiamo il pinout completo del chip utilizzato.
Passaggio 1: display seriale
Questo è il display seriale che comunica con l'UART, che è RS con un TXRX. Esiste anche nelle versioni I2C, ma altri modelli rimarranno per un prossimo assemblaggio. In questo caso, questo display funziona con l'UART di RS.
Passaggio 2: tastiera a matrice
L'esempio della tastiera a matrice che usiamo è quello della foto, ed è sul lato destro. Abbiamo un diagramma che mostra come funziona. In realtà ha solo linee 4x4. Pertanto, utilizza la quantità minima di fili; un filo per ogni riga e colonna, in modo che ci siano otto fili in totale.
Non necessita di alimentazione perché funziona in questo modo: premendo il 7 la tastiera prende il 7 e si collega alla linea e alla colonna, il che rende possibile l'identificazione tramite la scansione automatica dell'algoritmo.
È importante ricordare che qualsiasi tastiera 4x4 a matrice di punti funzionerà in questo assieme.
Passaggio 3: assemblaggio
Nello schema generale, colleghiamo otto fili direttamente alle porte di Arduino, poiché la tastiera non ha alimentazione. Nel display abbiamo un segnale di RS 232 e potenza positiva e negativa. La retroilluminazione è ancora presente, anch'essa già collegata (identificata da BKL).
Passaggio 4: codice sorgente
Nel codice sorgente di questo progetto, devi includere la seriale e la tastiera. Ha un set RX_PIN e un TX_PIN, necessari per il software seriale, e anche l'INVERTED 1. Questo è stato posto sotto per amplificare il segnale che utilizza un ingresso con logica invertita.
//biblioteca responsável pela comunicação com o display LCD#include //biblioteca responsável por capturar a tecla que foi pressionada no teclado #include // pino invalido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Arduino x Display LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH e viceversa #define INVERTED 1
Passaggio 5: visualizza i comandi
Importante: in questo display, non è sufficiente metterci sopra una stringa. Devi inviare caratteri di controllo. Il PDF contiene il link del sito dove si dispone di un manuale di questa visualizzazione. Ma se hai un display seriale di un'altra marca, è bene guardare i loro codici di controllo che si riferiscono a questo. In questo modello, ad esempio, quando inviamo un certo controllo (informazioni per questo display, per esempio), dobbiamo inviare un prefisso, il numero 254, per abilitare la comunicazione.
Quindi abbiamo impostato un ARRAY per facilitare le cose, che è una raccolta di variabili a cui si accede con un indice numerico. Questo verrà inviato al display come configurazione iniziale.
//comando para limpar toda a tela do displayconst char limparTela = { 254, 1}; //comando di configurazione iniziale /* 254, 254 acende o backlight 254, 1 limpa a tela 254, 253, 1 configura o contraste em nível alto 254, 13 liga o cursor paraficar piscando */ const char configInicial = { 254, 254, 254, 1, 254, 253, 1, 254, 13};
Passaggio 6: funzionamento della tastiera
Come funziona la tastiera? Innanzitutto, monta un array. Questo array è del carattere che verrà effettivamente visualizzato lì. Quindi se metto una X, quando premo il primo pulsante a sinistra in alto, viene visualizzato. Questo è il contenuto della tastiera, che è ciò che comanderà.
Altre cose di cui abbiamo la definizione sono il numero di riga 4 e il numero di colonna 4, nel caso dell'ARRAY di questa tastiera. Abbiamo ancora i pin delle linee, che sono i pin Arduino, e i pin della colonna. Abbiamo ancora un generatore di tastiere customKeypad con i parametri simbolo, pin, riga e colonna.
const byte LINHAS = 4; //número de linhas do tecladoconst byte COLUNAS = 4; //número de colunas do teclado //define uma matriz com os símbolos que deseja ser lido do teclado char SIMBOLOS[LINHAS][COLUNAS] = { {'A', '1', '2', '3'}, { 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '} }; byte PINOS_LINHA[LINHAS] = {8, 9, 10, 11}; //pinos que indicam as linhas do teclado byte PINOS_COLUNA[COLUNAS] = {4, 5, 6, 7}; //pinos que indicam as colunas do teclado //instancia de Keypad, responsável por capturar a tecla pressionada Keypad customKeypad = Keypad(makeKeymap(SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Passaggio 7: impostazione della password
In questa parte, definiamo la password, quindi dobbiamo inserire una password, che è una stringa vuota. Di seguito, mettiamo l'istanza del softwareSerial.
//variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; String SENHA_DIGITADA = ""; //instancia de SoftwareSerial para nos comunicar com o Display via seriale SoftwareSerial displaySerial = SoftwareSerial(RX_PIN, TX_PIN, INVERTED);
Passaggio 8: configurazione
Per quanto riguarda il Setup, ecco il displaySerial.begin (2, 400), che riguarda la velocità. Nel nostro caso, questo è sufficiente per inviare un byte. Successivamente, c'è un'attesa di 700 millisecondi. Includiamo il displaySerial.print (initialConfig) dalla configurazione iniziale con un nuovo ritardo di 10 millisecondi, e passiamo alla funzione di avvio. Nella funzione di avvio, mettiamo displaySerial.print ("password:").
void setup(){ Serial.begin(2400); //inicializando a serial de comunicação com o display //importante o baud rate ser de 2400 displaySerial.begin(2400); //tempo de espera pela inicialização do display delay(700); //imposta una configurazione iniziale per visualizzare displaySerial.print(configInicial); ritardo(10); inizio(); } //função responsável por imprimir na tela a mensagem para digitar a senha //é chamada toda vez q a senha foi digitada e comparada, também quando //a tecla limpar display foi pressionada. void inicio(){ displaySerial.print("Senha:"); }
Passaggio 9: ciclo
Nel ciclo, creiamo un customKey = customKeypad.getKey(), e nella sequenza, inseriamo un comando Switch.
//captura a tecla pressionada do teclado char customKey = customKeypad.getKey(); //caso alguma tecla foi pressionada if (customKey){ Serial.println(customKey); switch(CustomKey) { /…/ } }
Interruttore ad anello parte 1
All'interno del comando Switch: mostra l'elenco delle possibilità di tasti stampabili, se premuto, e incrementa la password: prende la customKey e concatena la password inserita. Successivamente, displaySerial.print (customKey) mostra il contenuto della chiave.
switch(customKey) { //caso alguma das teclas imprimíveis foi pressionada case 'A': case 'B': case 'C': case 'D': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': //concatena o novo símbolo a senha que estamos digitando SENHA_DIGITADA+=customKey; Serial.println(SENHA_DIGITADA); //imprimere la tela o il simbolo premuto displaySerial.print(customKey); rottura;
Interruttore ad anello parte 2
In questo codice, mostriamo uno scenario se viene premuto il tasto CLEAR. Se digiti la lettera C e cancelli la variabile che contiene la password che stai digitando, chiama il comando per cancellare lo schermo e si riavvia.
//caso a tecla CLEAR tenha sido pressionada case 'c': //limpa a variável que guarda a senha que está sendo digitada SENHA_DIGITADA = ""; //chama o comando para limpar a tela displaySerial.print(limparTela); //configura un messaggio per digitare un messaggio iniziale(); rottura;
Interruttore ad anello parte 3
Un'altra possibilità è se si digita la lettera E. In questo caso, lo schermo verrà pulito e analizzato se la password inserita è corretta o errata. Successivamente, daremo un nuovo ritardo di 2 secondi, cancelleremo lo schermo, reimposteremo la variabile password e torneremo all'inizio.
//caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': //limpa a tela displaySerial.print(limparTela); //se a senha digitada foi igual a ESPERADA if(SENHA_ESPERADA==SENHA_DIGITADA) { Serial.println("Senha Correta!"); //imprime mensagem de senha correta displaySerial.print("Senha Correta!!!"); } //caso senha esteja errada else{ Serial.println("Senha Incorreta!"); //imprime mensagem de senha incorreta displaySerial.print("Senha incorreta!"); } //aguarda 2 segundos para limpar a tela novamente ed esperar uma nova senha ser digitada delay(2000); displaySerial.print(limparTela);
Consigliato:
Schermo LCD STONE per cruscotto dell'auto: 5 passaggi
Schermo LCD STONE per cruscotto dell'auto: con il rapido sviluppo dell'economia e il graduale miglioramento del potere di consumo delle persone, le auto sono diventate le necessità quotidiane delle famiglie ordinarie e tutti prestano maggiore attenzione al comfort e alla sicurezza delle auto. L'industria automobilistica
Tastiera analogica fai-da-te con tastiera USB: 4 passaggi
Tastiera analogica fai-da-te per tastiera USB: ho realizzato questo progetto solo per divertimento, ma questa cosa funziona come una normale tastiera con tutto. Buon divertimento
Display LCD I2C / IIC - Utilizzare un display LCD SPI sul display LCD I2C utilizzando il modulo SPI su IIC con Arduino: 5 passaggi
Display LCD I2C / IIC | Utilizzare un display LCD SPI per il display LCD I2C utilizzando il modulo da SPI a IIC con Arduino: Ciao ragazzi poiché un normale LCD 1602 SPI ha troppi fili da collegare, quindi è molto difficile interfacciarlo con arduino ma c'è un modulo disponibile sul mercato che può convertire il display SPI in display IIC, quindi è necessario collegare solo 4 fili
Interfaccia della tastiera con 8051 e visualizzazione dei numeri della tastiera in 7 segmenti: 4 passaggi (con immagini)
Interfaccia della tastiera con 8051 e visualizzazione dei numeri della tastiera in 7 segmenti: In questo tutorial ti parlerò di come possiamo interfacciare la tastiera con 8051 e visualizzare i numeri della tastiera in un display a 7 segmenti
Costruisci un display personalizzato in LCD Studio (per tastiera G15 e schermi LCD).: 7 passaggi
Costruisci un display personalizzato in LCD Studio (per tastiera G15 e schermi LCD).: Ok, se hai appena ricevuto la tua tastiera G15 e non sei molto impressionato dai display di base forniti con esso, ti guiderò attraverso le basi dell'utilizzo di LCD Studio per crearne uno tuo. Questo esempio creerà un display che mostra solo il bas