INHOUDSOPGAWE:
- Stap 1: Seriële vertoning
- Stap 2: Matriks -sleutelbord
- Stap 3: Montering
- Stap 4: Bronkode
- Stap 5: Vertoon bevele
- Stap 6: Toetsenbordbediening
- Stap 7: Wagwoordinstelling
- Stap 8: Opstel
- Stap 9: Lus
Video: Dashboard -sleutelbord met LCD -skerm en Arduino Uno: 9 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Dit is 'n matriks -sleutelbord met 'n LCD -skerm en 'n Arduino Uno, die mees basiese wat vandag bestaan. Die doel van hierdie opstelling is om 'n program te skep wat 'n wagwoord ontvang wat op die matriks -sleutelbord getik is, dit vergelyk met die regte wagwoord en 'n bevestigingsboodskap op die skerm vertoon.
Dit is belangrik om te onthou dat beide die matriks -sleutelbord en hierdie skerm met ESP8266 en ESP32 werk.
Soos u kan sien, stuur ons die kring met die Arduino met 'n USB, aangesien ons nie 'n eksterne bron gebruik nie. Agt drade wat op 'n baie eenvoudige manier aan die Arduino -poorte gekoppel is, maak die verbinding van ons sleutelbord. Hierdie sleutelbord het geen krag nie en is passief, wat die verbindings baie vergemaklik.
Die skerm is verbind met 'n Arduino via die UART, die seriële poort, wat ook die toestel aandryf.
In 'n demonstrasie wys ons in die video hoe ons stroombaan kyk of die wagwoord wat op die sleutelbord getik is, korrek is of nie.
In die PDF wat in die video gebruik word en hier beskikbaar is, het ons die volledige pinout van die chip wat gebruik word.
Stap 1: Seriële vertoning
Dit is die seriële skerm wat kommunikeer met die UART, wat RS is met 'n TXRX. Dit bestaan ook in I2C -weergawes, maar ander modelle bly vir die komende vergadering. In hierdie geval werk hierdie skerm deur die UART by RS.
Stap 2: Matriks -sleutelbord
Die voorbeeld van die matriks -sleutelbord wat ons gebruik, is die van die foto, en dit is aan die regterkant. Ons het 'n diagram wat wys hoe dit werk. Dit het eintlik net 4x4 lyne. Dit gebruik dus die minimum hoeveelheid drade; een draad vir elke ry en kolom, sodat daar altesaam agt drade is.
Dit benodig nie krag nie, want dit werk soos volg: as die 7 ingedruk word, tel die sleutelbord die 7 op en maak verbinding met die reël en kolom, wat identifisering moontlik maak deur die algoritme outomaties te skandeer.
Dit is belangrik om te onthou dat enige 4x4 -sleutelbord met 'n puntmatriks in hierdie samestelling werk.
Stap 3: Montering
In die algemene skema verbind ons agt drade direk aan die Arduino -poorte, aangesien die sleutelbord nie krag het nie. Op die skerm het ons 'n sein van RS 232 en positiewe en negatiewe krag. Die agtergrond is nog steeds teenwoordig, wat ook reeds verbind is (geïdentifiseer deur BKL).
Stap 4: Bronkode
In die bronkode van hierdie projek moet u die reeks en die bedieningspaneel insluit. Dit het 'n stel RX_PIN en 'n TX_PIN, wat nodig is vir die seriële sagteware, en ook die INVERTED 1. Dit is onder geplaas om die sein wat ingang gebruik met omgekeerde logika, te versterk.
// biblioteca responsável pela comunicação com display display #include // biblioteca responsável por capturar a tecla que foi pressionada no teclado #include // pino invalido apenas usado no controller do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Vertoon LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH en vice versa #define INVERTED 1
Stap 5: Vertoon bevele
Belangrik: in hierdie skerm is dit nie genoeg om net 'n tou daarop te sit nie. U moet kontrolekarakters stuur. Die PDF bevat die skakel van die webwerf waar u 'n handleiding van hierdie skerm het. Maar as u 'n reeks vertoning van 'n ander handelsmerk het, is dit goed om te kyk na die kontrolekodes wat hierop betrekking het. In hierdie model, byvoorbeeld, as ons 'n sekere kontroleknoppie stuur (byvoorbeeld inligting vir hierdie skerm), moet ons 'n voorvoegsel, die nommer 254, stuur om kommunikasie moontlik te maak.
Daarom het ons 'n ARRAY opgestel om dinge te vergemaklik, 'n versameling veranderlikes wat met 'n numeriese indeks verkry word. Dit sal as 'n aanvanklike opset na die skerm gestuur word.
// 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};
Stap 6: Toetsenbordbediening
Hoe werk die sleutelbord? Eerstens stel dit 'n skikking op. Hierdie skikking is van die karakter wat daar eintlik vertoon sal word. As ek dus 'n X plaas, word dit vertoon as ek op die eerste linkerknoppie bo druk. Dit is die inhoud van die sleutelbord, wat dit sal beveel.
Ander dinge waarvoor ons die definisie het, is ry nommer 4 en kolom nommer 4, in die geval van die ARRAY van hierdie sleutelbord. Ons het nog steeds penne van die lyne, wat die Arduino -penne is, en die penne van die kolom. Ons het nog steeds 'n pasgemaakte sleutelbordbouer met die simbool-, pen-, ry- en kolomparameters.
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 '}}; greep 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 Keyboard customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Stap 7: Wagwoordinstelling
In hierdie deel definieer ons die wagwoord, en dan moet ons 'n wagwoord invoer, wat 'n leë string is. Hieronder sit ons die voorbeeld van die 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 serial SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
Stap 8: Opstel
Wat die opstelling betref, hier is die displaySerial.begin (2, 400), wat handel oor die snelheid. In ons geval is dit genoeg om 'n greep te stuur. Hierna wag daar 700 millisekondes. Ons sluit die displaySerial.print (initialConfig) van die aanvanklike konfigurasie in met 'n nuwe vertraging van 10 millisekondes, en ons gaan na die beginfunksie. In die beginfunksie plaas ons displaySerial.print ("wagwoord:").
ongeldige opstelling () {Serial.begin (2400); // inisialisering van 'n reël van die komunikação van die vertoning // tempo de espera pela inicialização do display delay (700); // stel 'n konfigurasie amptelik voor om DisplaySerial.print (configInicial) te vertoon; vertraging (10); inicio (); } // função responsável por imprimir na tela a mensagem fora 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:"); }
Stap 9: Lus
In die lus skep ons 'n customKey = customKeypad.getKey (), en in die volgorde voer ons 'n Switch -opdrag in.
// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); skakel (pasgemaakte sleutel) { /… /}}
Lusskakelaar Deel 1
Binne die Switch -opdrag: dit toon die lys met moontlikhede van drukbare sleutels, indien ingedruk, en verhoog die wagwoord: neem die customKey en verbind die ingevoerde wagwoord. Vervolgens toon die displaySerial.print (customKey) die sleutelinhoud.
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': saak '4': saak '5': saak '6': saak '7': saak '8': saak '9': // concatena o novo símbolo a senha que estamos digitando SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // imrpime na tela o símbolo pressionado displaySerial.print (customKey); breek;
Lusskakelaar Deel 2
In hierdie kode wys ons 'n scenario vir as die CLEAR -toets ingedruk word. As u die letter C tik en die veranderlike met die wagwoord wat u tik, verwyder, word die opdrag opgeroep om die skerm skoon te maak en weer te begin.
// 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 a mensagem para digitar and senha inicio (); breek;
Lusskakelaar Deel 3
'N Ander moontlikheid is as u die letter E. tik. In hierdie geval word die skerm skoongemaak en ontleed as die wagwoord korrek of verkeerd is. Vervolgens gee ons 'n nuwe vertraging van 2 sekondes, maak die skerm skoon, stel die wagwoord veranderlike terug en keer terug na die begin.
// caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // sien 'n sentha 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 e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);
Aanbeveel:
Gebruik dashboard -widgets met Magicbit [Magicblocks]: 5 stappe
Gebruik dashboard -widgets met Magicbit [Magicblocks]: Hierdie tutoriaal leer u hoe u Magicblocks -dashboard -widgets met u Magicbit kan gebruik. Ons gebruik magicbit as die ontwikkelingsbord in hierdie projek wat op ESP32 gebaseer is. Daarom kan enige ESP32 -ontwikkelingsbord in hierdie projek gebruik word
Bou 'n weer -dashboard met behulp van Dark Sky API: 5 stappe (met foto's)
Bou 'n weer -dashboard met behulp van Dark Sky API: Dark Sky spesialiseer in weervoorspelling en visualisering. Die coolste aspek van Dark Sky is hul weer -API wat ons kan gebruik om die weerdata van byna oral ter wêreld op te haal. Dit is nie net reënerig of sonnig nie, maar temperatuur
LTE Arduino GPS Tracker + IoT Dashboard (Deel 1): 6 stappe (met foto's)
LTE Arduino GPS Tracker + IoT Dashboard (deel 1): Inleiding Wat gaan aan ouens! Hierdie Instructable is 'n opvolg van my eerste Instructable oor die gebruik van die Botletics LTE/NB-IoT-skild vir Arduino, so as u dit nog nie gedoen het nie, lees dit asseblief om 'n goeie oorsig te kry van hoe u die skild moet gebruik en wat dit alles is
LTE Arduino GPS Tracker + IoT Dashboard (Deel 2): 6 stappe (met foto's)
LTE Arduino GPS Tracker + IoT Dashboard (Deel 2): Inleiding & Deel 1 RecapYup, dit is tyd vir nog 'n Instructable op die SIM7000 GPS tracker met Arduino en LTE! As u dit nog nie gedoen het nie, gaan dan na die handleiding vir die aanvang van die Botletics SIM7000 CAT-M/NB-IoT-skild, en lees dan op Pa
Guino: Dashboard vir jou Arduino: 4 stappe (met foto's)
Guino: Dashboard vir jou Arduino: Hierdie projek is deel van eksperimente wat gedoen is terwyl 'n kunstenaar in die koshuis by Instructables gedoen is. U kan die ander projekte hier sien. Dit kan 'n moeilike taak wees om data op die Arduino -bord te ontdek en te visualiseer. U sit gewoonlik vas met die s