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

کتابخانه ی wirinPi به شما این امکان را میدهد که LCD های کارکتری محبوب ۱-۲و ۴ خط را که بر پایه ی Hitachi HD44780U طراحی شده اند را راه اندازی وکنترل کنید. از کتابخانه ی مربوط به LCD و توابع آن به سادگی میتوانید برای راه اندازی LCD در برنامه های خود استفاده کنید. اما سیم کشی LCD کاری سخت و مشکل است که باید بادقت انجام دهید تا مشکلی برای LCD و رزبری ایجاد نشود. زمانی این کار دشوارتر میشود که برای راه اندازی LCD ازمد ۸ بیت استفاده کنید در این حالت تعداد GPIO های مورد نیاز بدون احتساب تغذیه ، بک لایت و کنتراست به ۱۰GPIO در رزبری نیاز می باشد. برای کاهش تعداد سیم ها و کم کردن تعداد GPIO ها از LCD در مد ۴ بیت استفاده میکنیم. در این حالت تعداد GPOI های مورد استفاده به ۶ عدد میرسند.
این نوع LCD های کاراکتری با این حال که در محدوده ولتاژ ۵ ولت کار می کنند، توانای کار در ولتاژ ۳٫۳ تا ۵ ولت را دارند. این امر باعث میشود که GPIO های رزبری قدرت لازم برای راه اندازی LCD ونوشتن برروی آن را داشته باشند. مشکل زمانی ایجاد میشود که بخواهیم اطلاعاتی از LCD توسط رزبری بخوانیم.با توجه به اینکه ولتاژ خروجی LCD به ۵ ولت میرسد ممکن است به GPIO های رزبری آسیب برسد.به همین دلیل در کتابخانه ی مربوط به LCD تابعی برای خواند از LCD وجو ندارد(راستش نیازی هم به خواندن از روی LCD نیست). برای راه اندازی LCD این دو کتابخانه را به ابتدای پروژه اضافه کنید.

قبل از هر کاری ابتدا باید LCD خود را تنظیم کنید. برای تنظیم LCD از کتابخانه ی زیر استفاده میشود.
int lcdInit (int rows, int cols, int bits, int rs, int strb, int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ;
باید این تابع را قبل از استفاده از توابع دیگر LCD فراخوانی کرد.
در دو پارامتر اول، ورودی سطر و ستون های LCD مشخص میشوند. در ورودی سوم این تابع تعداد بیت ها قرار میگیرند، ۸یا ۴ بیت. rs, strb نشان دهنده ی شماره ی پین های RS وSTORB ال سی دی است و در انتها ورودی های d0 تا d7 نشان دهنده ی بیت های متصل به نمایش گر هستند. در حالتی که LCD به صورت ۴ بیتی تنظیم شده باشد تنها از ۴ بیت اول استفاده میشود و بقیه ورودی ها صفر خواهند شد.
خروجی این تابع که با نام ‘ handle’ شناخته میشود در تمام توابع دیگر استفاده میشود. اگر خروجی این تابع منفی باشد نشان دهنده ی خطا می باشد. معمولا خطا در این حالت ناشی از پارامتر های غلط است.
نکته ی مهم: قبل از استفاده از این تابع باید نوع شماره گذازی GPIO را با تابع wiringPiSetup() تغییر دهید.

توابع:

تابع اول نشان گر LCD را به ابتدای خانه ی اول میبرد.
تابع دوم تمام نوشته های روی LCD را پاک میکند.

این سه تابع به ترتیب LCD را خاموش یا روشن، نشان گر را خاموش یا روشن وحالت چشمک زنی نشان گر را خاموش یا روشن میکنند. در این سه تابع اگر مقدار state صفر باشد به منزله ی خاموش و اگر یک باشد به منزله ی روشن است.

این تابع مکان نشان گر را به محلx,yمیبرد.

برای کامپایل برنامه هایی که در آن از کتابخانه ی LCD استفاده میشود، باید از کامند لاین استفاده کنیم، بطوریکه ابتدا برنامه را در Geany مینویسم و برای کامپایل کردن از دستورات ترمینال استفاده میکنیم.

ابتدا به دایراکتوری مربوط به پروژه رفته، برای مثال پروژه ای نوشته شده در رزبری پای من در دایرکتوری زیر است.

حالا برای کامپایل برنامه دستور زیر را در ترمینال وارد میکنیم.

example نام پروژه نوشته شده است. میتواند هر نام دلخواه دیگری باشد.
سپس با دستور زیر برنامه را اجرا کنید.

در اینجا یک برنامه ی ساده برای نمایش کلمه Hello, world! در دو حالت ۸ بیتی و ۴ بیتی آورده شده .در این مثال از دو پتانسومتر برای تنظیم کنتراس و میزان نور پشت زمینه LCD استفاده شده است.

نویسنده: میثم سعیدی msimeysamsaeedi @ gmail.com

منبع: ECA.ir

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

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.