آموزش کامل راه اندازی ال سی دی کاراکتری با آردوینو
در آموزش راه اندازی ال سی دی کاراکتری با آردوینو یاد میگیریم که چگونه یک LCD (نمایش کریستال مایع) را به صفحه آردینو متصل کنیم. ال سیدیهایی مانند این بسیار محبوب هستند و به طور گسترده در پروژههای الکترونیکی مورد استفاده قرار میگیرند، زیرا برای نمایش اطلاعات مانند دادههای حسگر از پروژه شما مناسب هستند، و همچنین بسیار ارزان هستند.
قطعات لازم برای راه اندازی ال سی دی کاراکتری با شیلد آردوینو نانو:
- شیلد آردوینو نانو
- برد آردوینو نانو
- LCD کاراکتری 2*16
- ماژول I2c
- جامپر مادگی_مادگی 4 عدد
اتصال دهنده ال سی دی 2×16
16 عدد پین دارد و اولی از چپ به راست پین Ground است. پین دوم VCC است که ما پین ۵ ولت را به برد آردینو متصل میکنیم. سپس پین Vo است که میتوانیم یک پتانسیومتر را برای کنترل کنتراست صفحه نمایش به آن وصل کنیم.
سپس، پین RS یا پین انتخاب ثبات برای انتخاب اینکه آیا دستورها یا دادهها را به ال سی دی ارسال خواهیم کرد یا خیر، مورد استفاده قرار میگیرد. برای مثال اگر پین RS بر روی حالت پایین یا صفر ولت تنظیم شدهباشد، ما دستورها را به ال سی دی ارسال میکنیم مانند: مکاننما را بر روی یک مکان خاص تنظیم کنید، صفحه نمایش را پاک کنید، صفحه نمایش را خاموش کنید و غیره. و هنگامی که پین RS در حالت بالا یا ۵ ولت تنظیم میشود، ما دادهها یا کاراکترها را به ال سی دی میفرستیم. ما از این آموزش در آینده در سایر مقالات آموزش رباتیک استفاده خواهیم کرد.
سپس پین R / W میآید که حالت خواندن یا نوشتن روی ال سی دی را انتخاب میکند. در اینجا حالت نوشتن واضح است و برای نوشتن یا ارسال دستورها و دادهها به ال سی دی استفاده میشود. حالت خواندن توسط خود ال سی دی در هنگام اجرای برنامه استفاده میشود که ما نیازی به بحث در مورد آن در این آموزش نداریم.
سپس پین E است که نوشتن را به رجیسترها یا ۸ پین داده بعدی از D0 تا D7 قادر میسازد. بنابراین از طریق این پینها ما دادههای ۸ بیتی را هنگامی که در حال نوشتن به رجیسترها هستیم یا برای مثال اگر بخواهیم مورد آخر A را بر روی صفحه نمایش ببینیم، ۰۱۰۰۰۰۰۱ را به رجیسترها براساس جدول ASCII ارسال خواهیم کرد. دو پین آخر A و K، یا anode و cathode برای چراغ ال ای دی پشتی هستند.
بعد از همه اینها، لازم نیست زیاد نگران نحوه کار ال سی دی باشیم، چون کتابخانه کریستال مایع تقریبا از همه چیز مراقبت می کند. ما میتوانیم از کتابخانه در حالت ۴ یا ۸ بیتی استفاده کنیم.
ماژول i2c
نحوه ی ارتباط I2C خود نیاز به مقاله ای دیگر دارد اما کتابخانه های موجود کار ما را در این زمینه بسیار راحت میکنند با استفاده از این ماژول بسیاری از سیم ها واتصالات ما حذف میشوند و کار ما بسیار راحت تر میشود.
اتصال آردوینو نانو به شیلد
اتصالات LCD و ماژول i2c به شیلد آردوینو نانو
همانطور که مشاهده میکنید ال سی دی به همراه I2c توسط 4 عدد جامپر به شیلد آردوینو نانو متصل میشود.
فیلم آموزشی راه اندازی ال سی دی کاراکتری با شیلد آردوینو نانو
کدهای منبع ال سی دی و آردوینو
اولین کاری که باید برای راه اندازی ال سی دی کاراکتری با آردوینو انجام دهیم قرار دادن کتابخانه کریستال مایع است. ما میتوانیم این کار را انجام دهیم اما از آنجا که ما از ماژول I2C استفاده میکنیم کتابخانه ی کریستال مایع با رابط I2C را دانلود میکنیم LiquidCrystal_I2C.h همچنین نیاز به کتابخامه ی Wire.hنیز داریم.
در این حلقه ما برنامه اصلی خود را مینویسیم. ما با استفاده از تابع ()print بر روی ال سی دی چاپ میکنیم. تابع ()setCursor برای تنظیم مکانی که در آن متن بعدی نوشته شده به ال سی دی نمایش داده خواهد شد، استفاده میشود. تابع ()blink برای نمایش یک مکاننمای چشمکزن و تابع () noblink برای خاموشکردن استفاده میشود.
تابع ()cursor برای نمایش مکاننمای خط کشیدن زیر متن و تابع ()noCursor برای خاموشکردن استفاده میشود. با استفاده از تابع ()clear میتوانیم صفحه نمایش ال سی دی را پاک کنیم.
این کد منبع اولین مثال است:
در ویدیویی که برای شما عزیزان در بالا قرار داده شده است کد نویسی به صورتی انجام شده که صفحه ی نمایش یا ال سی دی ما عبارتی ک درون سریال مانیتور آردوینو تایپ میشود را به نمایش میگذارد. کدنویسی ها و انواع آنها و کاربردهای آنها خود نیاز به مقاله ای جداگانه دارند.
اما در این قسمت ما برای شما دو نوع کد را قرار داده ایم. توجه کنید که برای استفاده ی کد اول باید در قسمت” ()void loop “تمامی خط ها را با قراردادن ” */ ” در شروع بلوک (“پاراگراف _ دستورها”) و ” /* ” در پایان آنها از اجرا شدن این دستورها جلوگیری میکنیم یا به اصطلاح آنها را کامنت میکنیم. همچنین میتوانیم در ابتدای هر خط (تمامی خوطی که باید غیر فعال شوند) ” // ” قرار دهیم.
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display void setup() { lcd.init(); Serial.begin(9600); lcd.backlight(); //open the backlight lcd.print("Hello world"); } void loop() { /*lcd.clear(); lcd.print("tnx for watching"); lcd.setCursor(0,1); lcd.print("Chalik tutorial"); delay(3000); lcd.clear(); delay(1000);*/ }
کد دوم :
در واقع تمامی دستوراتی که در void loop نوشته شده هستند کد های ما برای استفاده ی کد دوم هستند. اما برای استفاده از آنها ابتدا باید دستور lcd.print(“Hello world”) را در قسمت void setup کامنت کرد یا به عبارتی مانع از انجام آن میشویم. این کار با استفاده از قرار دادن // در ابتدای این دستور انجام میدهیم مانند کد زیر:
//lcd.print("Hello world");
بعد از اینکه در قسمت void setup دستور را کامنت(comment) کردیم نوبت به آنکامنت(uncomment) کردن دستورهای قسمت void loop میرسد. گفتیم که عبارات طولانی را با */ در اول عبارت و /* در آخر آن کامنت میکنیم، حال با حذف این دو(/* و */) تمامی دستورات در قسمت void loop اجرا میشوند:
void loop() { lcd.clear(); lcd.print("tnx for watching"); lcd.setCursor(0,1); lcd.print("Chalik tutorial"); delay(3000); lcd.clear(); delay(1000); }
لطفا در زیر بخش نظرات هر سؤالی دارید بپرسید.