آردوینو Arduinoآموزش آردوینو

آموزش اتصال LCD کاراکتری به آردوینو

سلام. آموزش جامع اتصال LCD کاراکتری به برد آردوینو (ایجاد متن متحرک در ال سی دی) را آماده کردیم.

آموزش اتصال ال سی دی کاراکتری به برد Arduino Uno

برای برقراری ارتباط بین انسان و دنیای ماشین ها ، نمایشگر ها نقش مهمی را ایفا میکنند. نمایشگر های بزرگ یا کوچک یا … با یک اصل کار میکنند. نمایشگر ال سی دی کاراکتری 16*1 دارای یک ردیف با 16 ستون است که میتوان در هر ستون آن یک کاراکتر قرار داد. ما در پروژه های آردوینو اغلب از ال سی دی کاراکتری 16*2 استفاده میکنیم که به ما اجازه نوشتن 32 کاراکتری را میدهد. هر کاراکتر 5*10=50 پیکسل دارد.

در قسمت قبلی سری آموزش های آردوینو ، ما به طور کامل با نحوه کنترل سرعت موتور DC با آردوینو آشنا شدیم.

قسمت قبل : آموزش کامل کنترل سرعت موتور DC با Arduino و پتانسیومتر (آموزش آردوینو #5)

در این آموزش آردوینو میخواهیم یک ال سی دی کاراکتری 16*2 را به آردوینو Uno متصل کنیم. برخلاف میکروکنترلر ها و برد های دیگر ، اتصال برد Arduino به LCD کاراکتری بسیار ساده است. در برد های آردوینو نیازی نیست که نگران ارسال و دریافت اطلاعات باشیم. ما فقط باید پین های LCD را تغریف کنیم و بقیه کار ها توسط Arduino انجام میشود.

برای یادگیری کامل آردوینو (برنامه نویسی حرفه ای، ارتباط با اندروید، ساخت ربات) ، روی دوره آموزش آردوینو کلیک کنید.

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

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

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

قطعات مورد نیاز برای این آموزش Arduino

برای اجرای این آموزش نیاز به یک سری قطعات داریم.

  1. برد آردوینو Uno
  2. منبع تغذیه 5 ولت
  3. ال سی دی کاراکتری 16*2
  4. خازن 100uf

مدار اتصال LCD به آردوینو

در صورت وجود بک لایت، در ال سی دی کاراکتری 16*2 ، 16 پین وجود دارد. و در صورت عدم وجود بک لایک 14 پین وجود خواهد داشت. در این پین ها ، 8 پین داده هستند که با D0 تا D7 مشخص میشوند. 2 پین برای تغذیه هستند که با GND , +5 یا VDD , VSS و یا 1 , 2 مشخص میشوند. پین 3 برای کنترل کنتراست است. همچنین 3 پین RS , RW و E برای کنترل هستند.

توضیحات مدار اتصال LCD به آردوینو

به تصویر مدار دقت کنید. ما فقط 2 پین را برای کنترل در نظر گرفته ایم زیرا پین کنتراست و RW اغلب استفاده نمیشوند. بنابراین میتوان آن ها را به GND متصل کرد.ما فقط باید پین E , RS را کنترل کنیم تا کاراکتر ها و داده ها را براساس آن ارسال کنیم.

مطلب پیشنهادی:  پروژه ساخت دیمر با آردوینو (آموزش کامل PWM با Arduino)

اتصالاتی که برای LCD انجام می شود در زیر آمده است:

  • PIN1 یا VSS به زمین GND متصل میشود.
  • PIN2 یا VDD یا VCC به +5 ولت متصل میشود.
  • PIN3 یا VEE به GND متصل میشود.
  • PIN4 یا RS به PIN0 آردوینو UNO متصل میشود.
  • PIN5 یا RW به GND متصل میشود.
  • PIN6 یا E  به PIN1 آردوینو UNO متصل میشود.
  • PIN11 یا D4 به PIN8 آردوینو UNO
  • PIN12 یا D5 به PIN9 آردوینو UNO
  • PIN13 یا D6 به PIN10 آردوینو UNO
  • PIN14 یا D7 به PIN11 آردوینو UNO

نرم افزار Arduino به کاربر اجازه میدهد تا از LCD در حالت 4 بیتی استفاده کند. این نوع ارتباطات کاربر را قادر میسازد که استفاده از پین های روی برد آردوینو را کاهش دهد. به طور پیشفرض آردوینو تنظیم شده است تا در حالت 4 بیتی ارتباط برقرار کند.

پس با توجه به مطالب بالا نتیجه میگیریم که ما 6 پین ال سی دی کاراکتری را به میکروکنترلر متصل میکنیم. در این 6 پین ، 4 پین دیتا و 2 پین کنترل هستند.

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

در ابتدای کد ما کتابخانه LiquidCrystal.h را فراخوانی میکنیم. این کتابخانه اعمال مربوط به ال سی دی کاراکتری را برای ما انجام میدهد. در خط بعدی کد ما پین های ال سی دی کاراکتری را معرفی میکنیم.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
#include <LiquidCrystal.h>
LiquidCrystal lcd(0, 1, 8, 9, 10, 11); 
//ENABLE PIN,D4 PIN,D5 PIN, D6 PIN, D7 PIN

سپس به تابع Void Setup میرسیم. در این تابع کار سختی نداریم و فقط باید تعداد ردیف ها و ستون های LCD را معرفی کنیم.

void setup()
{
lcd.begin(16, 2);
}

آموزش ایجاد متن متحرک در ال سی دی کاراکتری

حالا میرسیم به قسمت اصلی آموزش ، یعنی نمایش متن ثابت و حرکت دادن آن. همه این کارها را در تابع void loop اعمال میکنیم. توضیحات خط به خط کد را در باکس زیر بخوانید. میتوانید متن ها را تغییر بدهید یا متن های دیگری اضافه کنید.

void loop()
{
lcd.print("Irenx");//نمایش نام Irenx
lcd.setCursor(0, 1); // نمایش متن در ستون دوم
lcd.print("www.irenx.ir");//نمایش www.irenx.ir
delay(750);//به مدت 750 میلی ثانیه
lcd.scrollDisplayLeft();// دستور شیفت (متحرک) شدن متن روی نمایشگر 
lcd.setCursor(0, 0);// تنظیم مکان متن
} 

در صورت حذف کد زیر ، افکت متن متحرک حذف میشود و متن به صورت ثابت نمایش داده میشود.

lcd.scrollDisplayLeft();// دستور شیفت (متحرک) شدن متن روی نمایشگر 

کد کامل پروژه

#include <LiquidCrystal.h>
LiquidCrystal lcd(0, 1, 8, 9, 10, 11);
void setup()
{
lcd.begin(16, 2);
}
void loop()
{
lcd.print("irenx");
lcd.setCursor(0, 1);
lcd.print("www.irenx.ir");
delay(750);
lcd.scrollDisplayLeft();
lcd.setCursor(0, 0);
}

قسمت بعد : نحوه استفاده از شیفت رجیستر در آردوینو (#7)

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

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

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

6 نظر

  1. سلام
    بخشید خازن 100μf
    کجای این پروژست چون تو تصویر مقاومت میبینیم و آیا نیاز به پتانسیومتر 10 کیلو نیست ؟

    1. سلام جناب. بله نیازی به خازن نیست. از پتانسیومتر میتونید استفاده کنید تا کنتراست متن رو تنظیم کنید.

  2. با سلام من کد کامل پروژتون رو اپلود کردم ولی چیزی نشون نمیده

    1. سلام جناب. کد صحیح هست اتصالاتتون رو بررسی بفرمایید.

  3. سلام خسته نباشیدازاینکه این مطالب را برای مایه اشتراک می‌گذارید تشکر میکنم مطالب خیلی آموزنده وباحاله من خودم تابااین برنامه آشنا شدم خیلی پیشرفت کردم بازم ممنون

    1. سلام جناب. خوشحالم که از سایت راضی هستید.

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

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