Kazalo:
- 1. korak: serijski prikaz
- 2. korak: Matrična tipkovnica
- 3. korak: Montaža
- 4. korak: izvorna koda
- 5. korak: Prikaz ukazov
- 6. korak: Delovanje tipkovnice
- 7. korak: Nastavitev gesla
- 8. korak: Nastavitev
- 9. korak: Zanka
Video: Tipkovnica na armaturni plošči z LCD zaslonom in Arduino Uno: 9 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
To je matrična tipkovnica, ki deluje skupaj z LCD zaslonom in Arduino Uno, najosnovnejšim, ki obstaja danes. Namen te nastavitve je ustvariti program, ki prejme geslo, vneseno na matrično tipkovnico, ga primerja s pravilnim geslom in na zaslonu prikaže potrditveno sporočilo.
Pomembno si je zapomniti, da matrična tipkovnica in ta zaslon delujeta z ESP8266 in ESP32.
Kot lahko vidite, napajamo vezje z Arduinom z USB -jem, saj ne uporabljamo zunanjega vira. Osem žic, ki so na zelo preprost način priključene na vrata Arduino, povezuje našo tipkovnico. Ta tipkovnica nima moči in je pasivna, kar močno olajša povezave.
Zaslon je povezan z Arduinom prek serijskih vrat UART, ki napajajo tudi napravo.
V predstavitvi pokažemo v videu naše vezje, ki preverja, ali je geslo, vneseno na tipkovnici, pravilno ali ne.
V PDF -ju, ki je uporabljen v videoposnetku in je na voljo tukaj, imamo celoten pinout uporabljenega čipa.
1. korak: serijski prikaz
To je serijski zaslon, ki komunicira z UART, ki je RS s TXRX. Obstaja tudi v različicah I2C, drugi modeli pa bodo ostali za prihajajočo montažo. V tem primeru ta zaslon deluje z UART po RS.
2. korak: Matrična tipkovnica
Primer matrične tipkovnice, ki jo uporabljamo, je fotografija in je na desni strani. Imamo diagram, ki prikazuje, kako deluje. Pravzaprav ima samo 4x4 vrstice. Tako uporablja minimalno količino žic; ena žica za vsako vrstico in stolpec, tako da je skupaj osem žic.
Ne potrebuje napajanja, ker deluje na naslednji način: ko pritisnete 7, tipkovnica pobere 7 in se poveže z vrstico in stolpcem, kar omogoča identifikacijo s samodejnim skeniranjem algoritma.
Pomembno si je zapomniti, da bo v tem sklopu delovala vsaka tipkovnica 4x4, ki je matrična.
3. korak: Montaža
V splošni shemi povežemo osem žic neposredno na vrata Arduino, saj tipkovnica nima napajanja. Na zaslonu imamo signal RS 232 ter pozitivno in negativno moč. Še vedno je prisotna osvetlitev ozadja, ki je tudi že povezana (označena z BKL).
4. korak: izvorna koda
V izvorno kodo tega projekta morate vključiti serijsko in tipkovnico. Ima niz RX_PIN in TX_PIN, ki sta potrebna za serijsko programsko opremo, in tudi INVERTED 1. To je bilo postavljeno spodaj za ojačanje signala, ki uporablja vhod z obrnjeno logiko.
// biblioteca responsável pela comunicação com o display LCD #include // biblioteca responsável por capturar a tecla que foi pressionada no teclado #include // pino invalido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Arduino x Zaslon LCD #define TX_PIN 3 // obrnite a logico dos pinos Rx e Tx, tratando LOW como HIGH e obratno #define INVERTED 1
5. korak: Prikaz ukazov
Pomembno: Pri tem zaslonu ni dovolj, da nanj postavite samo niz. Morate poslati kontrolne znake. PDF vsebuje povezavo do spletnega mesta, kjer imate priročnik za ta zaslon. Če pa imate serijski zaslon druge znamke, je dobro pogledati njihove kontrolne kode, ki se na to nanašajo. V tem modelu, na primer, ko pošljemo določeno kontrolo (na primer informacije za ta zaslon), moramo poslati predpono, številko 254, da omogočimo komunikacijo.
Zato smo za olajšanje stvari nastavili NIZ, ki je zbirka spremenljivk, do katerih dostopamo s številskim indeksom. To bo poslano na zaslon kot začetna konfiguracija.
// 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};
6. korak: Delovanje tipkovnice
Kako deluje tipkovnica? Najprej namesti matriko. Ta matrika je znaka, ki bo tam dejansko prikazan. Če torej vstavim X, se prikaže prvi levi gumb na vrhu. To je vsebina tipkovnice, ki ji bo ukazala.
Druge stvari, za katere imamo definicijo, sta vrstica 4 in stolpec številka 4, v primeru NIZ te tipkovnice. Še vedno imamo zatiče linij, ki so zatiči Arduino in zatiči stolpca. Še vedno imamo graditelja tipkovnice po meri s parametri simbola, zatiča, vrstice in stolpca.
const bajt LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // definiraj 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 kot linhas do teclado byte PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // pinos que indicam as colunas do teclado // instancia de Keypad, response to capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
7. korak: Nastavitev gesla
V tem delu definiramo geslo, nato pa moramo vnesti geslo, ki je prazen niz. Spodaj navajamo primerek softwareSerial.
// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; Niz SENHA_DIGITADA = ""; // instancia de SoftwareSerial para comunicar com o Prikaz prek serijske programske opreme SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
8. korak: Nastavitev
Kar se tiče namestitve, je tukaj displaySerial.begin (2, 400), ki govori o hitrosti. V našem primeru je to dovolj za pošiljanje bajta. Sledi čakanje 700 milisekund. V začetno konfiguracijo vključimo displaySerial.print (initialConfig) z novo zamudo 10 milisekund in gremo na funkcijo zagona. V funkcijo zagona postavimo displaySerial.print ("geslo:").
void setup () {Serial.begin (2400); // inicializando a serial de comunicação com o display // importante o baud rate ser de 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do zakasnitve prikaza (700); // določi in konfigurira začetni prikaz displaySerial.print (configInicial); zamuda (10); inicio (); } // função responsá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. korak: Zanka
V zanki ustvarimo customKey = customKeypad.getKey () in v zaporedju vnesemo ukaz Switch.
// zajema tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); switch (customKey) { /… /}}
Stikalo zanke 1. del
Znotraj ukaza Switch: prikaže seznam možnosti tipk za tiskanje, če jih pritisnete, in poveča geslo: vzame customKey in združi vneseno geslo. Nato displaySerial.print (customKey) prikaže vsebino ključa.
switch (customKey) {// caso alguma das teclas imprimíveis foi pressionada primer 'A': primer 'B': primer 'C': primer 'D': primer '0': primer '1': primer '2': primer '3': primer '4': primer '5': primer '6': primer '7': primer '8': primer '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); prekiniti;
Stikalo zanke 2. del
V tej kodi prikazujemo scenarij, če pritisnete tipko CLEAR. Če vnesete črko C in počistite spremenljivko, ki vsebuje geslo, ki ga vnašate, pokliče ukaz, da počisti zaslon in se znova zažene.
// 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); // konfigurira mensagem para digitar a senha inicio (); prekiniti;
Stikalo zanke 3. del
Druga možnost je, če vnesete črko E. V tem primeru bo zaslon očiščen in analiziran, če je geslo pravilno ali napačno. Nato bomo dali 2 sekundi nove zakasnitve, počistili zaslon, ponastavili spremenljivko gesla in se vrnili na začetek.
// caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // se senga 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 incoreta displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);
Priporočena:
Macintosh z zaslonom na dotik - Klasični Mac z zaslonom IPad Mini: 5 korakov (s slikami)
Macintosh z zaslonom na dotik | Klasični Mac z zaslonom IPad Mini: To je moja posodobljena in prenovljena zasnova, kako zamenjati zaslon starega Macintosha z iPad mini. To je že šesti od teh, ki sem jih naredil v preteklih letih in sem zelo zadovoljen z razvojem in oblikovanjem tega! Leta 2013, ko sem naredil
Majhen armaturni gumb ESP8266 (ponovno nastavljiv): 15 korakov
Majhen armaturni gumb ESP8266 (ponovno nastavljiv): To je majhen armaturni gumb na osnovi ESP8266. Ostane v globokem spanju, ko pritisnete gumb, izvede zahtevo GET na določen URL in če je konfigurirano, prenaša tudi napajalno napetost kot spremenljivko. Najboljši del je, da preprosto premostite dva p
Regulator napetosti na plošči z zaslonom / Regulatorjem De Voltagem Com Display Para Placa De Ensaio: 8 korakov
Regulator napetosti na plošči z zaslonom / Regulator De Voltagem Com Display Para Placa De Ensaio: Pridobite potrebne komponente, ki so na priloženem seznamu (na voljo so povezave za nakup ali ogled njihovih značilnosti). lá os links para poderem comprar ou ver as caracteristicas d
Arkadna tipkovnica MIDI tipkovnica: 7 korakov (s slikami)
Arkadna tipkovnica MIDI tipkovnica: To je različica 2.0 enega mojih prvih napadov na programiranje Arduino in DIY MIDI. Razvil sem svoje veščine pri oblikovanju prototipov in oblikovanju, zato sem mislil, da bo to dobra predstavitev procesa in napredovanja. Z bolj informiranim postopkom oblikovanja sem
Kako narediti uro v realnem času z zaslonom Arduino in TFT - Arduino Mega RTC s 3,5 -palčnim zaslonom TFT: 4 koraki
Kako narediti uro v realnem času z zaslonom Arduino in TFT | Arduino Mega RTC s 3,5-palčnim zaslonom TFT: Obiščite moj kanal Youtube. Uvod:- V tem prispevku bom naredil »uro v realnem času« s 3,5-palčnim TFT LCD na dotik, Arduino Mega 2560 in DS3231 modul RTC… .Preden začnete… preverite videoposnetek z mojega kanala YouTube .. Opomba:- Če uporabljate Arduin