Sadržaj:
- Korak 1: Serijski prikaz
- Korak 2: Matrična tipkovnica
- Korak 3: Montaža
- Korak 4: Izvorni kod
- Korak 5: Prikaz naredbi
- Korak 6: Rad tipkovnice
- Korak 7: Postavljanje lozinke
- Korak 8: Postavljanje
- Korak 9: Petlja
Video: Tipkovnica na nadzornoj ploči s LCD zaslonom i Arduino Uno: 9 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Ovo je matrična tipkovnica koja radi zajedno s LCD zaslonom i Arduino Uno, najosnovnijim koji postoji danas. Svrha ovog postavljanja je stvoriti program koji prima lozinku upisanu na matričnoj tipkovnici, uspoređuje je s ispravnom lozinkom i prikazuje poruku potvrde na zaslonu.
Važno je zapamtiti da i matrična tipkovnica i ovaj zaslon rade s ESP8266 i ESP32.
Kao što vidite, napajamo krug s Arduinom putem USB -a jer ne koristimo vanjski izvor. Osam žica spojenih na vrlo jednostavan način na Arduinove priključke povezuju našu tipkovnicu. Ova tipkovnica nema snagu i pasivna je, što uvelike olakšava povezivanje.
Zaslon je povezan s Arduinom putem UART -a, serijskog porta, koji također napaja uređaj.
U demonstraciji pokazujemo u videu naš krug koji provjerava je li lozinka upisana na tipkovnici točna ili nije.
U PDF -u koji se koristi u videu i koji je dostupan ovdje imamo potpunu identifikaciju čipa koji se koristi.
Korak 1: Serijski prikaz
Ovo je serijski zaslon koji komunicira s UART -om, koji je RS s TXRX -om. Postoji i u verzijama I2C, no ostali će modeli ostati za nadolazeću montažu. U ovom slučaju, ovaj zaslon radi pomoću UART -a RS.
Korak 2: Matrična tipkovnica
Primjer matrične tipkovnice koju koristimo je fotografija, a nalazi se s desne strane. Imamo dijagram koji prikazuje kako to radi. Zapravo ima samo 4x4 linije. Dakle, koristi minimalnu količinu žica; po jedna žica za svaki red i stupac, tako da ima ukupno osam žica.
Ne treba mu napajanje jer radi na sljedeći način: kada se pritisne 7, tipkovnica uzima 7 i povezuje se s retkom i stupcem, što omogućuje identifikaciju automatskim skeniranjem algoritma.
Važno je zapamtiti da će svaka 4x4 tipkovnica koja ima matricu raditi u ovom sklopu.
Korak 3: Montaža
U općoj shemi, osam žica povezujemo izravno na priključke Arduina, budući da tipkovnica nema napajanje. Na ekranu imamo signal RS 232, te pozitivnu i negativnu snagu. Pozadinsko osvjetljenje je i dalje prisutno, koje je također već spojeno (identificirano BKL -om).
Korak 4: Izvorni kod
U izvorni kod ovog projekta morate uključiti serijski broj i tipkovnicu. Ima skup RX_PIN i TX_PIN, neophodne za serijski softver, a također i INVERTED 1. Ovo je postavljeno ispod za pojačavanje signala koji koristi ulaz s obrnutom logikom.
// 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 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH e obratno #define INVERTED 1
Korak 5: Prikaz naredbi
Važno: U ovom prikazu nije dovoljno samo staviti niz. Morate poslati kontrolne znakove. PDF sadrži vezu na web mjesto na kojem imate priručnik za ovaj zaslon. No, ako imate serijski zaslon druge marke, dobro je pogledati njihove kontrolne kodove koji se na to odnose. U ovom modelu, na primjer, kada šaljemo određenu kontrolu (informacije za ovaj prikaz, na primjer), moramo poslati prefiks, broj 254, kako bismo omogućili komunikaciju.
Stoga smo postavili ARRAY kako bismo olakšali stvari, što je skup varijabli kojima se pristupa numeričkim indeksom. To će biti poslano na zaslon kao poč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};
Korak 6: Rad tipkovnice
Kako funkcionira tipkovnica? Prvo, montira niz. Ovaj niz je karaktera koji će se tamo zapravo prikazati. Dakle, ako stavim X, kad pritisnem prvu lijevu tipku na vrhu, prikazuje se. Ovo je sadržaj tipkovnice, čime će zapovijedati.
Ostale stvari za koje imamo definiciju su red 4 i stupac broj 4, u slučaju NIZA ove tipkovnice. Još uvijek imamo igle linija, koje su Arduino igle stupaca. Još uvijek imamo customKeypad Keypad Builder sa parametrima simbola, pina, retka i stupca.
const bajt LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // definirati 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}; // pinos que indicam as colunas do teclado // instancia de Keypad, responsável por capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Korak 7: Postavljanje lozinke
U ovom dijelu definiramo lozinku, a zatim moramo unijeti lozinku, koja je prazan niz. U nastavku donosimo instancu softverske serije.
// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; Niz SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Prikaz putem serijskog SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
Korak 8: Postavljanje
Što se tiče postavljanja, ovdje je displaySerial.begin (2, 400), što govori o brzini. U našem slučaju, ovo je dovoljno za slanje bajta. Nakon toga čeka se 700 milisekundi. Uključujemo displaySerial.print (initialConfig) iz početne konfiguracije s novim kašnjenjem od 10 milisekundi i idemo na funkciju start. U funkciju start stavljamo displaySerial.print ("lozinka:").
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 display delay (700); // postavlja konfiguraciju za prikaz displaySerial.print (configInicial); kašnjenje (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:"); }
Korak 9: Petlja
U petlji stvaramo customKey = customKeypad.getKey (), a u nizu unosimo naredbu Switch.
// kaptura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); switch (customKey) { /… /}}
Prekidač petlje, dio 1
Unutar naredbe Switch: prikazuje popis mogućnosti tipki za ispis, ako se pritisne, i povećava lozinku: uzima customKey i povezuje unesenu lozinku. Zatim displaySerial.print (customKey) prikazuje sadržaj ključa.
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': case '4': case '5': case '6': case '7': case '8': case '9': // concatena o novom símbolo a senha que estamos digitando SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // imrpime na tela o símbolo pressionado displaySerial.print (customKey); pauza;
Prekidač petlje, dio 2
U ovom kodu prikazujemo scenarij ako se pritisne tipka CLEAR. Ako upišete slovo C i izbrišete varijablu koja sadrži lozinku koju upisujete, ona poziva naredbu za brisanje zaslona i ponovno pokretanje.
// 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); // konfiguracija mensagema para digitar a senha inicio (); pauza;
Prekidač petlje, dio 3
Druga je mogućnost ako upišete slovo E. U tom će se slučaju zaslon očistiti i analizirati je li unesena lozinka točna ili netočna. Zatim ćemo dati novo kašnjenje od 2 sekunde, očistiti zaslon, poništiti varijablu lozinke i vratiti se na početak.
// caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // vidi senha 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);
Preporučeni:
Bare Minimum - Arduino na oglasnoj ploči: 5 koraka
Bare Minimum - Arduino na idejnoj ploči: Arduino koristi čip ATMega328p. To možemo dobiti u SMD formatu (ATMega328p-AU) ili DIP formatu za lemljenje kroz rupe (ATMega328p-PU). Ali, čip sam po sebi ne može raditi. Potrebno mu je još nekoliko komponenti i sve zajedno se naziva golo
Pogledajte sve svoje Fitbit podatke na jednoj nadzornoj ploči: 5 koraka
Pogledajte sve svoje Fitbit podatke na jednoj nadzornoj ploči: Nova je godina i to znači da svi imamo nove ciljeve. Zajednički cilj nove godine je biti zdraviji, bilo da to znači da se bolje hranite, više vježbate ili ste općenito aktivniji. Moj omiljeni način praćenja svega je moj Fitbit
Regulator napona na matičnoj ploči s zaslonom / regulatorom napona Com Display za placa de ensaio: 8 koraka
Regulator napona na ploči s zaslonom / Regulator napona Com zaslon Para Placa De Ensaio: Nabavite potrebne komponente koje se nalaze na priloženom popisu (postoje veze za kupnju ili pregled njihovih karakteristika). lá os links para poderem comprar ou ver as caracteristicas d
Prijatelj na Arduino ploči za kruh: 12 koraka
Arduino Bread Board Buddy: Sve krugove gradim na ploči za kruh; međutim izgradnja istog kruga stotinu puta može postati monotona pa volim modularne dijelove za izradu prototipova. Većina krugova poput napajanja od 5 volti prilično su standardni. Arduino odbor za kruh Budd
Brza i prljava tipkovnica Das (prazna tipkovnica): 3 koraka
Brza i prljava Das tipkovnica (prazna tipkovnica): Dasova tipkovnica naziv je najpopularnije tipkovnice bez natpisa na tipkama (prazna tipkovnica). Das Keyboard se prodaje po cijeni od 89,95 USD. Ovo uputstvo će vas voditi iako ćete sami napraviti bilo koju staru tipkovnicu koja vam leži