This tutorial is part of: Klávesnice
Všetky videá o klávesnici sú uvedené tu.
1602 LCD klávesnicový štít: Základný kód
V tomto návode si ukážeme, ako programovať a využívať 1602 LCD Keypad Shield s Arduinom. Tento shield obsahuje 16-znakový 2-riadkový displej a klávesnicu, ktorá umožňuje rôzne vstupné funkcie. Na konci tejto príručky budete schopní zobrazovať správy a efektívne reagovať na stlačenia klávesov.
Zameriame sa na vytvorenie jednoduchého programu, ktorý deteguje stlačenia klávesov a zobrazuje zodpovedajúce správy na LCD. Môžete sledovať video pre vizuálnu demonštráciu (vo videu o 03:00).
Vysvetlenie hardvéru
Hlavným komponentom v tejto zostave je 1602 LCD Keypad Shield. Tento shield sa pripája priamo k doske Arduino a poskytuje displej aj klávesnicu pre interakciu s používateľom. LCD dokáže zobrazovať textové správy, zatiaľ čo klávesnica umožňuje používateľom vybrať možnosti pomocou rôznych tlačidiel.
Klávesnica funguje pomocou analógového vstupu, ktorý Arduino číta, aby určilo, ktoré tlačidlo je stlačené. Každé tlačidlo má jedinečný odpor, čo umožňuje mikrokontroléru identifikovať tlačidlo na základe analógovej hodnoty prijatej zo senzora.
Podrobnosti z datasheetu
| Výrobca | Generic |
|---|---|
| Číslo dielu | 1602 LCD Keypad Shield |
| Logické/IO napätie | 5 V |
| Napájacie napätie | 5 V |
| Výstupný prúd (na kanál) | 2 mA |
| Špičkový prúd (na kanál) | 20 mA |
| Odporúčanie pre PWM frekvenciu | N/A |
| Prahové hodnoty vstupnej logiky | 0,3 Vcc až 0,7 Vcc |
| Pokles napätia / RDS(on) / saturácia | N/A |
| Tepelné limity | 70 °C |
| Puzdro | Formát shield |
| Poznámky / varianty | Kompatibilné s Arduino Uno |
- Uistite sa, že LCD je napájaný 5 V, aby nedošlo k poškodeniu.
- V prípade potreby použite správne pull-up rezistory pre klávesnicu.
- V kóde ošetrite zákmit stlačení klávesov, aby nedošlo k viacnásobným spusteniam.
- Sledujte prúdové limity, aby nedošlo k prehriatiu.
- Pred napájaním obvodu otestujte pripojenia.
Pokyny na zapojenie
Na zapojenie 1602 LCD Keypad Shield ho jednoducho pripojte priamo k doske Arduino. Shield je navrhnutý tak, aby lícoval s konfiguráciou pinov Arduino Uno. Uistite sa, že piny sú bezpečne pripojené.
Tlačidlá klávesnice sa pripájajú k analógovému vstupnému pinu A0. Dátové linky LCD sú spracované interne knižnicou, ktorú používate, takže ich nemusíte zapájať samostatne. Shield tiež používa niekoľko digitálnych pinov na ovládanie podsvietenia a ďalších funkcií, ktoré sú v knižnici vopred definované. Ak budete postupovať podľa dokumentácie knižnice, zistíte, že tieto pripojenia zvyčajne spracúva automaticky.
Príklady kódu a vysvetlenie
V kóde najprv zahrnieme potrebnú knižnicu na ovládanie LCD:
#include <LCD4Bit_mod.h>
Táto knižnica uľahčuje komunikáciu s 1602 LCD. Potom vytvoríme inštanciu objektu LCD so zadaným počtom riadkov.
Ďalej inicializujeme LCD vo funkcii setup():
lcd.init();
Tento riadok pripraví LCD na použitie. Po inicializácii môžeme zobraziť testovaciu správu pomocou funkcie lcd.printIn().
V hlavnej slučke čítame analógový vstup na detekciu stlačení klávesov:
adc_key_in = analogRead(0);
Tento riadok číta hodnotu z klávesnice. Hodnota pomáha určiť, ktorý kláves bol stlačený, pomocou funkcie get_key(), ktorá konvertuje ADC hodnotu na číslo klávesu.
Demonštrácia / Čo očakávať
Keď spustíte kód, stlačenie tlačidiel zobrazí správy zodpovedajúce stlačenému klávesu na LCD. Napríklad stlačenie pravého tlačidla zobrazí "Right Key OK" na displeji (vo videu o 05:30). Ak detekcia klávesov nefunguje správne, skontrolujte zapojenie a uistite sa, že správne knižnice sú zahrnuté vo vašom Arduino IDE.
Časové značky videa
- 00:00 - Úvod
- 03:00 - Prehľad kódu
- 05:30 - Demonštrácia stlačenia klávesov
This tutorial is part of: Klávesnice
- Používanie 4x3 klávesnice s Arduinom
- Kód Arduina a video pre štvortlačidlovú klávesnicu
- Kód Arduina a video: 4x4 maticová čierna klávesnica
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Ako používať 4x4 mäkkú klávesnicu s Arduinom
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
// Example use of LCD4Bit_mod library
// Downloaded from https://github.com/douggilliland/lb-Arduino-Code/tree/master/libraries/LCD4Bit_mod
// October 1, 2017. This example will work with a 1602 LCD keypad shield.
// Code used for a YouTube video for the Robojax channel
// Watch the video https://youtu.be/naSSiS_9rEw
#include <LCD4Bit_mod.h>
// Create an object to control an LCD.
// Number of lines in display = 1
LCD4Bit_mod lcd = LCD4Bit_mod(2);
// Key messages
char msgs[5][15] = {"Right Key OK ",
"Up Key OK ",
"Down Key OK ",
"Left Key OK ",
"Select Key OK" };
int adc_key_val[5] ={30, 150, 360, 535, 760 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
void setup() {
pinMode(13, OUTPUT); // We'll use the debug LED to output a heartbeat
lcd.init();
// Optionally, now set up our application-specific display settings, overriding whatever the LCD did in lcd.init()
// lcd.commandWrite(0x0F);// Cursor on, display on, blink on. (Nasty!)
lcd.clear();
lcd.printIn("Robojax.com Testing");
}
void loop() {
adc_key_in = analogRead(0); // Read the value from the sensor
digitalWrite(13, HIGH);
key = get_key(adc_key_in); // Convert into key press
if (key != oldkey) // If keypress is detected
{
delay(50); // Wait for debounce time
adc_key_in = analogRead(0); // Read the value from the sensor
key = get_key(adc_key_in); // Convert into key press
if (key != oldkey)
{
oldkey = key;
if (key >=0){
lcd.cursorTo(2, 0); // Line = 2, x = 0
lcd.printIn(msgs[key]);
}
}
}
//delay(1000);
digitalWrite(13, LOW);
}
// Convert ADC value to key number
int get_key(unsigned int input)
{
int k;
for (k = 0; k < NUM_KEYS; k++)
{
if (input < adc_key_val[k])
{
return k;
}
}
if (k >= NUM_KEYS)
k = -1; // No valid key pressed
return k;
}
Resources & references
-
ExternalArduion Libary LCD4Bit_mod (getHub)github.com
Files📁
No files available.