Satura rādītājs:

Informācijas paneļa tastatūra ar LCD displeju un Arduino Uno: 9 soļi
Informācijas paneļa tastatūra ar LCD displeju un Arduino Uno: 9 soļi

Video: Informācijas paneļa tastatūra ar LCD displeju un Arduino Uno: 9 soļi

Video: Informācijas paneļa tastatūra ar LCD displeju un Arduino Uno: 9 soļi
Video: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, Novembris
Anonim
Image
Image
Informācijas paneļa tastatūra ar LCD displeju un Arduino Uno
Informācijas paneļa tastatūra ar LCD displeju un Arduino Uno
Informācijas paneļa tastatūra ar LCD displeju un Arduino Uno
Informācijas paneļa tastatūra ar LCD displeju un Arduino Uno

Šī ir matricas tastatūra, kas darbojas kopā ar LCD displeju un Arduino Uno - visvienkāršāko, kas pastāv šodien. Šīs iestatīšanas mērķis ir izveidot programmu, kas saņem matricas tastatūrā ierakstītu paroli, salīdzina to ar pareizo paroli un displejā parāda apstiprinājuma ziņojumu.

Ir svarīgi atcerēties, ka gan matricas tastatūra, gan šis displejs darbojas ar ESP8266 un ESP32.

Kā redzat, mēs barojam ķēdi ar Arduino ar USB, jo mēs neizmantojam ārēju avotu. Astoņi vadi, kas ļoti vienkārši savienoti ar Arduino portiem, savieno mūsu tastatūru. Šai tastatūrai nav jaudas un tā ir pasīva, kas ievērojami atvieglo savienojumus.

Displejs ir savienots ar Arduino, izmantojot seriālo portu UART, kas arī nodrošina ierīces barošanu.

Demonstrācijā videoklipā mēs parādām mūsu ķēdi, pārbaudot, vai tastatūrā ievadītā parole ir pareiza.

Videoklipā izmantotajā PDF failā, kas pieejams šeit, mums ir pilnīga izmantotās mikroshēmas kontaktinformācija.

1. darbība: sērijas displejs

Sērijas displejs
Sērijas displejs
Sērijas displejs
Sērijas displejs

Šis ir sērijveida displejs, kas sazinās ar UART, kas ir RS ar TXRX. Tas pastāv arī I2C versijās, bet gaidāmajā montāžā paliks citi modeļi. Šajā gadījumā šis displejs darbojas ar UART by RS.

2. darbība. Matricas tastatūra

Matricas tastatūra
Matricas tastatūra

Mūsu izmantotās matricas tastatūras piemērs ir fotoattēls, un tas atrodas labajā pusē. Mums ir diagramma, kas parāda, kā tā darbojas. Tam faktiski ir tikai 4x4 līnijas. Tādējādi tas izmanto minimālo vadu daudzumu; viens vads katrai rindai un kolonnai, lai kopā būtu astoņi vadi.

Tam nav nepieciešama jauda, jo tas darbojas šādi: nospiežot 7, tastatūra paņem 7 un izveido savienojumu ar līniju un kolonnu, kas ļauj identificēt, automātiski skenējot algoritmu.

Ir svarīgi atcerēties, ka šajā komplektā darbosies jebkura 4x4 tastatūra, kas ir punktu matrica.

3. solis: montāža

Montāža
Montāža

Vispārējā shēmā mēs savienojam astoņus vadus tieši ar Arduino portiem, jo tastatūrai nav jaudas. Displejā mums ir RS 232 signāls, kā arī pozitīva un negatīva jauda. Joprojām pastāv fona apgaismojums, kas arī jau ir savienots (identificēts ar BKL).

4. solis: avota kods

Šī projekta avota kodā ir jāiekļauj sērijas un tastatūra. Tam ir komplekts RX_PIN un TX_PIN, kas nepieciešams seriālajai programmatūrai, kā arī INVERTED 1. Tas tika novietots zemāk, lai pastiprinātu signālu, kas izmanto ieeju ar apgrieztu loģiku.

// 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 Displeja displejs #define TX_PIN 3 // apgriezt lógica dos pinos Rx e Tx, tratando LOW como HIGH e otrādi #define INVERTED 1

5. darbība: parādīt komandas

Parādīt komandas
Parādīt komandas

Svarīgi: šajā displejā nepietiek, ja uzliek tikai virkni. Jums jānosūta vadības rakstzīmes. PDF satur saiti uz vietni, kur jums ir šī displeja rokasgrāmata. Bet, ja jums ir cita zīmola sērijveida displejs, ir labi apskatīt to kontroles kodus, kas uz to attiecas. Piemēram, šajā modelī, nosūtot noteiktu vadīklu (piemēram, informācija par šo displeju), mums ir jānosūta prefikss - numurs 254, lai iespējotu saziņu.

Tāpēc, lai atvieglotu lietas, mēs izveidojām ARRAY, kas ir mainīgo kopums, kam piekļūst ar ciparu indeksu. Tas tiks nosūtīts uz displeju kā sākotnējā konfigurācija.

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

6. darbība. Tastatūras darbība

Kā darbojas tastatūra? Pirmkārt, tas piestiprina masīvu. Šim masīvam ir raksturs, kas tur tiks parādīts. Tātad, ja es ievietoju X, nospiežot pirmo kreiso pogu augšpusē, tas tiek parādīts. Tas ir tastatūras saturs, ko tā komandēs.

Citas lietas, ko mēs definējam, ir 4. rindas numurs un 4. slejas numurs šīs tastatūras ARRAY gadījumā. Mums joprojām ir līniju tapas, kas ir Arduino tapas, un kolonnas tapas. Mums joprojām ir pielāgots tastatūras tastatūras veidotājs ar simbola, tapas, rindas un kolonnas parametriem.

const baits LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // definēt 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" '}}; baits 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 tovel capturer and tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

7. solis: paroles iestatīšana

Šajā daļā mēs definējam paroli, un tad mums jāievada parole, kas ir tukša virkne. Zemāk mēs ievietojam programmatūrasSerial gadījumu.

// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; String SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Displejs, izmantojot sērijas SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);

8. darbība: iestatīšana

Kas attiecas uz iestatīšanu, šeit ir displejsSerial.begin (2, 400), kas ir par ātrumu. Mūsu gadījumā ar to pietiek, lai nosūtītu baitu. Pēc tam jāgaida 700 milisekundes. Mēs iekļaujam displaySerial.print (initialConfig) no sākotnējās konfigurācijas ar jaunu 10 milisekundes aizkavi, un mēs ejam uz sākuma funkciju. Sākuma funkcijā mēs ievietojam displaySerial.print ("parole:").

void setup () {Serial.begin (2400); // inicializando a serial 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); kavēšanās (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. solis: cilpa

Ciklā mēs izveidojam customKey = customKeypad.getKey (), un secībā mēs ievadām komandu Switch.

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

Cilpas slēdzis 1. daļa

Komandā Pārslēgt: tas parāda drukājamo taustiņu iespēju sarakstu, ja tiek nospiests, un palielina paroli: ņem customKey un apvieno ievadīto paroli. Pēc tam displaySerial.print (customKey) parāda galveno saturu.

slēdzis (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); pārtraukums;

Cilpas slēdzis, 2. daļa

Šajā kodā tiek parādīts CLEAR taustiņa nospiešanas scenārijs. Ja ierakstāt burtu C un notīrāt mainīgo, kurā ir jūsu ievadītā parole, tas izsauc komandu, lai notīrītu ekrānu, un tiek restartēts.

// 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 (); pārtraukums;

Cilpas slēdzis 3. daļa

Vēl viena iespēja ir, ja ierakstāt burtu E. Šādā gadījumā ekrāns tiks notīrīts un analizēts, ja ievadītā parole ir pareiza vai nepareiza. Tālāk mēs piešķirsim jaunu 2 sekunžu aizkavi, notīrīsim ekrānu, atiestatīsim paroles mainīgo un atgriezīsimies sākumā.

// 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 Increta displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);

Ieteicams: