Innholdsfortegnelse:

Dashboard -tastatur med LCD -skjerm og Arduino Uno: 9 trinn
Dashboard -tastatur med LCD -skjerm og Arduino Uno: 9 trinn

Video: Dashboard -tastatur med LCD -skjerm og Arduino Uno: 9 trinn

Video: Dashboard -tastatur med LCD -skjerm og Arduino Uno: 9 trinn
Video: How to link AHD CCTV Cameras to Computers without using internet. 2024, Juli
Anonim
Image
Image
Dashboard -tastatur med LCD -skjerm og Arduino Uno
Dashboard -tastatur med LCD -skjerm og Arduino Uno
Dashboard -tastatur med LCD -skjerm og Arduino Uno
Dashboard -tastatur med LCD -skjerm og Arduino Uno

Dette er et matrisetastatur som kjører sammen med en LCD -skjerm og en Arduino Uno, det mest grunnleggende som finnes i dag. Hensikten med dette oppsettet er å lage et program som mottar et passord skrevet på matrisetastaturet, sammenligner det med riktig passord og viser en bekreftelsesmelding på displayet.

Det er viktig å huske at både matrisetastaturet og denne skjermen fungerer med ESP8266 og ESP32.

Som du kan se, driver vi kretsen med Arduino med en USB, siden vi ikke bruker en ekstern kilde. Åtte ledninger koblet på en veldig enkel måte til Arduino -portene gjør tilkoblingen av tastaturet vårt. Dette tastaturet har ingen strøm og er passivt, noe som i stor grad letter tilkoblingene.

Skjermen er koblet til en Arduino via UART, den serielle porten, som også driver enheten.

I en demonstrasjon viser vi i videoen kretsen vår og sjekker om passordet som er skrevet på tastaturet er riktig eller ikke.

I PDF -filen som ble brukt i videoen og tilgjengelig her, har vi den fullstendige pinout av brikken som brukes.

Trinn 1: Seriell visning

Seriell skjerm
Seriell skjerm
Seriell skjerm
Seriell skjerm

Dette er den serielle skjermen som kommuniserer med UART, som er RS med en TXRX. Den finnes også i I2C -versjoner, men andre modeller vil forbli for en kommende samling. I dette tilfellet fungerer denne skjermen av UART av RS.

Trinn 2: Matrisetastatur

Matrisetastatur
Matrisetastatur

Eksemplet på matrisetastaturet vi bruker er bildet, og det er på høyre side. Vi har et diagram som viser hvordan det fungerer. Den har faktisk bare 4x4 linjer. Dermed bruker den den minste mengden ledninger; en ledning for hver rad og kolonne, slik at det er åtte ledninger totalt.

Den trenger ikke strøm fordi den fungerer som følger: Når 7 trykkes, henter tastaturet 7 og kobler seg til linjen og kolonnen, noe som gjør identifikasjon mulig ved å skanne algoritmen automatisk.

Det er viktig å huske at ethvert 4x4 -tastatur som er dot matrix vil fungere i denne forsamlingen.

Trinn 3: Montering

montering
montering

I den generelle ordningen kobler vi åtte ledninger direkte til Arduino -portene, siden tastaturet ikke har strøm. I displayet har vi et signal om RS 232, og positiv og negativ effekt. Bakgrunnsbelysningen er fremdeles tilstede, som også allerede er tilkoblet (identifisert av BKL).

Trinn 4: Kildekode

I kildekoden til dette prosjektet må du inkludere serienummeret og tastaturet. Den har et sett RX_PIN og TX_PIN, nødvendig for seriell programvare, og også INVERTED 1. Dette ble plassert under for å forsterke signalet som bruker inngang med invertert logikk.

// 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

Trinn 5: Vis kommandoer

Vis kommandoer
Vis kommandoer

Viktig: I denne skjermen er det ikke nok å bare sette en streng på den. Du må sende kontrolltegn. PDF -filen inneholder lenken til nettstedet der du har en manual for denne skjermen. Men hvis du har en serievisning av et annet merke, er det godt å se på kontrollkodene deres som gjelder dette. I denne modellen, for eksempel når vi sender en bestemt kontroll (informasjon for eksempel denne skjermen), må vi sende et prefiks, tallet 254, for å aktivere kommunikasjon.

Så vi satte opp et ARRAY for å legge til rette for ting, som er en samling variabler som er tilgjengelig med en numerisk indeks. Dette vil bli sendt til displayet som en innledende konfigurasjon.

// 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};

Trinn 6: Tastaturbetjening

Hvordan fungerer tastaturet? Først monterer den en matrise. Denne matrisen er av tegnet som faktisk vil bli vist der. Så hvis jeg setter en X, når jeg trykker på den første venstre knappen øverst, vises den. Dette er innholdet på tastaturet, som er det det vil kommandere.

Andre ting vi har definisjonen for er rad nummer 4 og kolonne nummer 4, når det gjelder ARRAY på dette tastaturet. Vi har fremdeles pinner på linjene, som er Arduino -pinnene, og pinnene i kolonnen. Vi har fortsatt en tilpasset tastaturbygger med symbolet, pin, rad og kolonneparametere.

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);

Trinn 7: Passordinnstilling

I denne delen definerer vi passordet, og så må vi skrive inn et passord, som er en tom streng. Nedenfor legger vi forekomsten av softwareSerial.

// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; String SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Display via serial SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);

Trinn 8: Oppsett

Når det gjelder oppsettet, her er displaySerial.begin (2, 400), som handler om hastigheten. I vårt tilfelle er dette nok til å sende en byte. Etter dette er det en ventetid på 700 millisekunder. Vi inkluderer displaySerial.print (initialConfig) fra den opprinnelige konfigurasjonen med en ny forsinkelse på 10 millisekunder, og vi går til startfunksjonen. I startfunksjonen setter vi displaySerial.print ("passord:").

ugyldig oppsett () {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); forsinkelse (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:"); }

Trinn 9: Sløyfe

I løkken oppretter vi en customKey = customKeypad.getKey (), og i sekvensen skriver vi inn en Switch -kommando.

// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); bytte (tilpasset tast) { /… /}}

Sløyfebryter Del 1

Inne i Switch -kommandoen: den viser listen over muligheter for utskrivbare nøkler, hvis den trykkes, og øker passordet: tar customKey og kobler sammen det angitte passordet. Deretter viser displaySerial.print (customKey) nøkkelinnholdet.

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); gå i stykker;

Sløyfebryter Del 2

I denne koden viser vi et scenario for hvis CLEAR -tasten trykkes. Hvis du skriver bokstaven C og fjerner variabelen som inneholder passordet du skriver, kaller den kommandoen for å slette skjermen og starte på nytt.

// 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); // konfigura a mensagem para digitar a senha inicio (); gå i stykker;

Sløyfebryter Del 3

En annen mulighet er hvis du skriver bokstaven E. I dette tilfellet blir skjermen renset og analysert om passordet som er angitt er riktig eller feil. Deretter vil vi gi en ny forsinkelse på 2 sekunder, tømme skjermen, tilbakestille passordvariabelen og gå tilbake til begynnelsen.

// 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);

Anbefalt: