Hierdie tutorialie is deel van: Sleutelborde
Alle sleutelbordvideo's word hier gelys.
1602 LCD-sleutelbordskerm: Basiese kode
In hierdie tutoriaal gaan ons ondersoek hoe om 'n 1602 LCD-sleutelbordskild met 'n Arduino te programmeer en te gebruik. Hierdie skild beskik oor 'n 16-karakter by 2-lyn vertoning en 'n sleutelbord wat verskeie invoerfunksies moontlik maak. Teen die einde van hierdie gids sal jy boodskappe kan vertoon en effektief op sleuteldrukke kan reageer.
Die fokus sal wees op die skep van 'n eenvoudige program wat sleuteldrukke opspoor en ooreenstemmende boodskappe op die LCD vertoon. Jy kan saam met die video volg vir 'n visuele demonstrasie (in video by 03:00).
Hardeware Verduidelik
Die primêre komponent in hierdie bou is die 1602 LCD-sleutelbordskild. Hierdie skild koppel direk aan die Arduino-bord en bied beide 'n vertoning en 'n sleutelbord vir gebruikersinteraksie. Die LCD kan teksboodskappe wys, terwyl die sleutelbord gebruikers toelaat om opsies deur verskeie knoppies te kies.
Die sleutelbord werk met 'n analoog invoer, wat die Arduino lees om te bepaal watter knoppie gedruk is. Elke knoppie het 'n unieke weerstand, wat die mikrobeheerder in staat stel om die knoppie te identifiseer op grond van die analoogwaarde wat van die sensor ontvang word.
Datablad Besonderhede
| Vervaardiger | Generies |
|---|---|
| Deelnommer | 1602 LCD-sleutelbordskild |
| Logika/IO-spanning | 5 V |
| Toevoerspanning | 5 V |
| Uitsetstroom (per kanaal) | 2 mA |
| Piekstroom (per kanaal) | 20 mA |
| PWM-frekwensie riglyn | N/A |
| Invoerlogika-drempels | 0.3 Vcc tot 0.7 Vcc |
| Spanningval / RDS(on) / versadiging | N/A |
| Termiese limiete | 70 °C |
| Verpakking | Skildformaat |
| Notas / variante | Verenigbaar met Arduino Uno |
- Verseker dat die LCD by 5 V aangedryf word om skade te vermy.
- Gebruik behoorlike optrekweerstande vir die sleutelbord indien nodig.
- Ontklits sleuteldrukke in die kode om veelvuldige aktiverings te vermy.
- Hou 'n oog op die stroomlimiete om oorverhitting te vermy.
- Toets verbindings voordat jy die stroombaan krag gee.
Bedradingsinstruksies
Om die 1602 LCD-sleutelbordskild te bedraad, prop dit eenvoudig direk in die Arduino-bord. Die skild is ontwerp om met die penkonfigurasie van 'n Arduino Uno in lyn te wees. Verseker dat die penne veilig verbind is.
Die sleutelbordknoppies koppel aan die analoog invoerpen A0. Die LCD-datalyne word intern deur die biblioteek wat gebruik word hanteer, so jy hoef hulle nie apart te bedraad nie. Die skild gebruik ook 'n paar digitale penne om die agtergrondlig en ander funksies te beheer, wat vooraf in die biblioteek gedefinieer is. As jy die biblioteekdokumentasie volg, sal jy vind dat dit tipies hierdie verbindings outomaties hanteer.
Kode Voorbeelde & Deurloop
In die kode sluit ons eers die nodige biblioteek in om die LCD te beheer:
#include <LCD4Bit_mod.h>
Hierdie biblioteek fasiliteer kommunikasie met die 1602 LCD. Ons skep dan 'n instansie van die LCD-objek met die aantal lyne gespesifiseer.
Vervolgens initialiseer ons die LCD in die setup()-funksie:
lcd.init();
Hierdie lyn berei die LCD voor vir gebruik. Na initialisering kan ons 'n toetsboodskap vertoon met die lcd.printIn()-funksie.
In die hoof lus lees ons die analoog invoer om sleuteldrukke op te spoor:
adc_key_in = analogRead(0);
Hierdie lyn lees die waarde van die sleutelbord. Die waarde help om te bepaal watter sleutel gedruk is met die get_key()-funksie wat die ADC-waarde in 'n sleutelnommer omskakel.
Demonstrasie / Wat om te Verwag
Wanneer jy die kode hardloop, sal die druk van die knoppies boodskappe vertoon wat ooreenstem met die sleutel wat op die LCD gedruk is. Byvoorbeeld, die druk van die regterknoppie sal "Right Key OK" op die vertoning wys (in video by 05:30). As die sleutelopsporing nie korrek funksioneer nie, kontroleer die bedrading en verseker dat die korrekte biblioteke in jou Arduino IDE ingesluit is.
Video Tydstempels
- 00:00 - Inleiding
- 03:00 - Kode Oorsig
- 05:30 - Sleuteldruk Demonstrasie
Hierdie handleiding is deel van: Sleutelborde
- Gebruik van 4x3-sleutelbord met Arduino
- Arduino-kode en video vir 'n vier-sleutel-sleutelbord
- Arduino-kode en video: 4x4-matriks swart sleutelbord
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Hoe om 4x4 sagte sleutelblok met Arduino te gebruik
- 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;
}
Hulpbronne en verwysings
-
BuitenburgArduion Libary LCD4Bit_mod (getHub)github.com
Lêers📁
Geen lêers beskikbaar.