Innehållsförteckning:
- Steg 1: Seriell display
- Steg 2: Matris -tangentbord
- Steg 3: Montering
- Steg 4: Källkod
- Steg 5: Visa kommandon
- Steg 6: Tangentbordshantering
- Steg 7: Lösenordsinställning
- Steg 8: Inställning
- Steg 9: Slinga
Video: Instrumentpanelens tangentbord med LCD -skärm och Arduino Uno: 9 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Detta är ett matris -tangentbord som körs tillsammans med en LCD -skärm och en Arduino Uno, det mest grundläggande som finns idag. Syftet med denna inställning är att skapa ett program som tar emot ett lösenord som skrivs in på matrisens tangentbord, jämför det med rätt lösenord och visar ett bekräftelsemeddelande på displayen.
Det är viktigt att komma ihåg att både matris -tangentbordet och den här skärmen fungerar med ESP8266 och ESP32.
Som du kan se driver vi kretsen med Arduino med en USB, eftersom vi inte använder en extern källa. Åtta ledningar som är anslutna på ett mycket enkelt sätt till Arduinos portar gör anslutningen av vårt tangentbord. Detta tangentbord har ingen ström och är passivt, vilket underlättar anslutningarna.
Displayen är ansluten till en Arduino via UART, den seriella porten, som också driver enheten.
I en demonstration visar vi i videon vår krets som kontrollerar om lösenordet som skrivs på tangentbordet är korrekt eller inte.
I PDF -filen som används i videon och som finns tillgänglig här har vi den fullständiga pinout av chipet som används.
Steg 1: Seriell display
Detta är den seriella displayen som kommunicerar med UART, som är RS med en TXRX. Det finns också i I2C -versioner, men andra modeller kommer att finnas kvar för en kommande montering. I detta fall fungerar denna display av UART by RS.
Steg 2: Matris -tangentbord
Exemplet på matris tangentbordet som vi använder är det på fotot, och det är på höger sida. Vi har ett diagram som visar hur det fungerar. Den har faktiskt bara 4x4 -linjer. Således använder den minsta mängd trådar; en tråd för varje rad och kolumn, så att det blir åtta ledningar totalt.
Det behöver inte ström eftersom det fungerar på följande sätt: när 7 trycks, tar tangentbordet 7 och ansluter till linjen och kolumnen, vilket gör identifiering möjlig genom att skanna algoritmen automatiskt.
Det är viktigt att komma ihåg att alla 4x4 -tangentbord som är punktmatris kommer att fungera i denna enhet.
Steg 3: Montering
I det allmänna schemat ansluter vi åtta ledningar direkt till Arduino -portarna, eftersom tangentbordet inte har någon ström. I displayen har vi en signal på RS 232 och positiv och negativ effekt. Bakgrundsbelysningen finns fortfarande, som också redan är ansluten (identifierad av BKL).
Steg 4: Källkod
I källkoden för detta projekt måste du inkludera serienumret och knappsatsen. Den har en uppsättning RX_PIN och en TX_PIN, nödvändig för den seriella programvaran, och även INVERTED 1. Denna placerades under för att förstärka signalen som använder ingång med inverterad logik.
// 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 controller do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Display LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH e vice-versa #define INVERTED 1
Steg 5: Visa kommandon
Viktigt: I den här displayen räcker det inte att bara sätta en sträng på den. Du måste skicka kontrolltecken. PDF -filen innehåller länken till webbplatsen där du har en manual för denna display. Men om du har en seriell display av ett annat märke är det bra att titta på deras kontrollkoder som gäller detta. I den här modellen, till exempel, när vi skickar en viss kontroll (till exempel information om denna display), måste vi skicka ett prefix, talet 254, för att möjliggöra kommunikation.
Så vi inrättade en ARRAY för att underlätta saker, vilket är en samling variabler som nås med ett numeriskt index. Detta kommer att skickas till displayen som en initial konfiguration.
// 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};
Steg 6: Tangentbordshantering
Hur fungerar tangentbordet? Först monterar den en array. Denna matris har det tecken som faktiskt kommer att visas där. Så om jag sätter ett X, när jag trycker på den första vänstra knappen högst upp, visas den. Detta är tangentbordets innehåll, vilket är vad det kommer att kommandot.
Andra saker vi har definitionen för är rad nummer 4 och kolumn nummer 4, när det gäller ARRAY på detta tangentbord. Vi har fortfarande stift på linjerna, som är Arduino -stiften, och stiften i kolonnen. Vi har fortfarande en anpassad knappsatsbyggare med symbolen, stift, rad och kolumnparametrar.
const byte 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 '}}; byte 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);
Steg 7: Lösenordsinställning
I denna del definierar vi lösenordet, och sedan måste vi ange ett lösenord, vilket är en tom sträng. Nedan lägger vi instansen av softwareSerial.
// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; Sträng SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Display via serial SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);
Steg 8: Inställning
När det gäller installationen, här är displaySerial.begin (2, 400), vilket handlar om hastigheten. I vårt fall är detta tillräckligt för att skicka en byte. Efter detta väntar 700 millisekunder. Vi inkluderar displaySerial.print (initialConfig) från den ursprungliga konfigurationen med en ny fördröjning på 10 millisekunder, och vi går till startfunktionen. I startfunktionen lägger vi displaySerial.print ("lösenord:").
void setup () {Serial.begin (2400); // inicializando a serial de comunicação com o display // importante of baud rate ser de 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do display delay (700); // seta a configuração inicial do display displaySerial.print (configInicial); fördröjning (10); inicio (); } // função responsável por imprimir na tela a mensagem fora 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:"); }
Steg 9: Slinga
I slingan skapar vi en customKey = customKeypad.getKey (), och i sekvensen anger vi ett Switch -kommando.
// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); switch (customKey) { /… /}}
Loop Switch Del 1
Inne i kommandot Switch: den visar listan över möjligheter för utskrivbara nycklar, om den trycks ned, och ökar lösenordet: tar customKey och sammanfogar det inmatade lösenordet. Därefter visar displaySerial.print (customKey) nyckelinnehållet.
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 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); ha sönder;
Loop Switch Del 2
I den här koden visar vi ett scenario för om CLEAR -tangenten trycks in. Om du skriver bokstaven C och rensar variabeln som innehåller lösenordet du skriver, kallar den kommandot för att rensa skärmen och startar om.
// 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 (); ha sönder;
Loop Switch Del 3
En annan möjlighet är om du skriver bokstaven E. I det här fallet kommer skärmen att rengöras och analyseras om det angivna lösenordet är korrekt eller felaktigt. Därefter ger vi en ny fördröjning på 2 sekunder, rensar skärmen, återställer lösenordsvariabeln och återgår till början.
// 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 correta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // imprime mensagem de senha incorreta displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);
Rekommenderad:
Layad kretsar alfanumeriskt tangentbord med ESP32 och tecken LCD: 4 steg
Layadkretsar Alfanumeriskt tangentbord med ESP32 och tecken LCD: Den här artikeln visar användningen av en alfanumerisk tangentbordsmodul och en 16x2 I2C tecken LCD -modul för att mata in data till ESP32. Denna metod kan användas för att ange och hämta Wi-Fi-uppgifter och annan information till och från ESP32
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Snabbt och smutsigt tangentbord (tomt tangentbord): 3 steg
Snabbt och smutsigt tangentbord (tomt tangentbord): Ett Das -tangentbord är namnet på det mest populära tangentbordet utan inskriptioner på tangenterna (tomt tangentbord). Das tangentbord säljs för $ 89,95. Den här instruerbara guiden hjälper dig genom att göra en själv med något gammalt tangentbord du har
Bygg en anpassad display i LCD Studio (för G15 -tangentbord och LCD -skärmar).: 7 steg
Bygg en anpassad bildskärm i LCD Studio (för G15 -tangentbord och LCD -skärmar).: Ok, om du precis har fått ditt G15 -tangentbord och inte är imponerad av de grundläggande skärmarna som följde med det, tar jag dig igenom grunderna för att använda LCD Studio att göra din egen. Detta exempel är att göra en display som bara visar basen
Rengöring av Apple Aluminium Tangentbord . eller något annat Soft-touch Tangentbord: 5 steg
Rengöring av Apple Aluminium Tangentbord …. eller något annat Soft-touch Tangentbord: Så rena som du eller jag kanske försöker behålla våra aluminium äppeltangentbord blir de smutsiga efter ett år eller så. Detta instruerbara är att hjälpa dig att städa ur det. Var försiktig, för jag är inte ansvarig om ditt tangentbord går sönder när du gör detta …. SUGER F