راهنمای جامع استفاده از شیلد نمایشگر کاراکتری 1602 آردوینو

فهرست مطالب

مقدمه

در این آموزش نحوه کار با شیلد نمایشگر 2×16 آردوینو را با انجام 3 پروژه کاربردی خواهید آموخت.

آنچه در این آموزش یاد می‌گیرید

شیلد نمایشگر 1602 آردوینو

نمایش اطلاعات در پروژه های الکترونیکی همیشه از ضرروی ترین مسئله ها بوده است. روش های مختلفی برای نمایش اطلاعات وجود دارد. از روش های ساده مانند استفاده از LED و 7segment تا روش های جذاب تر مانند استفاده از LCDها یا نمایش روی کامپیوتر. استفاده از LCDها همیشه جزو محبوب ترین روش ها برای نمایش اطلاعات بوده است، LCDها به دو دسته کلی کاراکتری و گرافیکی تقسیم می شوند. یکی از رایج ترین، ارزان ترین و ساده ترین LCD های موجود، LCD کاراکتری می باشد، این LCD شامل چند سطر و ستون می باشد و حروف و اعداد را در خانه های ایجاد شده بوسیله سطرها و ستون ها می نویسد. بعنوان مثال LCD کاراکتری 16×2 دارای 2 سطر و 16 ستون می باشد پس می تواند 32 کاراکتر را به نمایش بگذارد. نحوه کار با این LCD ها بسیار ساده می باشد. همچنین این نمایشگرها با همه میکروکنترلرها و بوردهای پردازنده سازگاری کامل دارند. برای استفاده راحت تر از این LCD ها مدل 16×2 آن به همراه 4 کلید برای ساخت منو، بصورت شیلد سازگار با بوردهای آردوینو تهیه شده است. این شیلد کلید(بالا، پایین، راست، چپ و انتخاب) برای ساخت منو دارد.

نحوه استفاده از شیلد LCD آردوینو

برای استفاده از شیلد نمایشگر آردوینو لازم است ابتدا پایه های آن و نحوه ارتباط آن با آردوینو را بدانید.
Arduino Pin Shield Pin
8 LCD RS
9 LCD Enable
7 LCD D7
6 LCD D6
5 LCD D5
4 LCD D4
10 LCD Backlight
A0 Buttons
از باقی پایه های آردوینو که توسط شیلد اشغال نشده اند می توانید برای سایر قسمتهای پروژه خود استفاده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

برد آردوینو Uno R3 × 1
شیلد نمایشگر LCD کاراکتری 1602 آردوینو × 1

نرم افزارهای مورد نیاز

Arduino IDE

چگونه کلیدها را بخوانیم؟

در این شیلد برای صرفه جویی در مصرف پایه های دیجیتال، همه 4 کلید به پایه آنالوگ 0 متصل شده اند و برای خواندن آنها باید از روش ADC استفاده کنیم. کلیدها هنگام فشرده شدن با توجه به مدار تقسیم مقاومتی داخلی که دارند مقداری را برروی پایه A0 برمی گردانند که با توجه به آن مقدار نوع کلید را شناسایی می کنیم.
Key A0 Value
RIGHT 0-60
UP 60-200
DOWN 200-400
LEFT 400-600
SELECT 600-800
/*
Arduino 2x16 LCD - Detect Buttons
modified on 18 Feb 2019
by Saeed Hosseini @ Electropeak
Home
*/ #include <LiquidCrystal.h> //LCD pin to Arduino const int pin_RS = 8; const int pin_EN = 9; const int pin_d4 = 4; const int pin_d5 = 5; const int pin_d6 = 6; const int pin_d7 = 7; const int pin_BL = 10; LiquidCrystal lcd( pin_RS, pin_EN, pin_d4, pin_d5, pin_d6, pin_d7); void setup() { lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("Electropeak.com"); lcd.setCursor(0,1); lcd.print("Press 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"); } }
بگذارید نگاهی عمیق تر به کد بیاندازیم:
#include <LiquidCrystal.h>
کتابخانه مورد نیاز برای کار با LCD کاراکتری.
LiquidCrystal LCD( pin_RS, pin_EN, pin_d4, pin_d5,  pin_d6, pin_d7);
تعریف شی LCD با توجه به پایه های متصل شده به آردوینو.
lcd.begin(16, 2);
پیکربندی اولیه LCD با مشخص کردن تعداد ستون ها و سطر های آن، آرگومان اول تعداد ستون ها و آگومان دوم تعداد سطرها. برخی از مهمترین توابع کار با LCD:
Function Description
lcd.clear(); Clear LCD screen
lcd.print(data); Display informations in string or number
lcd.setCursor(col,row); Change the start point position
lcd.scrollDisplayLeft(); Shift the cursor one block to the left
lcd.scrollDisplayRight(); Shift the cursor one block to the right
lcd.creatChar(num,data); Create a desired character(character number,character string)
شما می توانید در سایت آردوینو توابع بیشتری ببینید.

چگونه یک متن را اسکرول کنیم؟

با استفاده از توابع بالا می توانیم براحتی این کار را انجام دهیم:
/*
Arduino 2x16 LCD - LCD Scroll
modified on 18 Feb 2019
by Saeed Hosseini
Home
*/ #include <LiquidCrystal.h> const int RS = 8; const int EN = 9; const int d4 = 4; const int d5 = 5; const int d6 = 6; const int d7 = 7; const int pin_BL = 10; // arduino pin wired to LCD backlight circuit LiquidCrystal lcd( RS, EN, d4, d5, d6, d7); void setup() { lcd.begin(16, 2); lcd.print("Electropeak"); delay(1000); } void loop() { // scroll 11 positions ("Electropeak" length) to the left for (int positionCounter = 0; positionCounter < 11; positionCounter++) { lcd.scrollDisplayLeft(); delay(400); //Scrolling speed } // scroll 27 positions ("Electropeak" length + display length) to the right for (int positionCounter = 0; positionCounter < 27; positionCounter++) { lcd.scrollDisplayRight(); delay(400); } // scroll 16 positions (display length) to the left for (int positionCounter = 0; positionCounter < 16; positionCounter++) { lcd.scrollDisplayLeft(); delay(50); } delay(1000); }

چگونه یک کاراکتر خاص را نمایش دهیم؟

شما می توانید در هر خانه از LCD کاراکتر مدنظر خود را بسازید. برای این کار ابتدا می بایست کاراکتر مورد نظر را به آرایه ای از کدها تبدیل کنید سپس این آرایه را در LCD نشان دهید. برای تبدیل کاراکتر به کد می توانید از سایت های آنلاینی نظیر این استفاده کنید، کاراکتر خود را طراحی کنید سپس آرایه تولید شده را در کد خود قرار دهید.
/*
Arduino 2x16 LCD - LCD Special Char
modified on 18 Feb 2019
by Saeed Hosseini
Home
*/ #include <LiquidCrystal.h> const int RS = 8; const int EN = 9; const int d4 = 4; const int d5 = 5; const int d6 = 6; const int d7 = 7; const int pin_BL = 10; // arduino pin wired to LCD backlight circuit LiquidCrystal lcd( RS, EN, d4, d5, d6, d7); // smily face byte smiley[8] = { B00000, B10001, B00000, B00000, B10001, B01110, B00000, }; // Battery sign byte battery[] = { B01110, B01010, B11011, B10001, B11111, B11111, B11111, B11111 }; // arrow right byte R_arrow[8] = { B00000, B00100, B00010, B11111, B00010, B00100, B00000, B00000 }; // arrow left byte L_arrow[8] = { B00000, B00100, B01000, B11111, B01000, B00100, B00000, B00000 }; // Ohm sign byte ohm[8] = { B00000, B01110, B10001, B10001, B10001, B01010, B11011, B00000 }; // Heart byte heart[8] = { B00000, B01010, B10101, B10001, B10001, B01010, B00100, B00000 }; int i = 0; void setup() { lcd.begin(16, 2); lcd.createChar(0, smiley); lcd.createChar(1, battery); lcd.createChar(2, R_arrow); lcd.createChar(3, L_arrow); lcd.createChar(4, ohm); lcd.createChar(5, heart); lcd.createChar(6, ohm); for (int n = 0; n < 6; n++) { lcd.setCursor(n * 2, 0); lcd.write(n); } } void loop() { }
lcd.createChar آرایه شما را در خانه ای از حافظه ذخیره می کند و lcd.write آنرا نمایش می دهد.

پروژه نمونه برای شیلد نمایشگر 1602 آردوینو

یک گام جلوتر

  • سعی کنید یک منو با قابلیت انتخاب گزینه ها بسازید.

آموزش های مشابه

Comments (2)

  • امیر Reply

    سلام اگه بشه یه اموزش بدون شیلد یا lcd ساده بزارید وبه ایمیلم بفرستید

    مارس 13, 2020 at 6:34 ب.ظ
  • مجتبی Reply

    با سلام
    تمامی کدهای قرار داده شده در سایت ،درزمان کپی شدنشون در نرم افزار آردویینو خطای LCD.print (“Select”); یا #include میدن…
    ممنون میشم بررسی و راهنمایی بفرمایید .

    آوریل 2, 2020 at 2:57 ب.ظ

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

نشانی ایمیل شما منتشر نخواهد شد.