در این پست با نحوه راه اندازی و نوشتن متن روی LCD کاراکتری با اردوینو اشنا می شوید. از LCD های کاراکتری در پروژه های مختلف استفاده می شود که برای نمایش خروجی شامل متن, اعداد و مقادیر و … کاربرد دارد . در این پروژه از برد Arduino Uno و lcd کاراکتری ۱۶*۲ استفاده شده است, برای اشنایی با اردوینو یونو اینجا کلیک کنید.
قبلا در پست ” نوشتن متن روی LCD کاراکتری با avr ” در مورد این نوع lcd توضیح دادم که اگر با lcd کاراکتری و پین های ان اشنا نیستید می تونید این پست را مطالعه کنید .

شماتیک پروژه :
در زیر شماتیک این پروژه را مشاهده می کنید که دارای قطعات کمی می باشد و بجز برد اردوینو و lcd از یک پتانسیومتر هم استفاده شده که برای تنظیم کنتراست lcd می باشد و در صورتی که پتانسیومتر نداشتید می تونید پین 3 ال سی دی را به منفی تغذیه متصل کنید

توجه کنید دلیل اینکه ما lcd را به پین های 7 تا 13 اردوینو متصل کرده ایم, بخاطر این است که در برنامه که در ادامه قرار داده ام ما خودمان مشخص میکنیم که lcd به کدام پین های اردوینو متصل باشد

برنامه اردوینو :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> /* lcd معرفي کتابخانه */ /* متصل شود LCD تابع زیر مشخص می کند که کدام پین های اردوینو به */ LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); void setup() { lcd.begin(16, 2); /*(LCD بررسي اتصال) LCD پيکره بندي */ } void loop() { lcd.clear(); /* LCD پاک کردن */ lcd.setCursor(2, 0); /* رفتن به ستون 2 و سطر 0 */ lcd.print("WWW.EMIC.IR"); /* LCD روي WWW.EMIC.IR نوشتن */ delay(2000); /* ايجاد تاخير به مدت 2 ثانيه */ lcd.clear(); /* LCD پاک کردن */ lcd.setCursor(0, 0); /* رفتن به ستون 0 و سطر 0 */ lcd.print("Electronic and"); /* LCD روي Electronic and نوشتن */ lcd.setCursor(0, 1); /* رفتن به ستون 0 و سطر 1 */ lcd.print("Microcontroller"); /* LCD روي Microcontroller نوشتن */ delay(3000); /* ايجاد تاخير به مدت 3 ثانيه */ } |
در ادامه با دستورات مربوط به کتابخانه lcd کاراکتری که در برنامه استفاده شده است اشنا می شوید :
برای استفاده از کتابخانه lcd کاراکتری ابتدا باید ان را در ابتدای برنامه فراخوانی کنید که در خط 2 برنامه این کار انجام شده است
تابع LiquidCrystal lcd :
تابع LiquidCrystal lcd همان تابعی است که مشخص می کند lcd به کدام پین های برد اردوینو متصل شود. با توجه به اینکه lcd را در چه مدی راه اندازی می کنیم (4 بیتی یا 8 بیتی) باید این تابع را مقدار دهی کنیم که به صورت زیر انجام می شود :
|
1 2 |
LiquidCrystal lcd(rs, rw, enable, d4, d5, d6, d7); : مد 4 بیتی LiquidCrystal lcd(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); : مد 8 بیتی |
توجه کنید که بجای rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7 باید شماره پین مورد نظر خود را بنویسید, در خط چهار برنامه از این تابع در مد 4 بیتی استفاده شده است
نکته : می توانید برای این که پین کمتری از اردوینو اشغال شود rw را از دستور بالا حذف کنید و خودتون پین 5 ال سی دی را به منفی تغذیه متصل کنید . زمانی به پین rw نیاز پیدا می کنیم که بخواهیم از روی lcd مقداری را بخوانیم و در حالت عادی استفاده ما که برای نمایش کاراکتر و مقادیر استفاده می کنیم نیازی نیست که حتما به اردوینو متصل کنیم (به منفی وصل می کنیم). طبق توضیحات گفته شده دستور LiquidCrystal lcd برای حالت بدون rw به صورت زیر است
|
1 2 |
LiquidCrystal lcd(rs, enable, d4, d5, d6, d7); : rs مد 4 بیتی بدون LiquidCrystal lcd(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7); : rs مد 8 بیتی بدون |
تابع lcd.begin :
با استفاده از تابع lcd.begin اندازه lcd خود را مشخص می کنیم, در خط 8 برنامه از این تابع استفاده شده است
تابع lcd.clear :
این تابع lcd را پاک می کند, در خط 13 و 18 برنامه استفاده شده
تابع lcd.setCursor :
این تابع موقعیت مکان نما را در lcd مشخص می کند, زمانی که بخواهیم اطلاعات را در مکان خاصی از lcd نمایش دهیم از این تابع استفاده می کنیم. در خط 14 و 19 از این تابع استفاده شده
نکته : این تابع دو ورودی دارد که اولی ستون و دومی سطر مورد نظر ما را مشخص می کند.
تابع lcd.print :
این تابع رشته ای از کاراکتر را روی lcd نمایش می دهد
کتابخانه lcd کاراکتری در اردوینو (LiquidCrystal) توابع دیگری هم دارد که مهم ترین انها را در بالا توضیح دادم . در پروژه هایی که در اینده با lcd کاراکتری قرار خواهم داد, در صورتی که نیاز بود از تابع دیگری استفاده کنیم توضیح خواهم داد
کلیپ تست پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره …





سلام تمامی سورس کد های داخل فایل موجوده ؟؟؟؟؟؟
قراره به عنوان پروژه تحویل دانشگاه بدم
سلام آردو اینو فایل ino رو تولید میکنه ولی پروتیوس فایل هگز میخواد چیکار کنم پروتیوس فایلمو پیدا کنه؟