Obsah:

Klávesnice palubní desky s LCD displejem a Arduino Uno: 9 kroků
Klávesnice palubní desky s LCD displejem a Arduino Uno: 9 kroků

Video: Klávesnice palubní desky s LCD displejem a Arduino Uno: 9 kroků

Video: Klávesnice palubní desky s LCD displejem a Arduino Uno: 9 kroků
Video: #MercedesGClass W463 and #MercedesCClass W203 dashboard faded LCD display replacement #Shorts 2024, Červen
Anonim
Image
Image
Klávesnice palubní desky s LCD displejem a Arduino Uno
Klávesnice palubní desky s LCD displejem a Arduino Uno
Klávesnice palubní desky s LCD displejem a Arduino Uno
Klávesnice palubní desky s LCD displejem a Arduino Uno

Jedná se o maticovou klávesnici běžící spolu s LCD displejem a Arduino Uno, nejzákladnějším, co dnes existuje. Účelem tohoto nastavení je vytvořit program, který obdrží heslo zadané na maticové klávesnici, porovná jej se správným heslem a na displeji zobrazí potvrzovací zprávu.

Je důležité si uvědomit, že maticová klávesnice i tento displej fungují s ESP8266 a ESP32.

Jak vidíte, napájíme obvod pomocí Arduina pomocí USB, protože nepoužíváme externí zdroj. Osm vodičů připojených velmi jednoduchým způsobem k portům Arduina umožňuje připojení naší klávesnice. Tato klávesnice nemá výkon a je pasivní, což výrazně usnadňuje připojení.

Displej je připojen k Arduinu přes UART, sériový port, který také napájí zařízení.

Na ukázce ve videu ukazujeme, jak náš obvod kontroluje, zda je heslo zadané na klávesnici správné nebo ne.

V PDF použitém ve videu a dostupném zde máme kompletní pinout použitého čipu.

Krok 1: Sériové zobrazení

Sériové zobrazení
Sériové zobrazení
Sériové zobrazení
Sériové zobrazení

Toto je sériový displej, který komunikuje s UART, což je RS s TXRX. Existuje také ve verzích I2C, ale další modely zůstanou pro nadcházející montáž. V tomto případě tento displej funguje u UART by RS.

Krok 2: Matrix klávesnice

Maticová klávesnice
Maticová klávesnice

Příklad maticové klávesnice, kterou používáme, je fotografie a je na pravé straně. Máme diagram, který ukazuje, jak to funguje. Ve skutečnosti má pouze řádky 4x4. Používá tedy minimální množství vodičů; jeden drát pro každý řádek a sloupec, takže celkem je osm vodičů.

Nepotřebuje napájení, protože funguje následovně: když je stisknuto 7, klávesnice zvedne 7 a připojí se k řádku a sloupci, což umožňuje identifikaci automatickým skenováním algoritmu.

Je důležité si uvědomit, že v této sestavě bude fungovat jakákoli klávesnice 4x4, která je jehličková.

Krok 3: Sestavení

Shromáždění
Shromáždění

V obecném schématu připojujeme osm vodičů přímo k portům Arduina, protože klávesnice nemá napájení. Na displeji máme signál RS 232 a kladný a záporný výkon. Podsvícení je stále přítomné, což je také již připojeno (identifikováno BKL).

Krok 4: Zdrojový kód

Ve zdrojovém kódu tohoto projektu musíte zahrnout sériovou a klávesnici. Má sadu RX_PIN a TX_PIN, nezbytnou pro sériový software, a také INVERTED 1. Toto bylo umístěno pod zesílením signálu, který používá vstup s invertovanou logikou.

// zobrazení biblioteky na obrazovce komunikace LCD #zahrnutí // odpověď na biblioteku a její zachycení bez ohledu na to, co #obsahuje // pino invalido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // pino TX da nossa ligação Ard Displej LCD #define TX_PIN 3 // inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH e naopak a #define INVERTED 1

Krok 5: Zobrazení příkazů

Zobrazit příkazy
Zobrazit příkazy

Důležité: V tomto zobrazení nestačí na něj vložit řetězec. Musíte poslat řídicí znaky. PDF obsahuje odkaz na web, kde máte manuál k tomuto zobrazení. Pokud ale máte sériové zobrazení jiné značky, je dobré se podívat na jejich kontrolní kódy, které se toho týkají. V tomto modelu například, když posíláme určitý ovládací prvek (například informace pro tento displej), potřebujeme odeslat předponu, číslo 254, aby byla povolena komunikace.

Proto jsme pro usnadnění věcí nastavili ARRAY, což je kolekce proměnných, ke kterým se přistupuje pomocí číselného indexu. To bude odesláno na displej jako počáteční konfigurace.

// comando para limpar toda a tela do displayconst char limparTela = {254, 1}; // oficiální konfigurace/ * 254, 254 souhlasí s podsvícením 254, 1 limpa a tela 254, 253, 1 konfigurace o kontrastu em nível alt 254, 13 liga o cursor paraficar piscando */const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};

Krok 6: Ovládání pomocí klávesnice

Jak funguje klávesnice? Nejprve připojí pole. Toto pole je znaku, který se tam skutečně zobrazí. Pokud tedy vložím X, když stisknu první levé tlačítko nahoře, zobrazí se. Toto je obsah klávesnice, což bude příkaz.

Další věci, pro které máme definici, jsou řádek číslo 4 a sloupec číslo 4, v případě ARRAY této klávesnice. Stále máme piny linek, což jsou piny Arduino, a piny sloupce. Stále máme customKeypad Keyboard Builder s parametry symbolů, pinů, řádků a sloupců.

konstantní bajt 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 '}}; 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, responseável por capturar and tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

Krok 7: Nastavení hesla

V této části definujeme heslo a poté potřebujeme zadat heslo, což je prázdný řetězec. Níže uvádíme instanci softwareSerial.

// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; Řetězec SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o Zobrazení přes sériový SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);

Krok 8: Nastavení

Pokud jde o nastavení, zde je displaySerial.begin (2, 400), což je o rychlosti. V našem případě to stačí k odeslání bajtu. Následně se čeká 700 milisekund. Zahrneme displaySerial.print (initialConfig) z počáteční konfigurace s novým zpožděním 10 milisekund a přejdeme na funkci start. Do funkce start vložíme displaySerial.print ("heslo:").

neplatné nastavení () {Serial.begin (2400); // inicializace a sériový komunikační displej // důležitý pro přenosovou rychlost 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do display delay (700); // seta a configuração inicial do display displaySerial.print (configInicial); zpoždění (10); inicio (); } // funkce odpovědí za tisk obrázků a obrázků s digitálním a ságovým // é chamada toda vez q a senha foi digitada e comparada, também quando // a tecla limpar display for foi pressionada. void inicio () {displaySerial.print ("Senha:"); }

Krok 9: Smyčka

Ve smyčce vytvoříme customKey = customKeypad.getKey () a v pořadí zadáme příkaz Switch.

// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); přepínač (customKey) { /… /}}

Přepínač smyčky, část 1

Uvnitř příkazu Switch: zobrazuje seznam možností tisknutelných kláves, pokud jsou stisknuty, a zvyšuje heslo: převezme customKey a zřetězí zadané heslo. Dále displaySerial.print (customKey) zobrazuje klíčový obsah.

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': případ '4': případ '5': případ '6': případ '7': případ '8': případ '9': // concatena o novo símbolo a senha que estamos digitando SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // imrpime na tela nebo simbolo pressionado displaySerial.print (customKey); přestávka;

Přepínač smyčky, část 2

V tomto kódu zobrazujeme scénář, pokud je stisknuta klávesa CLEAR. Pokud zadáte písmeno C a vymažete proměnnou, která obsahuje heslo, které píšete, zavolá příkaz k vymazání obrazovky a restartuje se.

// 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); // konfigurace a výběr pro digitální a senha inicio (); přestávka;

Přepínač smyčky, část 3

Další možností je zadat písmeno E. V takovém případě bude obrazovka vyčištěna a analyzována, zda je zadané heslo správné nebo nesprávné. Dále dáme nové zpoždění 2 sekundy, vyčistíme obrazovku, resetujeme proměnnou hesla a vrátíme se na začátek.

// caso a tecla ENTER seja pressionada, devemos comparar as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // se senha digitada foi igual a ESPERADA if (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // zobrazení mensagem de senha correta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // zobrazení mensagem de senha začlenit displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);

Doporučuje: