Mafunzo haya ni sehemu ya: Vitufe vya vitufe
Video zote za vitufe zimeorodheshwa hapa.
Kibao cha LCD 1602 chenye Kibodi: Msimbo wa Msingi
Katika mafunzo haya, tutachunguza jinsi ya kupanga na kutumia 1602 LCD Keypad Shield na Arduino. Kifaa hiki kina onyesho la herufi 16 kwa mstari 2 na kibodi ambacho kinaruhusu kazi mbalimbali za kuingiza data. Kufikia mwisho wa mwongozo huu, utaweza kuonyesha ujumbe na kujibu kubonyeza kwa vitufe kwa ufanisi.
Lengo litakuwa kuunda programu rahisi inayogundua kubonyeza kwa vitufe na kuonyesha ujumbe unaolingana kwenye LCD. Unaweza kufuata video kwa maonyesho ya kuona (katika video saa 03:00).
Vifaa Vimeelezwa
Sehemu kuu katika ujenzi huu ni 1602 LCD Keypad Shield. Kifaa hiki kinaunganishwa moja kwa moja kwenye bodi ya Arduino na hutoa onyesho na kibodi kwa mwingiliano wa mtumiaji. LCD inaweza kuonyesha ujumbe wa maandishi, wakati kibodi inaruhusu watumiaji kuchagua chaguo kupitia vitufe mbalimbali.
Kibodi hufanya kazi kwa kutumia pembejeo ya analogi, ambayo Arduino inaisoma kuamua ni kitufe gani kimebonyezwa. Kila kitufe kina upinzani wake wa kipekee, unaoruhusu kidhibiti kidogo kutambua kitufe kulingana na thamani ya analogi inayopokelewa kutoka kwa sensor.
Maelezo ya Datasheet
| Mtengenezaji | Generic |
|---|---|
| Nambari ya sehemu | 1602 LCD Keypad Shield |
| Voltage ya Logic/IO | 5 V |
| Voltage ya usambazaji | 5 V |
| Mkondo wa pato (kwa kila chaneli) | 2 mA |
| Mkondo wa kilele (kwa kila chaneli) | 20 mA |
| Mwongozo wa mzunguko wa PWM | Haupo |
| Viwango vya pembejeo za mantiki | 0.3 Vcc hadi 0.7 Vcc |
| Kushuka kwa voltage / RDS(on) / kueneza | Haupo |
| Mipaka ya joto | 70 °C |
| Kifurushi | Muundo wa Shield |
| Vidokezo / lahaja | Inaoana na Arduino Uno |
- Hakikisha LCD ina nguvu ya 5 V ili kuepuka uharibifu.
- Tumia resistors sahihi za kuvuta-juu kwa kibodi ikiwa inahitajika.
- Ondoa kelele za kubonyeza kwa vitufe kwenye msimbo ili kuepuka kuanzisha mara nyingi.
- Angalia mipaka ya mkondo ili kuepuka joto kupita kiasi.
- Jaribu miunganisho kabla ya kuwasha mzunguko.
Maagizo ya Uunganishaji
Ili kuunganisha 1602 LCD Keypad Shield, chomeka moja kwa moja kwenye bodi ya Arduino. Shield imeundwa kuendana na mpangilio wa pini za Arduino Uno. Hakikisha pini zimeunganishwa kwa usalama.
Vitufe vya kibodi vinaunganishwa kwenye pini ya pembejeo ya analogi A0. Mistari ya data ya LCD inashughulikiwa ndani na maktaba inayotumiwa, kwa hivyo hautahitaji kuiunganisha kando. Shield pia hutumia pini chache za dijiti kudhibiti mwanga wa nyuma na kazi nyingine, ambazo zimefafanuliwa mapema kwenye maktaba. Ukifuata nyaraka za maktaba, utagundua kwamba kwa kawaida inashughulikia miunganisho hii kiotomatiki.
Mifano ya Msimbo na Maelezo
Katika msimbo, kwanza tunajumuisha maktaba muhimu ya kudhibiti LCD:
#include <LCD4Bit_mod.h>
Maktaba hii inawezesha mawasiliano na 1602 LCD. Kisha tunaunda mfano wa kitu cha LCD na idadi ya mistari iliyobainishwa.
Ifuatayo, tunaanzisha LCD katika kazi ya setup():
lcd.init();
Mstari huu unatayarisha LCD kwa matumizi. Baada ya uanzishaji, tunaweza kuonyesha ujumbe wa majaribio kwa kutumia kazi ya lcd.printIn().
Katika kitanzi kikuu, tunasoma pembejeo ya analogi kugundua kubonyeza kwa vitufe:
adc_key_in = analogRead(0);
Mstari huu unasoma thamani kutoka kwa kibodi. Thamani husaidia kuamua ni kitufe gani kimebonyezwa kwa kutumia kazi ya get_key() inayobadilisha thamani ya ADC kuwa nambari ya kitufe.
Maonyesho / Nini cha Kutarajia
Unapoendesha msimbo, kubonyeza vitufe kutaonyesha ujumbe unaolingana na kitufe kilichobonyezwa kwenye LCD. Kwa mfano, kubonyeza kitufe cha kulia kitaonyesha "Right Key OK" kwenye onyesho (katika video saa 05:30). Ikiwa ugunduzi wa kitufe haufanyi kazi vizuri, angalia miunganisho na uhakikishe maktaba sahihi zimejumuishwa kwenye Arduino IDE yako.
Vidokezo vya Muda wa Video
- 00:00 - Utangulizi
- 03:00 - Muhtasari wa Msimbo
- 05:30 - Maonyesho ya Kubonyeza Kitufe
Mafunzo haya ni sehemu ya: Vitufe vya vitufe
- Kutumia 4x3 Keypad na Arduino
- Kodi ya Arduino na Video kwa Keypad ya Funguo Nne
- Kodi ya Arduino na Video: Kibodi Nyeusi ya Matrix 4x4
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Jinsi ya kutumia 4x4 Soft Keypad na Arduino
- 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;
}
Resurser och referenser
-
Extern.Arduino Library LCD4Bit_mod (GitHub)github.com
Filer📁
Inga filer tillgängliga.