This tutorial is part of: Keypads
All keypad videos are listed here. Links to other videos are below this article.
د 1602 LCD کیپډ شیلډ: بنسټیز کوډ
په دې ټیوټوریل کې، موږ به وپلټو چې څنګه د 1602 LCD کیپاډ شیلډ د آردوینو سره پروګرام او وکاروو. دا شیلډ د 16-کرکټرونو په 2-کرښو نندارې او یو کیپاډ لري چې د مختلفو ننوتلو دندو لپاره اجازه ورکوي. د دې لارښود په پای کې، تاسو به وکولی شئ پیغامونه ښکاره کړئ او د کیلي فشارونو ته په اغیزمنه توګه ځواب ووایاست.
تمرکز به د یو ساده پروګرام په جوړولو وي چې د کیلي فشارونه کشف کوي او اړوند پیغامونه په LCD باندې ښکاره کوي. تاسو کولی شئ د بصري نندارې لپاره له ویډیو سره تعقیب کړئ (په ویډیو کې په 03:00).
هارډویر تشریح شوی
په دې جوړښت کې لومړنی جز د 1602 LCD کیپاډ شیلډ دی. دا شیلډ مستقیم د آردوینو بورډ سره نښلول کیږي او د کاروونکي تعامل لپاره دواړه نندارې او کیپاډ چمتو کوي. LCD کولی شي متن پیغامونه ښکاره کړي، پداسې حال کې چې کیپاډ کاروونکو ته اجازه ورکوي چې د مختلفو تڼیو له لارې اختیارونه غوره کړي.
کیپاډ د انلاګ انپټ په کارولو سره کار کوي، کوم چې آردوینو یې لوستلی ترڅو معلومه کړي چې کومه تڼۍ فشارول شوې ده. هرې تڼۍ یو ځانګړی مقاومت لري، چې مایکروکنټرولر ته اجازه ورکوي چې د سینسر څخه ترلاسه شوي انلاګ ارزښت پر بنسټ تڼۍ وپیژني.
ډیټاشیټ تفصیلات
| جوړونکی | عمومي |
|---|---|
| د پرزې شمېره | 1602 LCD کیپاډ شیلډ |
| منطق/IO ولټاژ | 5 V |
| د برېښنا ولټاژ | 5 V |
| د تولید جریان (په هر چینل) | 2 mA |
| د لوړ جریان (په هر چینل) | 20 mA |
| د PWM فریکونسي لارښود | N/A |
| د انپټ منطق حدونه | 0.3 Vcc څخه تر 0.7 Vcc |
| د ولټاژ کمښت / RDS(on) / سنتریشن | N/A |
| حرارتي حدونه | 70 °C |
| بسته بندي | د شیلډ بڼه |
| یادښتونه / بڼې | د آردوینو یونو سره مطابقت لري |
- ډاډ ترلاسه کړئ چې LCD په 5 V برېښنا کیږي ترڅو زیان څخه مخنیوی وشي.
- که اړتیا وي، د کیپاډ لپاره مناسب پل-اپ ریزسټرونه وکاروئ.
- د څو ځله ټریګر کیدو څخه مخنیوي لپاره په کوډ کې د کیلي فشارونه ډیبونس کړئ.
- د ډیر تودوخې څخه مخنیوي لپاره د جریان حدونو ته پام وکړئ.
- د سرکټ برېښنا کولو دمخه اړیکې وازموئ.
د تارونو لارښوونې
د 1602 LCD کیپاډ شیلډ تارولو لپاره، په ساده ډول یې مستقیم د آردوینو بورډ سره ونښلوئ. شیلډ د آردوینو یونو د پن ترتیب سره سمون لپاره ډیزاین شوی. ډاډ ترلاسه کړئ چې پنونه په خوندي توګه نښلول شوي دي.
د کیپاډ تڼۍ د انلاګ انپټ پن A0 سره نښلول کیږي. د LCD ډیټا کرښې د کارول شوي کتابتون لخوا په داخلي توګه اداره کیږي، نو تاسو به اړتیا ونلرئ چې یې په جلا توګه تار کړئ. شیلډ د بیک لایټ او نورو دندو کنټرول لپاره څو ډیجیټل پنونه هم کاروي، کوم چې په کتابتون کې دمخه ټاکل شوي دي. که تاسو د کتابتون اسناد تعقیب کړئ، تاسو به ومومئ چې دا معمولا دا اړیکې په اتوماتيک ډول اداره کوي.
د کوډ مثالونه او واک ترو
په کوډ کې، موږ لومړی د LCD کنټرول لپاره اړین کتابتون شامل کوو:
#include <LCD4Bit_mod.h>
دا کتابتون د 1602 LCD سره اړیکه اسانه کوي. بیا موږ د کرښو شمېرې سره د LCD څیز یوه بیلګه جوړوو.
بیا، موږ LCD په setup() فنکشن کې پیل کوو:
lcd.init();
دا کرښه LCD د کارونې لپاره چمتو کوي. د پیل کولو وروسته، موږ کولی شو د lcd.printIn() فنکشن په کارولو سره یو ازمایښتي پیغام ښکاره کړو.
په اصلي لوپ کې، موږ د کیلي فشارونو کشف لپاره انلاګ انپټ لوستلو:
adc_key_in = analogRead(0);
دا کرښه د کیپاډ څخه ارزښت لوستلی. دا ارزښت د get_key() فنکشن په کارولو سره معلومولو کې مرسته کوي چې کومه کیلي فشارول شوې وه، کوم چې د ADC ارزښت د کیلي شمېرې ته بدلوي.
ننداره / څه تمه وکړو
کله چې تاسو کوډ چلوئ، د تڼیو فشارول به په LCD باندې د فشار شوي کیلي سره اړوند پیغامونه ښکاره کړي. د مثال په توګه، د ښي کیلي فشارول به په نندارې کې "Right Key OK" ښکاره کړي (په ویډیو کې په 05:30). که د کیلي کشف په سمه توګه کار نه کوي، تارونه وګورئ او ډاډ ترلاسه کړئ چې سم کتابتونونه ستاسو په آردوینو IDE کې شامل دي.
د ویډیو وختونه
- 00:00 - پیژندنه
- 03:00 - د کوډ کتنه
- 05:30 - د کیلي فشار ننداره
This tutorial is part of: Keypads
- د 4x3 کیپیډ د Arduino سره کارول
- د آردوینو کوډ او ویډیو د څلور تڼۍ کیپډ لپاره
- د آردوینو کوډ او ویډیو: 4x4 میټریکس تور کیپیډ
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- د 4x4 سافټ کیپډ د 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;
}
Resources & references
-
ExternalArduion Libary LCD4Bit_mod (getHub)github.com
Files📁
No files available.