Obsah:

Klávesnica palubnej dosky s LCD displejom a Arduino Uno: 9 krokov
Klávesnica palubnej dosky s LCD displejom a Arduino Uno: 9 krokov

Video: Klávesnica palubnej dosky s LCD displejom a Arduino Uno: 9 krokov

Video: Klávesnica palubnej dosky s LCD displejom a Arduino Uno: 9 krokov
Video: Mikropočítačová doska Raspberry Pi Zero 2 W 2024, November
Anonim
Image
Image
Klávesnica palubnej dosky s LCD displejom a Arduino Uno
Klávesnica palubnej dosky s LCD displejom a Arduino Uno
Klávesnica palubnej dosky s LCD displejom a Arduino Uno
Klávesnica palubnej dosky s LCD displejom a Arduino Uno

Jedná sa o maticovú klávesnicu sprevádzanú LCD displejom a Arduino Uno, najzákladnejšou, aká dnes existuje. Cieľom tohto nastavenia je vytvoriť program, ktorý obdrží heslo zadané na maticovej klávesnici, porovná ho so správnym heslom a na displeji zobrazí potvrdzujúcu správu.

Je dôležité mať na pamäti, že maticová klávesnica aj tento displej fungujú s ESP8266 a ESP32.

Ako vidíte, obvod napájame pomocou Arduina pomocou USB, pretože nepoužívame externý zdroj. Osem káblov pripojených veľmi jednoduchým spôsobom k portom Arduina umožňuje pripojenie našej klávesnice. Táto klávesnica nie je napájaná a je pasívna, čo výrazne uľahčuje pripojenie.

Displej je spojený s Arduino prostredníctvom sériového portu UART, ktorý zariadenie tiež napája.

Na ukážke vo videu ukazujeme náš obvod, ako kontroluje, či je heslo zadané na klávesnici správne alebo nie.

V súbore PDF použitom vo videu a dostupnom tu máme kompletný vývod použitého čipu.

Krok 1: Sériové zobrazenie

Sériové zobrazenie
Sériové zobrazenie
Sériové zobrazenie
Sériové zobrazenie

Toto je sériový displej, ktorý komunikuje s UART, čo je RS s TXRX. Existuje aj vo verziách I2C, ale ďalšie modely zostanú pre nadchádzajúcu montáž. V tomto prípade tento displej funguje z UART by RS.

Krok 2: Maticová klávesnica

Maticová klávesnica
Maticová klávesnica

Príklad maticovej klávesnice, ktorú používame, je fotografia a je na pravej strane. Máme diagram, ktorý ukazuje, ako to funguje. V skutočnosti má iba riadky 4x4. Preto používa minimálne množstvo drôtov; jeden drôt pre každý riadok a stĺpec, takže celkovo existuje osem drôtov.

Nepotrebuje napájanie, pretože funguje nasledovne: keď stlačíte 7, klávesnica zdvihne 7 a spojí sa s riadkom a stĺpcom, čo umožňuje identifikáciu automatickým skenovaním algoritmu.

Je dôležité mať na pamäti, že v tejto zostave bude fungovať akákoľvek klávesnica 4x4, ktorá je bodová matica.

Krok 3: Zostavenie

zhromaždenie
zhromaždenie

Vo všeobecnej schéme pripájame osem drôtov priamo k portom Arduina, pretože klávesnica nemá napájanie. Na displeji máme signál RS 232 a kladný a záporný výkon. Stále je prítomné podsvietenie, ktoré je tiež už pripojené (označené BKL).

Krok 4: Zdrojový kód

V zdrojovom kóde tohto projektu musíte uviesť sériovú kartu a klávesnicu. Má sadu RX_PIN a TX_PIN, potrebnú pre sériový softvér, a tiež INVERTOVANÝ 1. Tento bol umiestnený pod ním na zosilnenie signálu, ktorý používa vstup s invertovanou logikou.

// biblioteca responzel pela comunicação com o display LCD #include // biblioteca responzar for your press of no print by no teclado #include // pino invalido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Ard Displej LCD #define TX_PIN 3 // prevezmite a zoznámte sa s Rx e Tx, sledujte LOW como HIGH e naopak #definujte INVERTOVANÉ 1

Krok 5: Zobrazte príkazy

Príkazy na zobrazenie
Príkazy na zobrazenie

Dôležité: Na tomto zobrazení nestačí naň položiť iba reťazec. Musíte poslať riadiace znaky. PDF obsahuje odkaz na stránku, kde máte manuál k tomuto zobrazeniu. Ale ak máte sériový displej inej značky, je dobré sa pozrieť na ich kontrolné kódy, ktoré sa toho týkajú. V tomto modeli, napríklad keď posielame určitý ovládací prvok (napríklad informácie pre tento displej), musíme odoslať predponu, číslo 254, aby bola komunikácia povolená.

Preto sme na uľahčenie práce vytvorili ARRAY, čo je zbierka premenných, ku ktorým sa pristupuje pomocou číselného indexu. Toto sa odošle na displej ako počiatočná konfigurácia.

// 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 alt 254, 13 liga o cursor paraficar piscando */const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};

Krok 6: Ovládanie pomocou klávesnice

Ako funguje klávesnica? Najprv sa pripojí pole. Toto pole je znaku, ktorý sa tam skutočne zobrazí. Ak teda dám X, keď stlačím prvé ľavé tlačidlo hore, zobrazí sa. Toto je obsah klávesnice, ktorá bude príkazom.

Ďalšie veci, pre ktoré máme definíciu, sú riadok číslo 4 a stĺpec číslo 4, v prípade ARRAY tejto klávesnice. Stále máme kolíky čiar, ktorými sú kolíky Arduino, a kolíky stĺpika. Stále máme customKeypad Keyboard Builder s parametrami symbolov, pinov, riadkov a stĺpcov.

konštantný bajt 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 '}}; bajt PINOS_LINHA [LINHAS] = {8, 9, 10, 11}; // pinos que indicam as linhas do teclado byte PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // hlavné indikácie ako // // klávesnica, odpoveď na obrázok a tlačová klávesnica customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

Krok 7: Nastavenie hesla

V tejto časti definujeme heslo a potom musíme zadať heslo, ktoré je prázdnym reťazcom. Nasleduje príklad softvérového servera.

// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; Reťazec SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Zobrazenie cez sériový SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);

Krok 8: Nastavenie

Pokiaľ ide o nastavenie, tu je displaySerial.begin (2, 400), ktorý je o rýchlosti. V našom prípade to stačí na odoslanie bajtu. Nasleduje čakanie 700 milisekúnd. DisplaySerial.print (initialConfig) z pôvodnej konfigurácie zahrnujeme s novým oneskorením 10 milisekúnd a prejdeme na funkciu štart. Do štartovacej funkcie vložíme displaySerial.print ("heslo:").

void setup () {Serial.begin (2400); // inicializácia sériového komunikačného displeja // dôležitá prenosová rýchlosť 2400 displaySerial.begin (2400); // tempo spustenia inicializácie oneskorenia zobrazenia (700); // seta a configuração oficial do display displaySerial.print (configInicial); oneskorenie (10); inicio (); } // zodpovedajúce funkcie pre zobrazenie a preberanie digitálnych a senzálnych obrázkov //, ktoré môžu mať za následok digitálne porovnanie, tambémové sledovanie // zobrazenie minimálneho počtu tlačených údajov. void inicio () {displaySerial.print ("Senha:"); }

Krok 9: Slučka

V slučke vytvoríme customKey = customKeypad.getKey () a postupne zadáme príkaz Switch.

// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); prepínač (customKey) { /… /}}

Spínač slučky, časť 1

Vnútri príkazu Switch: zobrazuje zoznam možností tlačiteľných klávesov, ak sú stlačené, a zvyšuje heslo: prevezme customKey a zreťazí zadané heslo. Ďalej displaySerial.print (customKey) zobrazuje obsah kľúča.

switch (customKey) {// caso alguma das teclas imprimíveis for foi pressionada case 'A': case 'B': case 'C': case 'D': case '0': case '1': case '2': case '3': prípad '4': prípad '5': prípad '6': prípad '7': prípad '8': prípad '9': // concatena o novo símbolo a senha que estamos digitando SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // spustenie počítača alebo stlačenie tlačidla displaySerial.print (customKey); prestávka;

Spínač slučky, časť 2

V tomto kóde ukazujeme scenár, ak je stlačené tlačidlo ZRUŠIŤ. Ak zadáte písmeno C a vymažete premennú, ktorá obsahuje heslo, ktoré píšete, zavolá príkaz na vymazanie obrazovky a reštartuje sa.

// 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); // konfigurácia a zoskupenie digitálnych snímok a inicializácia (); prestávka;

Spínač slučky, časť 3

Ďalšou možnosťou je zadanie písmena E. V takom prípade bude obrazovka vyčistená a analyzovaná, či je zadané heslo správne alebo nesprávne. Ďalej dáme nové oneskorenie 2 sekundy, vymažeme obrazovku, resetujeme premennú hesla a vrátime sa na začiatok.

// caso a tecla ENTER seja pressionada, devemos komparate as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // pozrite sa na digitálnu verziu ESPERADA if (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // zobr. mensagem de senha correta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // zobrazenie súboru senha začleniť displaySerial.print („Senha Incorreta!“); } // aguarda 2 segundos para limpar and tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);

Odporúča: