Përmbajtje:
- Hapi 1: Shfaqja serike
- Hapi 2: Tastiera Matrix
- Hapi 3: Montimi
- Hapi 4: Kodi Burimor
- Hapi 5: Shfaq komandat
- Hapi 6: Funksionimi i tastierës
- Hapi 7: Vendosja e fjalëkalimit
- Hapi 8: Konfigurimi
- Hapi 9: Lak
Video: Tastiera e panelit me ekran LCD dhe Arduino Uno: 9 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Kjo është një tastierë matricë që funksionon së bashku me një ekran LCD dhe një Arduino Uno, më themelorja që ekziston sot. Qëllimi i këtij konfigurimi është të krijojë një program që merr një fjalëkalim të shtypur në tastierën e matricës, e krahason atë me fjalëkalimin e duhur dhe shfaq një mesazh konfirmimi në ekran.
Importantshtë e rëndësishme të mbani mend se si tastiera e matricës ashtu edhe kjo ekran funksionojnë me ESP8266 dhe ESP32.
Siç mund ta shihni, ne e furnizojmë qarkun me Arduino me një USB, pasi nuk po përdorim një burim të jashtëm. Tetë tela të lidhur në një mënyrë shumë të thjeshtë me portat e Arduino bëjnë lidhjen e tastierës sonë. Kjo tastierë nuk ka fuqi dhe është pasive, gjë që lehtëson shumë lidhjet.
Ekrani është i lidhur me një Arduino përmes UART, portit serik, i cili gjithashtu fuqizon pajisjen.
Në një demonstrim, ne tregojmë në video qarkun tonë duke kontrolluar nëse fjalëkalimi i shtypur në tastierë është i saktë apo jo.
Në PDF -në e përdorur në video dhe të disponueshme këtu, ne kemi pinoutin e plotë të çipit që po përdoret.
Hapi 1: Shfaqja serike
Ky është ekrani serik që komunikon me UART, i cili është RS me një TXRX. Ekziston gjithashtu në versionet I2C, por modele të tjera do të mbeten për një asamble të ardhshme. Në këtë rast, ky ekran funksionon nga UART by RS.
Hapi 2: Tastiera Matrix
Shembulli i tastierës matricë që ne përdorim është ajo e fotografisë, dhe është në anën e djathtë. Ne kemi një diagram që tregon se si funksionon. Në fakt ka vetëm 4x4 rreshta. Kështu, përdor sasinë minimale të telave; një tel për çdo rresht dhe kolonë, në mënyrë që të ketë tetë tela në total.
Nuk ka nevojë për energji sepse funksionon si më poshtë: kur shtypet 7, tastiera merr numrin 7 dhe lidhet me vijën dhe kolonën, gjë që bën të mundur identifikimin duke skanuar algoritmin automatikisht.
Importantshtë e rëndësishme të mbani mend se çdo tastierë 4x4 që është matricë me pika do të funksionojë në këtë asamble.
Hapi 3: Montimi
Në skemën e përgjithshme, ne lidhim tetë tela drejtpërdrejt me portat e Arduino, pasi tastiera nuk ka fuqi. Në ekran, ne kemi një sinjal RS 232, dhe fuqi pozitive dhe negative. Drita e prapme është ende e pranishme, e cila gjithashtu është tashmë e lidhur (e identifikuar nga BKL).
Hapi 4: Kodi Burimor
Në kodin burimor të këtij projekti, duhet të përfshini serialin dhe tastierën. Ajo ka një grup RX_PIN dhe një TX_PIN, të nevojshme për softuerin serik, dhe gjithashtu INVERTED 1. Kjo u vendos poshtë për të përforcuar sinjalin që përdor hyrjen me logjikë të përmbysur.
// biblioteca përgjegjëse për komunikimin me ekranin LCD #përfshini // bibliotekën përgjigjen për të kapur një përvojë që ju mund të shtypni pa një përvojë #include // pino invalido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Arduino Shfaq LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH dhe anasjelltas #define INVERTED 1
Hapi 5: Shfaq komandat
E rëndësishme: Në këtë ekran, nuk mjafton vetëm të vendosni një varg mbi të. Ju duhet të dërgoni karaktere kontrolli. PDF përmban lidhjen e faqes ku keni një manual të këtij ekrani. Por nëse keni një shfaqje serike të një marke tjetër, është mirë të shikoni kodet e tyre të kontrollit që i përkasin kësaj. Në këtë model, për shembull, kur dërgojmë një kontroll të caktuar (informacion për këtë ekran, për shembull), duhet të dërgojmë një parashtesë, numrin 254, për të mundësuar komunikimin.
Pra, ne krijuam një ARRAY për të lehtësuar gjërat, e cila është një koleksion variablash që arrihen me një indeks numerik. Kjo do të dërgohet në ekran si një konfigurim fillestar.
// 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};
Hapi 6: Funksionimi i tastierës
Si funksionon tastiera? Së pari, ajo monton një grup. Ky grup është i karakterit që në të vërtetë do të shfaqet atje. Pra, nëse vendos një X, kur shtyp butonin e parë të majtë në krye, shfaqet. Kjo është përmbajtja e tastierës, e cila është ajo që do të komandojë.
Gjëra të tjera për të cilat kemi përkufizimin janë numri i rreshtit 4 dhe numri i kolonës 4, në rastin e ARRAY të kësaj tastiere. Ne ende kemi kunjat e linjave, të cilat janë kunjat Arduino, dhe kunjat e kolonës. Ne ende kemi një krijues të tastierës customKeypad me parametrat e simbolit, pinit, rreshtit dhe kolonës.
const byte LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // definoni uma matriz com os simbolet që dëshirojnë të lidhen me teknologjinë e 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}; // mund të tregohet si kolona të përdorura // instancia de Keypad, të përgjigjet për të kapur një përvojë të shtypjes së tastierës customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);
Hapi 7: Vendosja e fjalëkalimit
Në këtë pjesë, ne përcaktojmë fjalëkalimin, dhe pastaj duhet të futim një fjalëkalim, i cili është një varg bosh. Më poshtë, ne vendosim shembullin e softuerit Serial.
// variacione të tjera për të përcaktuar armaturën si senhasconst Varg SENHA_ESPERADA = "1234ABCD"; Vargu SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Shfaqja përmes softuerit serialSifaqja serialeSerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
Hapi 8: Konfigurimi
Sa për Setup, këtu është displaySerial.begin (2, 400), që ka të bëjë me shpejtësinë. Në rastin tonë, kjo është e mjaftueshme për të dërguar një bajt. Pas kësaj, ka një pritje prej 700 milisekonda. Ne përfshijmë ekraninSerial.print (initialConfig) nga konfigurimi fillestar me një vonesë të re prej 10 milisekonda dhe kalojmë te funksioni i fillimit. Në funksionin e fillimit, ne vendosim displaySerial.print ("fjalëkalimi:").
void setup () {Serial.begin (2400); // inicializando a serial de comunicação com o display // importante o baud rate ser 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do të shfaq vonesën (700); // seta a configuração inicial do display displaySerial.print (configInicial); vonesa (10); inicio (); } // função respondável por imprimir na tela a menaxem para digitar a senha // cha chamada toda vez q a senha foi digitada dhe comparada, também quando // a tecla limpar display foi pressionada. void inicio () {displaySerial.print ("Senha:"); }
Hapi 9: Lak
Në lak, ne krijojmë një customKey = customKeypad.getKey (), dhe në sekuencë, futim një komandë Switch.
// kapni një përvojë shtypëse për ta bërë atë customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); kaloni (customKey) { /… /}}
Loop Switch Pjesa 1
Brenda komandës Switch: ajo tregon listën e mundësive të çelësave të printueshëm, nëse shtypet, dhe rrit fjalëkalimin: merr customKey dhe bashkon fjalëkalimin e futur. Tjetra, displaySerial.print (customKey) tregon përmbajtjen kryesore.
switch (customKey) {// caso alguma das teclas imprimíveis foi pressionada rast 'A': rast 'B': rast 'C': rast 'D': rast '0': rast '1': rast '2': rast '3': rasti '4': rasti '5': rasti '6': rasti '7': rasti 8 Serial.println (SENHA_DIGITADA); // imrpime në tela ose në simbolin e shtypjes së ekranitSerial.print (customKey); pushim;
Loop Switch Pjesa 2
Në këtë kod, ne tregojmë një skenar nëse shtypet çelësi CLEAR. Nëse shtypni shkronjën C dhe pastroni ndryshoren që mban fjalëkalimin që po shkruani, atëherë ajo thërret komandën për të pastruar ekranin dhe riniset.
// rasti tekla CLEAR vetëm në rastet e shtypjes së rastit 'c': // kufizoni një ndryshim që do të ruajë një senha që është dërguar me një shifër SENHA_DIGITADA = ""; // chama o comando para limpar a tela displaySerial.print (limparTela); // konfiguroni një menaxher para digjital dhe senha inicio (); pushim;
Loop Switch Pjesa 3
Një mundësi tjetër është nëse shtypni shkronjën E. Në këtë rast, ekrani do të pastrohet dhe analizohet nëse fjalëkalimi i futur është i saktë ose i pasaktë. Tjetra, ne do të japim një vonesë të re prej 2 sekondash, do të pastrojmë ekranin, do të rivendosim ndryshoren e fjalëkalimit dhe do të kthehemi në fillim.
// caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // se a digitale 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 correta displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada vonesë (2000); displaySerial.print (limparTela);
Recommended:
Arduino Kontrolloni shpejtësinë dhe drejtimin e motorit DC duke përdorur një potenciometër, ekran OLED dhe butona: 6 hapa
Arduino Kontrolli shpejtësinë dhe drejtimin e motorit DC duke përdorur një potenciometër, ekran OLED dhe butona: Në këtë tutorial ne do të mësojmë se si të përdorim një drejtues L298N DC MOTOR CONTROL dhe një potenciometër për të kontrolluar shpejtësinë dhe drejtimin e motorit DC me dy butona dhe të shfaqim vlerën e potenciometrit në ekranin OLED. Shikoni një video demonstruese
Ekran LCD I2C / IIC - Përdorni një ekran SPI në ekranin LCD I2C duke përdorur modulin SPI në IIC me Arduino: 5 hapa
Ekran LCD I2C / IIC | Përdorni një ekran SPI në ekranin LCD I2C Duke përdorur modulin SPI në IIC Me Arduino: Përshëndetje djema pasi një SPI LCD 1602 normal ka shumë tela për t'u lidhur, kështu që është shumë e vështirë ta ndërlidhni me arduino, por ekziston një modul i disponueshëm në treg i cili mund të shndërroni ekranin SPI në ekranin IIC kështu që atëherë ju duhet të lidhni vetëm 4 tela
Sensori i temperaturës dhe lagështisë me ekran Arduino dhe LCD: 4 hapa
Sensori i temperaturës dhe lagështisë me ekran Arduino dhe LCD: Përshëndetje djema, Mirë se vini në Artuino. Siç e keni parë Unë kam filluar Një InstructableToday ne do të bëjmë një Temperaturë & Matës lagështie me modulin DHT11. Le të fillojmëP.S. Merrni parasysh Abonimin dhe pëlqimin e videos
Ekran LCD I2C / IIC - Shndërroni një ekran SPI në ekranin LCD I2C: 5 hapa
Ekran LCD I2C / IIC | Shndërroni një ekran SPI në ekranin LCD I2C: përdorimi i ekranit spi LCD kërkon shumë lidhje për të bërë, gjë që është vërtet e vështirë për ta bërë, kështu që gjeta një modul që mund të konvertojë LCD i2c në spi LCD, kështu që le të fillojmë
Tastiera e shpejtë dhe e ndyrë Das (Tastiera bosh): 3 hapa
Tastiera e shpejtë dhe e ndotur Das (Tastiera e zbrazët): Një tastierë Das është emri i tastierës më të popullarizuar pa mbishkrime në çelësa (tastierë bosh). Tastiera Das shitet për 89,95 dollarë. Ky udhëzues do t'ju udhëheqë edhe pse ta bëni vetë me ndonjë tastierë të vjetër që keni shtrirë përreth