آردوینو آردوینو Arduino Uno آموزش آردوینو نمایشگر LCD

آموزش راه اندازی شیلد LCD و KEYPAD آردوینو LCD Module

شلد lcd shield آردوینو arduino کیپد keypad
نوشته شده توسط علیرضا قربانی, معین صابری

نمایشگرها یکی از مهم ترین و پرکاربردترین ابزارها در طراحی مدارهای مختلف دیجیتال به شمار می روند. به کمک نمایشگرها داده های محاسبه شده به عنوان خروجی بر روی نمایشگر ظاهر می شود. بدین ترتیب کاربر با مشاهده نتایج بر روی خروجی، می تواند تصمیات لازم را اتخاذ کرده و یا از وضعیت عملکرد دستگاه آگاه شود. در کنار نمایشگر، وجود صفحه کلید جهت دریافت ورودی از کاربر، امری اجتناب ناپذیر است. جهت دریافت ورودی انواع مختلفی از صفحه کلیدهای ماتریسی، لمسی و…. وجود دارد. شاید سیم کشی و برنامه نویسی صفحه کلید و نمایشگر در بعضی از پروژه ها به پیچیدگی طراحی کمک کند. اما به کمک شیلد نمایشگر LCD و کیپد شما می توانید به سادگی و به طور همزمان، علاوه بر نمایشگر، به صفحه کلید جهت دریافت ورودی از کاربر دسترسی داشته باشید. در این آموزش به راه اندزای شیلد نمایشگر و کیپد آردوینو می پردازیم. در ابتدا به معرفی این شیلد پرداخته و در نهایت نحوه برنامه نویسی و کار با آن را خواهیم دید. به همین منظور، در ادامه آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.


شیلد نمایشگر و کیپد مخصوص آردوینو


شیلد کیپد و نمایشگر مخصوص آردوینو، یک شیلد فوق العاده کاربردی جهت اتصال به بردهای آردوینو UNO و MEGA است. از آنجاییکه طراحی به صورت شیلد است، بنابراین این نمایشگر/کیپد به سادگی و بدون نیاز به هیچ گونه سیم کشی بر روی آردوینو قرار می گیرد.

این شیلد از یک نمایشگر ۲×۱۶ کاراکتری به همراه ۶ کلید بهره می برد. کنار هر کلید عبارتی جهت انجام یک عمل خاص درج شده است. این عبارات به همراه توضیحات کاربردی آن را می توان به صورت زیر لیست کرد.

  • up: افزایش
  • down: کاهش
  • Select: انتخاب و ورود به تنظیمات
  • Left: چپ
  • Right: راست
  • RST: ریست آردوینو و اجرای برنامه از ابتدا

البته شما می توانید کلیدهای فوق را به گونه دلخواه به کار ببرید. نکته مهم اینست که این کلیدها جهت صرفه جویی در پایه های اشغال شده، تنها به یک پایه از ورودی آنالوگ شماره ۰ آردوینو متصل شده و باقی پایه ها آزاد هستند. البته پایه های دیگری از آردوینو به دلیل نمایشگر اشغال می شوند.  به طور کلی پایه های اشغال شده توسط این شیلد پایه های  ۴ ، ۵ ، ۶ ، ۷ ، ۸ ، ۹ و ۱۰ برای ارتباط نمایشگر و آردوینو و پایه A0 جهت تشخیص کلید به کار می رود.  در رابطه با نحوه تشخیص کلید فشرده شده، در ادامه نمونه کد خواهیم دید.

بر روی این شیلد حفره هایی جهت دسترسی به پایه های آنالوگ وجود دارد. شما می توانید به سادگی با لحیم کابل، به این پایه ها دسترسی داشته باشید. در رابطه با نصب این شیلد بر روی آردینو UNO و یا MEGA توجه داشته باشید که پایه های شیلد به صورت نظیر به نظیر بر روی پایه های آردوینو قرار گیرد. در ادامه به راه اندازی و نمونه کد جهت کار می پردازیم.


نمونه کد شماره۱: تست و نمایش کلید فشرده شده


در این قسمت به اجرای یک نمونه برنامه جهت تشخیص و نمایش کلید فشرده شده می پردازیم. توجه داشته باشید که برای راه اندازی این شیلد نیازی به کتابخانه اضافه نخواهید داشت. کتابخانه LCD به طور پیشفرض بر روی نرم افزار آردوینو نصب است. کدهای زیر را کپی کرده و بر روی برد آردوینو UNO و یا MEGA آپلود نمایید.

#include <LiquidCrystal.h> //فراخوانی کتابخانه نمایشگر
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);  //تعریف پایه های نمایشگر
void setup() {
  pinMode(10, OUTPUT);  //تعیرف پایه ۱۰ به عنوان خروجی جهت روشن کردن بک لایت نمایشگر
  digitalWrite(10 , HIGH);
  lcd.begin(16, 2);
  lcd.setCursor(0,0); //تعیین موقعیت مکان نما
  lcd.print("DIGISPARK.IR");
  lcd.setCursor(0,1);
  lcd.print("Key:");
}
 
void loop() {
  int x;  // تعریف متغیر جهت خواندن مقدار آنالوگ
  x = analogRead (0);   
  lcd.setCursor(10,1);
  if (x < 60) {  //در صورتیکه مقدار کمتر از ۶۰ باشد کلید راست فشرده شده
    lcd.print ("Right ");
  }
  else if (x < 200) {   //در صورتیکه مقدار کمتر از ۲۰۰ باشد کلید بالا فشرده شده
    lcd.print ("Up    ");
  }
  else if (x < 400){    //در صورتیکه مقدار از ۴۰۰ کمتر شود کلید پایین فشرده شده
    lcd.print ("Down  ");
  }
  else if (x < 600){    //کلید چپ
    lcd.print ("Left  ");
  }
  else if (x < 800){  //کلید انتخاب
    lcd.print ("Select");
  }
}

پس از اجرای کد فوق، تصویر زیر را مشاهده خواهید کرد. در این برنامه با فشردن هر کلید، اسم آن بر روی نمایشگر نمایش داده می شود. در این روش، از آنجاییکه فشردن هر کلید سبب ایجاد یک ولتاژ خاص بر روی ADC می شود، لذا به این ترتیب می توان کلید فشرده شده را تشخیص داد.

 


نمونه کد شمار۲: افزایش و کاهش مقدار به کمک کلیدها


در این قسمت به کمک کلیدهای افزایش و کاهش، مقدار یک متغیر را تنظیم می کنیم. از این قابلیت می توانید در طراحی ترموستات ها جهت تنظیم دمای محیط استفاده کنید. در زیر نمونه کد را مشاهده می کنید:

#include <LiquidCrystal.h> //فراخوانی کتابخانه نمایشگر
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);  //تعریف پایه های نمایشگر
void setup() {
  pinMode(10, OUTPUT);  //تعیرف پایه ۱۰ به عنوان خروجی جهت روشن کردن بک لایت نمایشگر
  digitalWrite(10 , HIGH);
  lcd.begin(16, 2);
  lcd.setCursor(0,0); //تعیین موقعیت مکان نما
  lcd.print("DIGISPARK.IR");
  lcd.setCursor(0,1);
  lcd.print("value:");
}
 int count=0;   //متغیر جهت تنظیم توسط کلیدها
void loop() {
  int x;  // تعریف متغیر جهت خواندن مقدار آنالوگ
  x = analogRead (0);     
  lcd.setCursor(10,1);
  if (x < 200) {   //در صورتیکه مقدار کمتر از ۲۰۰ باشد کلید بالا فشرده شده
    lcd.print (++count);   //افزایش و نمایش مقدار
    delay(500);
    
  }
  else if (x < 400){    //در صورتیکه مقدار از ۴۰۰ کمتر شود کلید پایین فشرده شده
    lcd.print (--count);  //کاهش و نمایش مقدار
    delay(500);
  }
}

در ادامه با اجرای برنامه، با فشردن کلیدهای up و down می توانید مقدار را کم و یا زیاد کرده و بر روی نمایشگر نمایش دهید. تصویر زیر گویای این مطلب است.

توجه: هنگام راه اندازی ممکن است هیچ نوشته ای بر روی نمایشگر مشاهده نشود. برای این مورد می بایست ولوم آبی رنگ روی نمایشگر را بچرخانید تا با کاهش نور پس زمینه، نوشته ها نمایان شود.


نحوه تشخیص کلیدها در شیلد نمایشگر و کیپد


در این قسمت به تحلیل و بررسی چگونگی تشخیص کلیدهای قرار گرفته بر روی شیلد نمایشگر و کیپد می پردازیم. همانطور که گفته شد، این کلید ها به یک پایه از آنالوگ صفر متصل هستند. از آنجاییکه هر کلید با فشرده شدن ولتاژ خاصی را ایجاد می کند، لذا به کمک مبدل آنالوگ به دیجیتال می توان فشرده شدن کلید را تشخیص داد.  این مورد را در قطعه کد زیر مشاهده می کنید.

 x = analogRead (0);
  lcd.setCursor(10,1);
  if (x < 60) {
    lcd.print ("Right ");
  }
  else if (x < 200) {
    lcd.print ("Up    ");
  }
  else if (x < 400){
    lcd.print ("Down  ");
  }
  else if (x < 600){
    lcd.print ("Left  ");
  }
  else if (x < 800){
    lcd.print ("Select");
  }

لوازم مورد نیاز


شیلد نمایشگر و کیپد مخصوص آردوینو

برد آردوینو UNO

برد آردوینو MEGA


جمع بندی


در این آموزش به نحوه راه اندای و کار با شیلد نمایشگر و کیپد مخصوص آردوینو پرداختیم. به کمک این شیلد می توان به سادگی علاوه بر نمایشگر، به یک کیپد جهت دریافت ورودی از کاربر دسترسی داشت. از آنجاییکه طراحی به صورت شیلد است، لذا به سادگی و بدون نیاز به هیچ سیم کشی اضافه، این شیلد بر روی بردهای آردوینو UNO و MEGA قرار می گیرد. از این شیلد می توان در طراحی مدارهای مختلف نظیر ترموستات ها، رله های تایمری و…. استفاده نمود. راه اندازی و کار با این شیلد بسیار ساده بوده و از کتابخانه نمایشگر کاراکتری نیز در راه اندازی و کار با این شیلد، استفاده می شود. در کنار این، این شیلد دارای ۶ کلید جهت دریافت ورودی از کاربر بوده که تنها یک پایه از آردوینو توسط این شیلد اشغال می شود.

چنانچه در رابطه با این آموزش سوالی دارید، و یا احساس می کنید مطالب گنگ هستند، نظرات خود را در انتهای مطلب به صورت کامنت مطرح نمایید. همچنین اگر در جایی مطالب ایراد و یا اشکالی دارند، می توانید مورد را به صورت کامنت مطرح کنید. بلافاصله پس از دریافت نظر شما، با شما به تبادل نظر خواهیم پرداخت.

درباره نویسنده

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۳ دیدگاه