Sisukord:

Armatuurlaua klaviatuur LCD -ekraani ja Arduino Unoga: 9 sammu
Armatuurlaua klaviatuur LCD -ekraani ja Arduino Unoga: 9 sammu

Video: Armatuurlaua klaviatuur LCD -ekraani ja Arduino Unoga: 9 sammu

Video: Armatuurlaua klaviatuur LCD -ekraani ja Arduino Unoga: 9 sammu
Video: #volkswagen #tiguan #dashboard interior 2024, November
Anonim
Image
Image
Armatuurlaua klaviatuur LCD -ekraani ja Arduino Unoga
Armatuurlaua klaviatuur LCD -ekraani ja Arduino Unoga
Armatuurlaua klaviatuur LCD -ekraani ja Arduino Unoga
Armatuurlaua klaviatuur LCD -ekraani ja Arduino Unoga

See on maatriksklaviatuur, mis töötab koos LCD -ekraaniga ja Arduino Unoga, mis on tänapäeval kõige elementaarsem. Selle seadistuse eesmärk on luua programm, mis võtab vastu maatriksi klaviatuuril sisestatud parooli, võrdleb seda õige parooliga ja kuvab ekraanile kinnitusteate.

Oluline on meeles pidada, et nii maatriksklaviatuur kui ka see ekraan töötavad ESP8266 ja ESP32 puhul.

Nagu näete, toidame vooluringi Arduino abil USB -ga, kuna me ei kasuta välist allikat. Kaheksa juhet, mis on Arduino portidega väga lihtsal viisil ühendatud, ühendavad meie klaviatuuri. Sellel klaviatuuril pole jõudu ja see on passiivne, mis hõlbustab oluliselt ühendusi.

Ekraan on ühendatud Arduinoga jadaporti UART kaudu, mis samuti seadet toidab.

Demonstratsioonina näitame videos oma vooluringi, kontrollides, kas klaviatuuril sisestatud parool on õige või mitte.

Videos kasutatavas ja siin saadaval olevas PDF -failis on meil kasutusel oleva kiibi täielik otsik.

Samm: jadaekraan

Jadaekraan
Jadaekraan
Jadaekraan
Jadaekraan

See on jadakuva, mis suhtleb UART -iga, mis on RS koos TXRX -iga. See on olemas ka I2C versioonides, kuid eelseisva koostu jaoks jäävad alles teised mudelid. Sel juhul töötab see kuva UART by RS poolt.

2. samm: maatriksi klaviatuur

Maatriksi klaviatuur
Maatriksi klaviatuur

Kasutatava maatriksklaviatuuri näide on foto ja see asub paremal küljel. Meil on diagramm, mis näitab, kuidas see töötab. Sellel on tegelikult ainult 4x4 read. Seega kasutab see minimaalset juhtmete kogust; üks juhe iga rea ja veeru kohta, nii et kokku on kaheksa traati.

See ei vaja voolu, sest see töötab järgmiselt: kui vajutate 7, võtab klaviatuur 7 ja võtab ühendust rea ja veeruga, mis võimaldab tuvastada algoritmi automaatselt skannides.

Oluline on meeles pidada, et selles komplektis töötab mis tahes 4x4 klaviatuur, mis on punktmaatriks.

3. samm: kokkupanek

Kokkupanek
Kokkupanek

Üldises skeemis ühendame kaheksa juhet otse Arduino portidega, kuna klaviatuuril pole toite. Ekraanil on signaal RS 232 ning positiivne ja negatiivne võimsus. Taustvalgus on endiselt olemas, mis on samuti juba ühendatud (tuvastatud BKL -iga).

4. samm: lähtekood

Selle projekti lähtekoodi peate lisama seeria- ja klahvistiku. Sellel on seeria tarkvara jaoks vajalik komplekt RX_PIN ja TX_PIN ning ka INVERTED 1. See paigutati alla, et võimendada signaali, mis kasutab ümberpööratud loogikaga sisendit.

// biblioteca responseável pela comunicação com o display LCD #include // biblioteca responseável por capturar a tecla que foi pressionada no teclado #include // pino invalidido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Arduino x Ekraani LCD #define TX_PIN 3 // tagurpidi pööramine Rx e Tx, tratando LOW como HIGH e vastupidi #define INVERTED 1

Samm 5: Kuva käsud

Kuva käsud
Kuva käsud

Tähtis: sellel kuval ei piisa ainult nööri panemisest. Peate saatma juhtmärgid. PDF -fail sisaldab selle saidi linki, kus teil on selle ekraani kasutusjuhend. Aga kui teil on mõne teise kaubamärgi jadakuva, on hea vaadata nende juhtkoode, mis sellega seotud on. Näiteks selle mudeli puhul, kui saadame teatud juhtelemendi (näiteks selle ekraani andmed), peame suhtluse võimaldamiseks saatma eesliite, numbri 254.

Nii seadsime asjade hõlbustamiseks ARRAY, mis on muutujate kogum, millele pääseb juurde numbrilise indeksiga. See saadetakse ekraanile esialgse konfiguratsioonina.

// comando para limpar toda a tela do displayconst char limparTela = {254, 1}; // comandos de configuração inicial/ * 254, 254 acende või taustvalgus 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};

6. toiming: klaviatuuri kasutamine

Kuidas klaviatuur toimib? Esiteks ühendab see massiivi. See massiiv on tegelaskuju, mis seal tegelikult kuvatakse. Nii et kui panen X, siis kui vajutan ülaosas esimest vasakpoolset nuppu, kuvatakse see. See on klaviatuuri sisu, mida ta käsib.

Muud asjad, mille jaoks meil on määratlus, on rea number 4 ja veeru number 4, selle klaviatuuri ARRAY puhul. Meil on endiselt joonte tihvtid, milleks on Arduino tihvtid, ja veeru tihvtid. Meil on endiselt kohandatud klahvistiku klaviatuuri koostaja, millel on sümboli, tihvti, rea ja veeru parameetrid.

const bait LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // määratle 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" '}}; bait 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, response to capturar and tecla pressionada Keypad customKeypad = Klahvistik (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

Samm: parooli seadistamine

Selles osas määratleme parooli ja seejärel peame sisestama parooli, mis on tühi string. Allpool esitame tarkvaraSerial eksemplari.

// varáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; String SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Display per serial SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);

8. samm: seadistamine

Mis puutub seadistusse, siis siin on displaySerial.begin (2, 400), mis on umbes kiirus. Meie puhul piisab sellest baidi saatmiseks. Pärast seda tuleb oodata 700 millisekundit. Kaasame esialgse konfiguratsiooni displaySerial.print (initialConfig) uue viivitusega 10 millisekundit ja läheme käivitusfunktsiooni juurde. Stardifunktsiooni paneme displaySerial.print ("parool:").

void setup () {Serial.begin (2400); // initsialiseerimisseeria ja de comunicação com o display // importante o baud rate 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do display delay (700); // seta a configuração inicial do display displaySerial.print (configInicial); viivitus (10); inicio (); } // função responseá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:"); }

9. samm: silmus

Tsüklis loome customKey = customKeypad.getKey () ja järjestuses sisestame käsu Switch.

// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); lüliti (customKey) { /… /}}

Silmuslüliti 1. osa

Käsk Switch sees: see näitab prinditavate klahvide võimaluste loendit, kui neid vajutatakse, ja suurendab parooli: võtab customKey ja ühendab sisestatud parooli. Seejärel kuvab displaySerial.print (customKey) võtme sisu.

lüliti (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ímbolo pressionado displaySerial.print (customKey); murda;

Silmuslüliti 2. osa

Selles koodis näitame stsenaariumi, kui vajutada klahvi CLEAR. Kui sisestate tähe C ja tühjendate muutuja, mis hoiab teie sisestatud parooli, kutsub see käsu ekraani tühjendamiseks ja taaskäivitub.

// 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 a senha inicio (); murda;

Silmuslüliti 3. osa

Teine võimalus on sisestada täht E. Sellisel juhul puhastatakse ekraan ja analüüsitakse, kas sisestatud parool on õige või vale. Järgmisena anname uue 2 -sekundilise viivituse, tühjendame ekraani, lähtestame parooli muutuja ja naaseme algusesse.

// 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 koreta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // imprime mensagem de senha integreeritud displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);

Soovitan: