خانه » دانشنامه‌ها » دانشنامه آردوینو » LCD کاراکتری و کار با آن از طریق آردوینو
  1. Home
  2. »
  3. دانشنامه‌ها
  4. »
  5. دانشنامه آردوینو
  6. »
  7. LCD کاراکتری و کار با آن از طریق آردوینو

LCD کاراکتری و کار با آن از طریق آردوینو

بازدید: 1399

چگونگی راه‌اندازی LCD کاراکتری برای نمایش خروجی آردوینو 

آشنایی با LCD کاراکتری

صفحه نمایشگر LCD کاراکتری خروجی  آردوینو را نمایش می‌دهد، از این‌رو نیازی به اتصال آردوینو به نمایشگر کامپیوتر یا لپ‌تاپ نیست. یک LCD کاراکتری  4×16 با یک کنترلر HD44780 می‌تواند چهار ردیف شامل 16 کاراکتر را در هر ردیف نمایش دهد، هر کاراکتر توسط یک آرایه 8×5 پیکسلی تعریف می‌شود. LCDها اندازه‌های متفاوتی همانند 4×16، 2×16، 2×20 و 4×20 دارند. یک LCD کاراکتری  16 دارای 16 پایه است، اگر از پایین به صفحه نمایشگر نگاه کنید این پایه‌ها از چپ به راست 1 تا 16 شماره‌گذاری ‌‌‍‍‍‍‍‍‍‍‍شده‌اند. برخی LCDها بلک لایت ندارند، بنابراین پایه‌های 15 و 16 متصل نمی‌شوند. کنتراست صفحه نمایش LCD با یک پتانسیومتر 10 کیلواهمی کنترل می‌شود. جزییات عملکرد پایه‌های LCD در جدول 1  بیان شده‌اند. 

 

 

           آردوینو

             توضیح

                پایه

               GND

               زمین

                1   VSS

                5V

         منبع تغذیه 5V

                2  VDD

   پایه سیگنال پتانسیومتر

    تنظیم کنتراست LCD

                3   V0

              پایه 2

 انتخاب رجیستر: رجیستر   داده  یا دستور برای کنترلر                LCD

                4   RS

 GND برای نوشتن بر روی                 LCD

     مد خواندن/ نوشتن

                5  RW

             پایه 3

     فعال‌ساز انتقال داده

                  6  E

         بدون اتصال

 

           7-10  D0-D3

          پایه 4-7

         بدون اتصال

           11-14 D4-D7

      5 V برای نور صفحه                 نمایشگر

آند LED  صفحه نمایشگر

   15 آند یا پایه مثبت LED

    GND برای نور صفحه                نمایشگر

کاتد LED صفحه نمایشگر

   16 کاتد یا پایه منفی LED

جدول 1. توضیح پایه‌های LCD کاراکتری

کتابخانه LCD کاراکتری توسط Adafruit در IDE آردوینو ایجادشده و نیاز به بارگذاری آن نیست. خطوط داده و کنترل LCD با دستور LiquidCrystal lcd(RS, E, D4, D5, D6, D7) به پایه‌های آردوینو نگاشته می‌شوند، که در آن RS, E و D4 تا D7 پایه‌های آردوینو متصل به LCD  هستند. برای مثال، اگر پایه‌های 6،5،4،3،2 و 7  آردوینو به پایه‌های RS,E, و D4تاLCD D7 متصل شوند، دستور تعریف پایه بصورت زیر می‌باشد:

 

				
					LiquidCrystal lcd(2, 3, 4, 5, 6, 7) );
				
			

یا

				
					int RS = 2;
int E = 3;
int D4 = 4;
int D5 = 5;
int D6 = 6;
int D7 = 7;
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);


				
			

کدها در IDE آردوینو

در کدهای نوشته شده در IDE آردوینو ثانیه‌هایی که کد اجرا می‌شود و دمای خوانده‌شده از سنسور دمای LM35DZ برروی LCD کاراکتری نمایش داده می‌شود (شکل.1 را مشاهده کنید). تابع () void setup ابعاد صفحه نمایش LCD و متن را برای نمایش مداوم مشخص می‌کند، بنابراین در حین اجرای تابع ()void loop فقط دما و زمان به روزشده برروی LCD نمایش داده می‌شوند. نقطه مرجع LCD برای قرار دادن یک کاراکتر در گوشه بالای سمت چپ مکان (0,0) است. برای مثال، مکان ستون پنجم و سطر دوم (4,1) است. اتصالات شکل‌ 1 در جدول 2 بیان شده‌اند.

شکل 1. سنسور دما و LCD

اتصال به

قطعه

GND آردوینو

GND LM35DZ

پایه A0 آردوینو

پایه OUT LM35DZ

5V آردوینو

VCC LM35DZ

GND آردوینو

GND  پتانسیومتر

پایه 3 LCD

سیگنال پتانسیومتر

5V آردوینو

VCC  پتانسیومتر

جدول 2. اتصالات LCD کاراکتری و سنسور دما

کدهای زیر مدت زمان نمایش دمای خوانده شده توسط سنسور دمای LM35 را بر روی LCD  بیان می‌کنند:

				
					#include <LiquidCrystal.h> // include the LiquidCrystal library
int LCDcol = 16; // number of LCD columns
int LCDrow = 4; // number of LCD rows
// associate lcd with LiquidCrystal library
LiquidCrystal lcd (2,3,4,5,6,7); // define LCD pins RS, E and D4 to D7
int tempPin = A0; // LM35DZ temperature sensor pin
int time = 0;
int reading;
float temp;
void setup()
{
lcd.begin(LCDcol, LCDrow); // define LCD dimensions
lcd.setCursor(0,0); // move cursor to start of first row
lcd.print("LCD to display"); // print first row "LCD to display"
lcd.setCursor(0,1); // move cursor to start of second row
lcd.print("time and temp"); // print second row "time and temp"
lcd.setCursor(3,2); // move cursor to insert "secs" on third row
lcd.print(" secs");
lcd.setCursor(5,3); // move cursor to insert "C" in fourth row
lcd.print(" C");
analogReference(INTERNAL); // set ADC voltage to 1.1V rather than 5V
}
void loop()
{
lcd.setCursor(0,2); // move cursor to start of third row
if(time < 100) lcd.print(" "); // spacing for 10s < time <100s
if(time < 10) lcd.print(" "); // spacing for time < 10s
lcd.print(time); // print time (s)
time++; // increment time
reading = analogRead(tempPin); // read temperature from sensor
temp = (reading * 110.0)/1023; // convert to Celsius given 1.1V range
lcd.setCursor(0,3); // move cursor to start of fourth row
lcd.print(temp); // print temperature
if(time>999) time = 0; // reset time to zero
delay (1000); // delay 1000ms
}

				
			

 در مقالات بعدی میبینیم : نمایشگر کریستال مایع (LCD) داده‌های سنسور را نمایش می‌دهد. کنتراست LCD توسط یک پتاسیومتر یا یک پالس PWM با یک خازن کنترل می‌شود. پیام‌های متنی به‌جای ثابت بودن در عرض LCD می‌توانند جابجا شوند . یک باس I2C برای ارتباط بین LCD و آردوینو بکاربرده می‌شود. مجموعه کاراکترها و موقعیت‌یابی مکان‌نما یا cursor یک ال سی دی 4×16 پیکسلی با استفاده از نمایش کاراکترهای جدید بیان خواهند شد. برنامه‌نویسی برای تجزیه و تحلیل داده‌های متنی واردشده از صفحه کلید از طریق بافر مانیتور سریال نیز انجام  خواهد شد.

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

  • آردوینو UNO و برد بورد
  • نمایشگر ال سی دی : 4×16 پیکسلی
  • باس I2C برای LCD
  • پتانسیومتر: 10 کیلواهم
  • خازن: 10 میکروفاراد
  • سنسورهای دما: LM35DZ و BMP280
  • مبدل سطح منطقی

 

 تیم ردرونیک (redronic) مجموعه ای از آموزش ها و پروژه های مرتبط با آردوینو را برای شما علاقمندان به الکترونیک و برنامه نویسی  فراهم کرده است. جهت مشاهده این پروژه ها اینجا کلیک کنید.

نظرتان را درباره این مقاله بگویید 10 نظر

LCD کاراکتری و کار با آن از طریق آردوینو

با ثبت نظر و نوشتن کامنت، تیم ما را در راستای بهبود و افزایش کیفیت محتوا یاری خواهید کرد :)

فهرست مطالب

مقالات مرتبط

بروزترین مقالات

این مقاله را با دوستانتان به اشتراک بگذارید!

LCD کاراکتری و کار با آن از طریق آردوینو

فهرست مطالب

چگونگی راه‌اندازی LCD کاراکتری برای نمایش خروجی آردوینو 

آشنایی با LCD کاراکتری

صفحه نمایشگر LCD کاراکتری خروجی  آردوینو را نمایش می‌دهد، از این‌رو نیازی به اتصال آردوینو به نمایشگر کامپیوتر یا لپ‌تاپ نیست. یک LCD کاراکتری  4×16 با یک کنترلر HD44780 می‌تواند چهار ردیف شامل 16 کاراکتر را در هر ردیف نمایش دهد، هر کاراکتر توسط یک آرایه 8×5 پیکسلی تعریف می‌شود. LCDها اندازه‌های متفاوتی همانند 4×16، 2×16، 2×20 و 4×20 دارند. یک LCD کاراکتری  16 دارای 16 پایه است، اگر از پایین به صفحه نمایشگر نگاه کنید این پایه‌ها از چپ به راست 1 تا 16 شماره‌گذاری ‌‌‍‍‍‍‍‍‍‍‍شده‌اند. برخی LCDها بلک لایت ندارند، بنابراین پایه‌های 15 و 16 متصل نمی‌شوند. کنتراست صفحه نمایش LCD با یک پتانسیومتر 10 کیلواهمی کنترل می‌شود. جزییات عملکرد پایه‌های LCD در جدول 1  بیان شده‌اند. 

 

 

           آردوینو

             توضیح

                پایه

               GND

               زمین

                1   VSS

                5V

         منبع تغذیه 5V

                2  VDD

   پایه سیگنال پتانسیومتر

    تنظیم کنتراست LCD

                3   V0

              پایه 2

 انتخاب رجیستر: رجیستر   داده  یا دستور برای کنترلر                LCD

                4   RS

 GND برای نوشتن بر روی                 LCD

     مد خواندن/ نوشتن

                5  RW

             پایه 3

     فعال‌ساز انتقال داده

                  6  E

         بدون اتصال

 

           7-10  D0-D3

          پایه 4-7

         بدون اتصال

           11-14 D4-D7

      5 V برای نور صفحه                 نمایشگر

آند LED  صفحه نمایشگر

   15 آند یا پایه مثبت LED

    GND برای نور صفحه                نمایشگر

کاتد LED صفحه نمایشگر

   16 کاتد یا پایه منفی LED

جدول 1. توضیح پایه‌های LCD کاراکتری

کتابخانه LCD کاراکتری توسط Adafruit در IDE آردوینو ایجادشده و نیاز به بارگذاری آن نیست. خطوط داده و کنترل LCD با دستور LiquidCrystal lcd(RS, E, D4, D5, D6, D7) به پایه‌های آردوینو نگاشته می‌شوند، که در آن RS, E و D4 تا D7 پایه‌های آردوینو متصل به LCD  هستند. برای مثال، اگر پایه‌های 6،5،4،3،2 و 7  آردوینو به پایه‌های RS,E, و D4تاLCD D7 متصل شوند، دستور تعریف پایه بصورت زیر می‌باشد:

 

				
					LiquidCrystal lcd(2, 3, 4, 5, 6, 7) );
				
			

یا

				
					int RS = 2;
int E = 3;
int D4 = 4;
int D5 = 5;
int D6 = 6;
int D7 = 7;
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);


				
			

کدها در IDE آردوینو

در کدهای نوشته شده در IDE آردوینو ثانیه‌هایی که کد اجرا می‌شود و دمای خوانده‌شده از سنسور دمای LM35DZ برروی LCD کاراکتری نمایش داده می‌شود (شکل.1 را مشاهده کنید). تابع () void setup ابعاد صفحه نمایش LCD و متن را برای نمایش مداوم مشخص می‌کند، بنابراین در حین اجرای تابع ()void loop فقط دما و زمان به روزشده برروی LCD نمایش داده می‌شوند. نقطه مرجع LCD برای قرار دادن یک کاراکتر در گوشه بالای سمت چپ مکان (0,0) است. برای مثال، مکان ستون پنجم و سطر دوم (4,1) است. اتصالات شکل‌ 1 در جدول 2 بیان شده‌اند.

شکل 1. سنسور دما و LCD

اتصال به

قطعه

GND آردوینو

GND LM35DZ

پایه A0 آردوینو

پایه OUT LM35DZ

5V آردوینو

VCC LM35DZ

GND آردوینو

GND  پتانسیومتر

پایه 3 LCD

سیگنال پتانسیومتر

5V آردوینو

VCC  پتانسیومتر

جدول 2. اتصالات LCD کاراکتری و سنسور دما

کدهای زیر مدت زمان نمایش دمای خوانده شده توسط سنسور دمای LM35 را بر روی LCD  بیان می‌کنند:

				
					#include <LiquidCrystal.h> // include the LiquidCrystal library
int LCDcol = 16; // number of LCD columns
int LCDrow = 4; // number of LCD rows
// associate lcd with LiquidCrystal library
LiquidCrystal lcd (2,3,4,5,6,7); // define LCD pins RS, E and D4 to D7
int tempPin = A0; // LM35DZ temperature sensor pin
int time = 0;
int reading;
float temp;
void setup()
{
lcd.begin(LCDcol, LCDrow); // define LCD dimensions
lcd.setCursor(0,0); // move cursor to start of first row
lcd.print("LCD to display"); // print first row "LCD to display"
lcd.setCursor(0,1); // move cursor to start of second row
lcd.print("time and temp"); // print second row "time and temp"
lcd.setCursor(3,2); // move cursor to insert "secs" on third row
lcd.print(" secs");
lcd.setCursor(5,3); // move cursor to insert "C" in fourth row
lcd.print(" C");
analogReference(INTERNAL); // set ADC voltage to 1.1V rather than 5V
}
void loop()
{
lcd.setCursor(0,2); // move cursor to start of third row
if(time < 100) lcd.print(" "); // spacing for 10s < time <100s
if(time < 10) lcd.print(" "); // spacing for time < 10s
lcd.print(time); // print time (s)
time++; // increment time
reading = analogRead(tempPin); // read temperature from sensor
temp = (reading * 110.0)/1023; // convert to Celsius given 1.1V range
lcd.setCursor(0,3); // move cursor to start of fourth row
lcd.print(temp); // print temperature
if(time>999) time = 0; // reset time to zero
delay (1000); // delay 1000ms
}

				
			

 در مقالات بعدی میبینیم : نمایشگر کریستال مایع (LCD) داده‌های سنسور را نمایش می‌دهد. کنتراست LCD توسط یک پتاسیومتر یا یک پالس PWM با یک خازن کنترل می‌شود. پیام‌های متنی به‌جای ثابت بودن در عرض LCD می‌توانند جابجا شوند . یک باس I2C برای ارتباط بین LCD و آردوینو بکاربرده می‌شود. مجموعه کاراکترها و موقعیت‌یابی مکان‌نما یا cursor یک ال سی دی 4×16 پیکسلی با استفاده از نمایش کاراکترهای جدید بیان خواهند شد. برنامه‌نویسی برای تجزیه و تحلیل داده‌های متنی واردشده از صفحه کلید از طریق بافر مانیتور سریال نیز انجام  خواهد شد.

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

  • آردوینو UNO و برد بورد
  • نمایشگر ال سی دی : 4×16 پیکسلی
  • باس I2C برای LCD
  • پتانسیومتر: 10 کیلواهم
  • خازن: 10 میکروفاراد
  • سنسورهای دما: LM35DZ و BMP280
  • مبدل سطح منطقی

 

 تیم ردرونیک (redronic) مجموعه ای از آموزش ها و پروژه های مرتبط با آردوینو را برای شما علاقمندان به الکترونیک و برنامه نویسی  فراهم کرده است. جهت مشاهده این پروژه ها اینجا کلیک کنید.

نظرتان را درباره این مقاله بگویید 10 نظر

LCD کاراکتری و کار با آن از طریق آردوینو

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دوازده + چهارده =

فروشگاه