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

میخوایم این جلسه از آموزش آردوینو رو به آموزش راه اندازی LCD کاراکتری با آردوینو اختصاص بدیم . آموزش ها وتمرین هارو سعی میکنم شبیه به سایت اصلی آردوینو بدم ، امیدوارم مفید باشه.

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

فکر نکنم نیازی باشه از LCD کاراکتری و کاربردش بگم ، و کاملا مشخصه که برای نمایش یک سری اطلاعات که توی پروژمون لازمه از ال سی دی استفاده میکنیم. پس قبل از هر چیز ، باید اتصالات سخت افزاری رو در برناممون تعریف کنیم.این کار با تعریف LiquidCrystal صورت میگیره که در این متغیر میشه تعداد خطوط داده ی LCD رو مشخص کرد.شکل تعریف متغیر هم به شکل زیره:

تابع LiquidCrystal

پایه های lcd کاراکتری هم به شرح زیره :

 

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

میبینید که توی تابع های بالا پایه های rs و en(enable) و پایه های d0…d7 وجود دارن که هم نام با پایه های ال سی دی توی تصویره. مثلا برای بخش پایه ی rs اگر عدد 9 رو بنویسید، باید اون پایه از ال سی دی رو به پایه ی 9 دیجیتال وصل کنید.

حالا اینکه چرا 4 نوع میشه این اتصال رو تعریف کرد رو هم توضیح میدم! پایه های دیتا ی LCD کاراکتری که از d0 تا d7 تعریف شدن ، این قابلیت رو دارن که به شکل 4 بیتی یا 8 بیتی ارتباط برقرارکنن ، توی 4 بیتی ما از 4 پایه و در 8 بیتی از 8 پایه استفاده میکنیم ، راه اندازی 8 بیتی یک سری ویژگی های مضاف دیگه هم نسبت به 4 بیتی داره که الان مورد بحثمون نیست ، ولی مهم ترین دلیلی که باعث میشه توی پروژه های معمولی ازش استفاده نکنن ، اینکه که نیاز به 4 اتصال بیشتر بین LCD کاراکتری و آردوینو میشه و وقتی استفاده ای نداره برامون ما از همون 4 بیتی استفاده میکنیم و 4 پایه ی d0 تا d3 رو خالی میزاریم.

پایه ی rw رو هم میشه توی 4 بیتی تعریف نکرد و به زمین وصلش کرد.اینطوری یک پایه ی آردوینو هم کمتر اشغال میشه ، در اینصورت راحت ترین نوع تعریف که تعریف خط اول هست، اکثر مواقع کار مارو راه میندازه.

مثال: برای تصویر زیر متغیر LiquidCrystal رو تعریف کنید.

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

تابع lcd.begin

هر ال سی دی کاراکتری ، تعداد کاراکتر خاصی رو در سطر و در ستون خودش جای میده ، مثلا ال سی دی 16×2 دو سطر داره که در هر سطر فقط 16 کاراکتر میتونه نشون بده.
برای اینکه به آردوینو اندازه ی lcd رو اطلاع بدیم از تابع lcd.begin استفاده میکنیم که نحوه تعریفش به شرح زیره:

که 16 تعداد ستون هارو مشخص میکنه و 2 تعداد سطر ها.

تابع lcd.print

تابع print برای چاپ داده روی lcd کاراکتری در آردوینو کاربرد داره ، و به دوصورت زیر تعریف میشه:

 

 

در این تابع data، داده ای هست که قراره روی LCD کاراکتری نمایش داده بشه که انواع داده میتونه باشه ( long  ,int ,byte ,char و .. ) و محدودیت نداره.
و base مبنای عدد نمایش داده شده هستش که یکی از گزینه های BIN,DEC,OCT,HEX رو میگیره و میشه انتخاب کرد.
این تابع تعداد بایت های نوشته شده رو به صورت خروجی برمیگردونه که خواندنش اختیاریه.

مثال، نوشتن متن دلخواه روی lcd:

 

تابع lcd.clear

در راه اندازی LCD کاراکتری با آردوینو اگر بخوایم صفحه نمایش رو کاملا پاک کنیم ، تابع lcd.clear رو به کار میبریم. این تابع متغیر ورودی و خروجی نداره و با رسیدن خط برنامه به این خط ، صفحه کاملا پاک میشه.

تابع lcd.home

اگر بخوایم از اولین خونه سمت چپ و سطر اول شروع به نوشتن کنیم از تابع lcd.home رو استفاده میکنیم که ورودی و خروجی نداره و فقط مارو میبره به نقطه ای که گفتم.

تابع lcd.setCursor(col,row)

اگر بخوایم از نقطه خاصی توی lcd شروع کنیم به نوشتن از تابع lcd.setCursor(col,row) استفاده میکنیم.
مثلا اگر بخوایم از خط دوم و کاراکتر سوم شروع کنیم باید از ، lcd.setCursor(3,2)  استفاده کنیم.

تابع lcd.write

وقتی بخوایم تنها یک کاراکتر ، مثل یک حرف از حروف الفبا یا یک عدد رو به تنهایی نمایش بدیم از این تابع استفاده میکنیم.

مثال : برنامه ای بنویسید که هر کدام از حروف الفبای انگلیسی رو در کلیه ی خانه های صفحه نمایش نشون بده.

تابع lcd.cursor  و تابع lcd.noCursor

هر lcd رو وقتی روشن میکنیم. دارای یک مکان نما هستش، این مکان نمای یک خط چشمک زن هستش(مثلا توی نرم افزار Word این مکان نما یک خط عمودیِ اما در lcd این خط ، یک خط افقیه) مکان نما یا cursor جایی قرار میگیره که اصطلاحا نقطه بعدی نمایشه ، یعنی اگر چیزی رو پرینت کنیم از اونجا شرو میکنه به چاپ کردن روی lcd.

حالا بعضی وقتا میخوامی این مکان نما که حالت چشمک زن داره رو روی صفحه نمایش نشون ندیم ، باید از تابع lcd.noCursor استفاده کنیم. این تابع نمایش مکان نما رو از صفحه حذف میکنه و میشه با تابع lcd.cursor دوباره اونو به نمایش درآورد.

تابع  lcd.noDisplay و تابع lcd.display

این تابع  کلیه اطلاعات روی صفحه رو مخفی میکنه و نمایش نمیده ( پاک نمیشن و از بین نمیرن ) و با فراخوانی lcd.display این اطلاعات دوباره نمایش داده میشه.

تابع lcd.blink

همانند setcursor عمل میکنه با این تفاوت که توی setcursor فقط زیر حروف یک خط به شکل چشمک زن ایجاد میشد اما با این تابع تمامی خانه به شکل چشمک زن درمیاد.
اگر بخواهیم مکان نما از حالت چشمک زن خارج بشه از تابع lcd.noblink استفاده میکنیم.

تابع lcd.scrollDisplayRight

هر بار که این تابع صدا زده شه کل متن نوشته شده روی نمایشگر یک واحد به سمت راست انتقال داده میشن (یعنی ۱ واحد میرن سمت راست).

تابع lcd.scrollDisplayLeft

در راه اندازی LCD کاراکتری با آردوینو ، هر بار که این تابع صدا زده شه کل متن نوشته شده روی نمایشگر یک واحد به سمت چپ  انتقال داده میشن (یعنی ۱ واحد میرن سمت چپ).
lcd.leftToRight :برای  چپ به راست کردن نحوه نوشتن متن ها کاردبرد داره.

lcd.rightToLeft : برای  راست به چپ کردن نحوه نوشتن متن ها کاردبرد داره.

در حالت عادی وقتی متنی نوشته میشه از چپ به راست نوشته میشه ، اما میشه نحوه نوشتن متن رو تغییر بدین با این کد ها.

تابع LCD. Autoscroll و تابع LCD.noAutoscroll

درصورتی که متن از راست به چپ نوشته بشه و شما فراموش کرده باشین این قضیه رو و از scrollDisplayRight استفاده کنید چه اتفاقی میوفته؟ کاراکتر اولی که در سمت راست قرار داره یک خونه به سمت راست میره و از صفحه خارج میشه، در نتیجه متن به شکل ناقص در میاد ، میشه به جای استفاده از این کد ، از LCD.Autoscroll استفاده کرد. این تابع اگر جهت نوشته ها ، از چپ به راست باشه نوشته ها به را به چپ منتقل میکنه و اگر جهت نوشته ها از راست به چپ باشه ، جهت انتقال اون هم معکوس میشه.

اگر بخوایم این تابع رو غیر فعال کنیم میشه از LCD.noAutoscroll استفاده کرد.

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

دانلود مثال ها ، همراه با شبیه سازی

سوال یا توضیح بیشتر درباره ی راه اندازی LCD کاراکتری با آردوینو رو زیر همین مطلب با ما در میون بزارین. 🙂

 

حمیدرضا مودت

یک مهندس الکترونیک ، علاقه مند به یاد دادن و یاد گرفتن پیرامون دانش برق و الکترونیک

شما ممکن است این را هم بپسندید

4 پاسخ‌ها

  1. محمد گفت:

    سلام
    اگه ممکنه کمی هم درباره ی برنامه نویسی LCD های تاچ بالای 3.5 اینچ هم راهنمایی کنید یا توضیح بدهید ممنون میشم.( با اردینو mega2560 )

پاسخ دهید

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

از لوینیک حمایت کنید