Cuprins:
- Pasul 1: Afișaj serial
- Pasul 2: Tastatură Matrix
- Pasul 3: Asamblare
- Pasul 4: Cod sursă
- Pasul 5: Afișați comenzile
- Pasul 6: Funcționarea tastaturii
- Pasul 7: Setarea parolei
- Pasul 8: Configurare
- Pasul 9: Buclă
Video: Tastatură tablou de bord cu afișaj LCD și Arduino Uno: 9 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Aceasta este o tastatură matricială care rulează împreună cu un ecran LCD și un Arduino Uno, cel mai de bază care există astăzi. Scopul acestei configurări este de a crea un program care primește o parolă tastată pe tastatura matricială, o compară cu parola corectă și afișează un mesaj de confirmare pe ecran.
Este important să ne amintim că atât tastatura matricială, cât și acest afișaj funcționează cu ESP8266 și ESP32.
După cum puteți vedea, alimentăm circuitul cu Arduino cu un USB, deoarece nu utilizăm o sursă externă. Opt fire conectate într-un mod foarte simplu la porturile Arduino fac conexiunea tastaturii noastre. Această tastatură nu are putere și este pasivă, ceea ce facilitează foarte mult conexiunile.
Afișajul este conectat cu un Arduino prin UART, portul serial, care alimentează și dispozitivul.
Într-o demonstrație, afișăm în videoclip circuitul nostru verificând dacă parola tastată pe tastatură este corectă sau nu.
În PDF-ul folosit în videoclip și disponibil aici, avem pinout-ul complet al cipului utilizat.
Pasul 1: Afișaj serial
Acesta este afișajul serial care comunică cu UART, care este RS cu un TXRX. Există și în versiunile I2C, dar alte modele vor rămâne pentru o asamblare viitoare. În acest caz, acest afișaj funcționează de către UART by RS.
Pasul 2: Tastatură Matrix
Exemplul tastaturii matrice pe care îl folosim este cel al fotografiei și este în partea dreaptă. Avem o diagramă care arată cum funcționează. De fapt are doar linii 4x4. Astfel, folosește cantitatea minimă de fire; un fir pentru fiecare rând și coloană, astfel încât să existe opt fire în total.
Nu are nevoie de energie, deoarece funcționează după cum urmează: când 7 este apăsat, tastatura ridică 7 și se conectează la linie și coloană, ceea ce face posibilă identificarea prin scanarea automată a algoritmului.
Este important să ne amintim că orice tastatură 4x4 care este dot matrix va funcționa în acest ansamblu.
Pasul 3: Asamblare
În schema generală, conectăm opt fire direct la porturile Arduino, deoarece tastatura nu are alimentare. Pe afișaj, avem un semnal RS 232 și o putere pozitivă și negativă. Lumina de fundal este încă prezentă, care este și ea deja conectată (identificată prin BKL).
Pasul 4: Cod sursă
În codul sursă al acestui proiect, trebuie să includeți seria și tastatura. Are un set RX_PIN și un TX_PIN, necesare pentru software-ul serial, precum și INVERTED 1. Acesta a fost plasat dedesubt pentru a amplifica semnalul care utilizează intrarea cu logică inversată.
// biblioteca responsável pela comunicação com o display LCD # include // biblioteca responsável por capturar a tecla that foi pressureada 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, tratando LOW como HIGH și viceversa #define INVERTED 1
Pasul 5: Afișați comenzile
Important: pe acest afișaj, nu este suficient să puneți doar un șir pe el. Trebuie să trimiteți caractere de control. PDF-ul conține linkul site-ului unde aveți un manual al acestui afișaj. Dar dacă aveți un afișaj serial al unei alte mărci, este bine să vă uitați la codurile lor de control care se referă la aceasta. În acest model, de exemplu, atunci când trimitem un anumit control (informații pentru acest afișaj, de exemplu), trebuie să trimitem un prefix, numărul 254, pentru a permite comunicarea.
Așadar, am creat un ARRAY pentru a facilita lucrurile, care este o colecție de variabile care sunt accesate cu un index numeric. Acesta va fi trimis pe ecran ca o configurație inițială.
// comando para limpar toda a tela do displayconst char limparTela = {254, 1}; // comandos de configuração initial / * 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};
Pasul 6: Funcționarea tastaturii
Cum funcționează tastatura? În primul rând, montează o matrice. Această matrice are caracterul care va fi afișat de fapt acolo. Deci, dacă pun un X, când apăs primul buton din stânga din partea de sus, se afișează. Acesta este conținutul tastaturii, care este ceea ce va comanda.
Alte lucruri pentru care avem definiția sunt rândul numărul 4 și numărul coloanei 4, în cazul ARRAY al acestei tastaturi. Mai avem pinii liniilor, care sunt pinii Arduino și pinii coloanei. Încă avem un constructor personalizat de tastatură cu tastatură, cu simbolul, pinul, rândul și parametrii coloanei.
octet const LINHAS = 4; // numărul de linii do tecladoconst byte COLUNAS = 4; // număr de coloane do teclado // define uma matriz com os símbolos that 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 '}}; octet 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 pressureada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Pasul 7: Setarea parolei
În această parte, definim parola și apoi trebuie să introducem o parolă, care este un șir gol. Mai jos, punem instanța softwareSerial.
// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; Șir SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Display via serial SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
Pasul 8: Configurare
În ceea ce privește setarea, aici este displaySerial.begin (2, 400), care este aproximativ viteza. În cazul nostru, acest lucru este suficient pentru a trimite un octet. După aceasta, există o așteptare de 700 de milisecunde. Includem displaySerial.print (initialConfig) din configurația inițială cu o nouă întârziere de 10 milisecunde și mergem la funcția de pornire. În funcția de pornire, punem displaySerial.print ("parolă:").
void setup () {Serial.begin (2400); // inițializând un serial de comunicație cu o afișare // importante o baud rate ser de 2400 displaySerial.begin (2400); // tempo de espera pela initialização do display delay (700); // seta a configuração initial do display displaySerial.print (configInicial); întârziere (10); inicio (); } // funcție responsabilă pentru imprimir na tela a mensagem pentru digitar a senha // é chamada toda vez q a senha foi digitada e comparada, pream când // a tecla limpar display foi pressionada. void inicio () {displaySerial.print ("Senha:"); }
Pasul 9: Buclă
În buclă, creăm un customKey = customKeypad.getKey (), iar în secvență, introducem o comandă Switch.
// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); switch (customKey) {/ … /}}
Comutator buclă Partea 1
În interiorul comenzii Comutare: afișează lista posibilităților tastelor imprimabile, dacă este apăsată, și crește parola: preia customKey și concatenează parola introdusă. Apoi, displaySerial.print (customKey) afișează conținutul cheie.
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 simbol a senha que estamos digitando SENHA_DIGITADA + = customKey; Serial.println (SENHA_DIGITADA); // imrpime na tela sau simbol presionat displaySerial.print (customKey); pauză;
Comutatorul buclei partea 2
În acest cod, afișăm un scenariu pentru dacă este apăsată tasta CLEAR. Dacă tastați litera C și ștergeți variabila care deține parola pe care o tastați, atunci apelează comanda pentru a șterge ecranul și a reporni.
// 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 pentru limpar a tela displaySerial.print (limparTela); // configura a mensagem pentru digitar a senha inicio (); pauză;
Comutatorul buclei partea 3
O altă posibilitate este dacă tastați litera E. În acest caz, ecranul va fi curățat și analizat dacă parola introdusă este corectă sau incorectă. Apoi, vom oferi o nouă întârziere de 2 secunde, vom șterge ecranul, vom reseta variabila parolă și vom reveni la început.
// 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 pentru limpar a tela novament și sper uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);
Recomandat:
Tablou de bord Raspberry Pi: 4 pași
Tablou de bord Raspberry Pi: Astăzi vă voi explica cum am realizat acest tablou de bord care este controlat de un raspberry pi și alimentat de o sursă de alimentare de 5V. Folosește o combinație de leduri ws2811 și ws2812b pentru iluminat, iar structura este realizată din placaj și stejar roșu. Pentru o descriere
Tracker GPS LTE Arduino + tablou de bord IoT (partea 1): 6 pași (cu imagini)
LTE Arduino GPS Tracker + IoT Dashboard (Partea 1): Introducere Ce mai faci băieți! Acest Instructable este o urmărire a primului meu Instructable privind utilizarea scutului Botletics LTE / NB-IoT pentru Arduino, deci dacă nu ați făcut-o deja, vă rugăm să citiți-l pentru a obține o imagine de ansamblu bună despre cum să utilizați scutul și ce este totul ab
Tracker GPS LTE Arduino + tablou de bord IoT (partea 2): 6 pași (cu imagini)
LTE Arduino GPS Tracker + IoT Dashboard (Partea 2): Introducere & Partea 1 RecapYup, este timpul pentru încă un instructabil pe trackerul GPS SIM7000 cu Arduino și LTE! Dacă nu ați făcut-o deja, vă rugăm să treceți peste tutorialul de început pentru scutul Botletics SIM7000 CAT-M / NB-IoT, apoi citiți pe Pa
Guino: Tablou de bord pentru Arduino: 4 pași (cu imagini)
Guino: Tablou de bord pentru Arduino: Acest proiect face parte din experimente făcute în timp ce făceai un artist în reședință la Instructables. Celelalte proiecte le puteți vedea aici. Poate fi o sarcină dificilă depanarea și vizualizarea datelor în timp real pe placa Arduino. Sunteți de obicei blocați cu s
Construiți un afișaj personalizat în Studio LCD (pentru tastatură G15 și ecrane LCD) .: 7 pași
Construiți un afișaj personalizat în LCD Studio (pentru tastatură G15 și ecrane LCD) .: Ok, dacă tocmai ați primit tastatura G15 și sunteți extrem de neimpresionați de afișajele de bază care au venit odată cu acesta, vă voi trece prin elementele de bază ale utilizării LCD Studio pentru a-ți crea propriul. Acest exemplu va fi realizarea unui afișaj care arată doar baza