Taula de continguts:
- Pas 1: visualització en sèrie
- Pas 2: teclat Matrix
- Pas 3: Muntatge
- Pas 4: Codi font
- Pas 5: mostra els comandaments
- Pas 6: Funcionament del teclat
- Pas 7: Configuració de la contrasenya
- Pas 8: Configuració
- Pas 9: bucle
Vídeo: Teclat del tauler amb pantalla LCD i Arduino Uno: 9 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Es tracta d’un teclat matricial que funciona amb una pantalla LCD i un Arduino Uno, el més bàsic que existeix avui en dia. El propòsit d’aquesta configuració és crear un programa que rep una contrasenya escrita al teclat matricial, la compara amb la contrasenya correcta i mostra un missatge de confirmació a la pantalla.
És important recordar que tant el teclat matricial com aquesta pantalla funcionen amb ESP8266 i ESP32.
Com podeu veure, alimentem el circuit amb l’Arduino amb un USB, ja que no fem servir una font externa. Vuit cables connectats d’una manera molt senzilla als ports d’Arduino permeten la connexió del nostre teclat. Aquest teclat no té potència i és passiu, cosa que facilita enormement les connexions.
La pantalla està connectada amb un Arduino mitjançant l’UART, el port sèrie, que també alimenta el dispositiu.
En una demostració, mostrem al vídeo el nostre circuit comprovant si la contrasenya escrita al teclat és correcta o no.
Al PDF utilitzat al vídeo i disponible aquí, tenim el pinout complet del xip que s’utilitza.
Pas 1: visualització en sèrie
Aquesta és la pantalla sèrie que comunica amb el UART, que és RS amb un TXRX. També existeix en versions I2C, però restaran altres models per a un proper muntatge. En aquest cas, aquesta pantalla funciona per UART by RS.
Pas 2: teclat Matrix
L’exemple del teclat matricial que fem servir és el de la foto i es troba al costat dret. Tenim un diagrama que mostra com funciona. De fet, només té línies 4x4. Per tant, utilitza la quantitat mínima de cables; un fil per cada fila i columna, de manera que hi hagi vuit cables en total.
No necessita alimentació perquè funciona de la següent manera: quan es prem el 7, el teclat agafa el 7 i es connecta a la línia i a la columna, cosa que fa possible la identificació escanejant l’algoritme automàticament.
És important recordar que qualsevol teclat 4x4 que sigui de matriu de punts funcionarà en aquest muntatge.
Pas 3: Muntatge
En l’esquema general, connectem vuit cables directament als ports d’Arduino, ja que el teclat no té alimentació. A la pantalla, tenim un senyal de RS 232, i potència positiva i negativa. La llum de fons encara és present, que també ja està connectada (identificada per BKL).
Pas 4: Codi font
Al codi font d’aquest projecte, heu d’incloure la sèrie i el teclat. Té un conjunt RX_PIN i un TX_PIN, necessaris per al programari de sèrie, i també l’INVERTIT 1. Aquest es va col·locar a sota per amplificar el senyal que utilitza l’entrada amb lògica invertida.
// 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 used 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, tractant LOW com HIGH i viceversa #define INVERTED 1
Pas 5: mostra els comandaments
Important: en aquesta pantalla, no n’hi ha prou amb posar-hi una cadena. Cal enviar caràcters de control. El PDF conté l'enllaç del lloc on teniu un manual d'aquesta pantalla. Però si teniu una pantalla en sèrie d’una altra marca, és bo mirar els codis de control que s’hi relacionen. En aquest model, per exemple, quan enviem un control determinat (informació per a aquesta pantalla, per exemple), hem d’enviar un prefix, el número 254, per habilitar la comunicació.
Per tant, hem creat un ARRAY per facilitar les coses, que és una col·lecció de variables a les quals s’accedeix amb un índex numèric. Això s'enviarà a la pantalla com a configuració inicial.
// comando para limpar toda a tela do displayconst char limparTela = {254, 1}; // comandos de configuração inicial / * 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};
Pas 6: Funcionament del teclat
Com funciona el teclat? En primer lloc, munta una matriu. Aquesta matriu és del caràcter que realment es mostrarà allà. Així que si poso una X, quan premo el primer botó esquerre de la part superior, es mostrarà. Aquest és el contingut del teclat, que és el que manarà.
Altres coses per a les quals tenim la definició són la fila número 4 i la columna número 4, en el cas de la matriu d’aquest teclat. Encara tenim pins de les línies, que són els pins Arduino, i els pins de la columna. Encara tenim un constructor de teclats personalitzats amb el símbol, el pin, la fila i els paràmetres de la columna.
byte const LINHAS = 4; // número de línies 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 per capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Pas 7: Configuració de la contrasenya
En aquesta part, definim la contrasenya i després cal introduir una contrasenya, que és una cadena buida. A continuació, posem la instància del softwareSerial.
// variáveis resposnsáveis per armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; Cadena SENHA_DIGITADA = ""; // instància de SoftwareSerial per a comunicacions com o Visualització via sèrie SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
Pas 8: Configuració
Quant a la configuració, aquí teniu el displaySerial.begin (2, 400), que és aproximadament la velocitat. En el nostre cas, això és suficient per enviar un byte. Després d'això, hi ha una espera de 700 mil·lisegons. Incloem el displaySerial.print (initialConfig) de la configuració inicial amb un nou retard de 10 mil·lisegons i anem a la funció d'inici. A la funció d'inici, posem displaySerial.print ("contrasenya:").
configuració nul·la () {Serial.begin (2400); // inicializando a serial de comunicação com o display // important o baud rate ser de 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do display delay (700); // seta a configuração inicial do display displaySerial.print (configInicial); retard (10); inici (); } // função responsável por imprimir na tela a mensagem para digitar a senha // é chamada tota vez q a senha foi digitada e comparada, também quan // a tecla limpar display foi pressionada. void inicio () {displaySerial.print ("Senha:"); }
Pas 9: bucle
Al bucle, creem un customKey = customKeypad.getKey () i, a la seqüència, introduïm una ordre Switch.
// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); commutador (tecla personalitzada) {/ … /}}
Loop Switch Part 1
Dins de l'ordre Canvia: mostra la llista de possibilitats de tecles imprimibles, si es prem, i augmenta la contrasenya: pren la clau personalitzada i concatena la contrasenya introduïda. A continuació, displaySerial.print (customKey) mostra el contingut clau.
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); // imrpime na tela o símbol pressionado displaySerial.print (customKey); trencar;
Loop Switch Part 2
En aquest codi, mostrem un escenari per si es prem la tecla CLEAR. Si escriviu la lletra C i esborreu la variable que conté la contrasenya que esteu escrivint, cridarà l'ordre per esborrar la pantalla i reiniciar-se.
// caso a tecla CLEAR ha estat pressionada case 'c': // limpa a variável que guarda a senha que está sendo digitalada SENHA_DIGITADA = ""; // chama o comando para limpar a tela displaySerial.print (limparTela); // configurar un missatge per a digitar a un inici (); trencar;
Loop Switch Part 3
Una altra possibilitat és si escriviu la lletra E. En aquest cas, es netejarà la pantalla i s’analitzarà si la contrasenya introduïda és correcta o incorrecta. A continuació, donarem un nou retard de 2 segons, netejarem la pantalla, restablirem la variable de contrasenya i tornarem al principi.
// 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 segons per limpar a tela novament e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);
Recomanat:
Pantalla LCD STONE per al tauler de control del cotxe: 5 passos
Pantalla LCD STONE per al tauler del cotxe: amb el ràpid desenvolupament de l'economia i la millora gradual del consum de persones, els cotxes s'han convertit en les necessitats diàries de les famílies ordinàries i tothom presta més atenció a la comoditat i la seguretat dels cotxes
Pantalla LCD I2C / IIC - Utilitzeu un LCD SPI a la pantalla LCD I2C mitjançant el mòdul SPI a IIC amb Arduino: 5 passos
Pantalla LCD I2C / IIC | Utilitzeu un LCD SPI a la pantalla LCD I2C Utilitzant el mòdul SPI a IIC amb Arduino: Hola, ja que un SPI LCD 1602 normal té massa cables per connectar-se, de manera que és molt difícil connectar-lo amb arduino, però hi ha un mòdul disponible al mercat. converteix la pantalla SPI en pantalla IIC, de manera que només heu de connectar 4 cables
Interfície de teclat amb 8051 i visualització de números de teclat en 7 segments: 4 passos (amb imatges)
Interfície de teclat amb 8051 i visualització de números de teclat en 7 segments: en aquest tutorial us explicaré com podem interfície de teclat amb 8051 i mostrar números de teclat en pantalla de 7 segments
Visualització dels números del teclat en pantalla LCD de 16 x 2 amb 8051: 4 passos
Visualització dels números del teclat en pantalla LCD de 16 x 2 amb 8051: en aquest projecte farem una interfície de teclat i lcd amb 8051. A mesura que premem la tecla del teclat, obtindrem el número de correspondència al nostre lcd
Neteja del teclat d'alumini Apple o qualsevol altre teclat suau: 5 passos
Neteja del teclat d'alumini Apple … o qualsevol altre teclat suau: tan net com tu o jo intentem mantenir els nostres teclats d'alumini Apple, es tornen bruts al cap d'un any més o menys. Aquesta instrucció us ajudarà a netejar-la. Vés amb compte, perquè no sóc responsable si el teu teclat es trenca mentre fas això … SUCKS F