در این آموزش، مراحل راهاندازی نمایشگر LCD رزبریپای ۲*۱۶ را با هم مرور میکنیم.
نمایشگر یک روش جذاب برای نمایش اطلاعات از رزبریپای بدون احتیاج به هیچ هزینه یا تنظیمات پیچیده است.
نمایشگر ۲*۱۶ برخلاف صفحه نمایش لمسی یا صفحه LCD معمولی، برای نمایش پیامها یا اطلاعات کوتاه مناسب است. در شرایطی که بخواهید دادههای ضروری را نشان دهید این نمایشگر بسیار کارآمد و مفید خواهد بود و به علاوه هیچ نیازی به هزینه گزاف و ابزار بزرگ ندارید.
این آموزش راهاندازی اولیه صفحه نمایش را مرور کرده و برای کسانی که هیچ آشنایی با مدارات ندارند بسیار مفید خواهد بود.
تجهیزات
تجهیزاتی که برای این آموزش LCD رزبریپای مورد نیاز است در زیر لیست شده است.
تجهیزات توصیه شده | تجهیزات اختیاری |
رزبری پای | جعبه رزبریپای |
کارت حافظه | صفحه کلید USB |
LCD 16*2 همراه با پین هدر | موس USB |
پتانسیومتر ۱۰ کیلواهم | کابل اترنت یا دانگل WiFi |
بردبورد (اگر از کیت breakout استفاده میکنید، یک عدد سایز بزرگ نیاز دارید) | |
سیم بردبوردی |
اگر مایل به دیدن ویدئو دربارهی نحوهی راه اندازی نمایشگر ۲*۱۶ با رزبریپای هستید، ویدئوی زیر را تماشا کنید. این ویدئو مراحل نوشته شده در این آموزش را مرور میکند و نحوهی سیمکشی همه چیز را به صورت بصری نشان میدهد.
مدار رزبریپای LCD 16*2 رزبری پای
ممکن است در نگاه اول این مدار مقداری دشوار به نظر برسد، اما اساساً چیزی جز برقرای صحیح اتصال سیمها به صفحه نمایش و صفحه نیست.
پتانسیومتر که برای این مدار ضروری است، جهت کنترل روشنایی صفحه به کار میرود. اگر پتانسیومتر ندارید، میتوانید به جای آن از مقاومت استفاده کنید. اگر از مقاومت استفاده میکنید، از یک مقاومت بین ۵ کیلو تا ۱۰ کیلو استفاده کنید. برای رسیدن به مقدار مطلوب شاید نیاز باشد که چند مقاومت را امتحان کنید.
یک نمایشگر LCD 16*2 معمولی دارای ۱۶ پین است، اما نیازی به استفاده از همه آنها نیست. در این مدار، تنها نیاز به استفاده از چهار گذرگاه داده داریم زیرا میخواهیم از آن در حالت ۴ بیت استفاده کنیم.
بیشتر نمایشگرهای ۱۶ پین از کنترلر HD44780 استفاده میکنند. این کنترلر نمایشگر را بسیار کاربردی کرده و برای استفاده در کنار طیف وسیعی از دستگاهها مناسب میکند. برای مثال، ما در گذشته، این نمایشگر را برای استفاده با آردوینو به کار برده بودیم.
آرایش معمول پینهای برد LCD در شکل زیر آورده شده است.
مونتاژ LCD 16*2
میدانید که بیشتر نمایشگرهای ۲*۱۶ بدون هدر پینهای لحیم شده عرضه میشوند.
این بدان معناست که قبل از استفاده باید چند هدر پین روی آن لحیم کنید. بدون استفاده از هدر پینها ایجاد یک اتصال خوب بسیار دشوار است. لحیم کاری یک کار بسیار آسان است و برای کسی که تجربه قبلی داشته تنها چند دقیقه زمان میبرد.
- در ابتدا، هدر پین را بشکنید، به گونهای که یک ردیف ۱۶ تایی داشته باشید.
- هدر پینها را درون سوراخهای نمایشگر قرار دهید. سمت کوتاهتر هدر پینها باید رو به بالا باشد.
- حال با استفاده از هویه داغ و مقداری لحیم، به آرامی هر پین را لحیم کنید.
- برد شما آماده استفاده است.
برقراری اتصالات
اتصال نمایشگر LCD 16*2 به رزبریپای کار بسیار سادهای است. تنها چندین سیم برای اتصال وجود دارد، و هیچگونه پیچیدگی خاصی وجود ندارد.
تنها یک مورد وجود دارد که باید پیش از شروع به برقراری مدار به آن توجه کرد. از آنجایی که ما نمیخواهیم فیدبک ۵ ولت به رزبریپای داشته باشیم (پینهای ورودی و خروجی رزبریپای ۳.۳ ولت هستند)، باید پینهای خواندن/نوشتن LCD را زمین کنیم.
در مراحل زیر عددگذاری فیزیکی/منطقی پینها درون براکتها هستند و درغیر این صورت عددگذاری GPIO میباشند.
- یک سیم از ۵ ولت (پین ۲) به ریل مثبت بردبورد وصل کنید.
- یک سیم از زمین (پین ۶) به ریل زمین بردبورد وصل کنید.
- نمایشگر ۲*۱۶ را روی بردبورد نصب کنید.
- پتانسیومتر را روی بردبورد نصب کنید.
- پینهای مثبت و زمین را به ریلهای مربوطه روی بردبورد وصل کنید.
با شروع از پین 1 LCD، مراحل زیر را دنبال کرده و یا از دیاگرام زیر استفاده کنید. پین ۱ نمایشگر نزدیکترین پین به لبهی بورد میباشد.
- پین ۱ (زمین) به ریل زمین وصل میشود.
- پین ۲ (Vcc/5V) به ریل مثبت وصل میشود.
- پین ۳ (V0) به سیم وسط پتانسیومتر وصل میشود.
- پین ۴ (RS) به GPIO25 (پین ۲۲) وصل میشود.
- پین ۵ (RW) به ریل زمین وصل میشود.
- پین ۶ (EN) به GPIO24 (پین ۱۸) وصل میگردد.
- پین ۱۱ (D4) به GPIO23 (پین ۱۶) وصل میشود.
- پین ۱۲ (D5) به GPIO17 (پین ۱۱) وصل میشود.
- پین ۱۳ (D6) به GPIO18 (پین ۱۲) وصل میشود.
- پین ۱۴ (D7) به GPIO22 (پین ۱۵) وصل میشود.
- پین ۱۵ (+ LED) به ریل مثبت وصل میشود.
- پین ۱۶ (- LED) به ریل زمین وصل میشود.
این تمام کاری بود که باید انجام میدادید و صفحه نمایش اکنون باید بدون هیچ مشکلی آماده روشن شدن و ارتباط با رزبریپای باشد. اگر هرگونه مشکلی در اتصال صفحه نمایش دارید، به دیاگرام زیر رجوع کنید.
کد برقراری ارتباط با نمایشگر ۲*۱۶
در آخرین نسخه از رزبین، همه پکیجها برای برقراری ارتباط با دستگاههای GPIO از پیش نصب شده است. همچنین باید بررسی کنید که پایتون نیز نصب شده باشد.
اگر از یک نسخه قدیمیتر رزبین استفاده میکنید، آنگاه باید بخش تنظیمات رزبریپای برای استفاده از GPIO را ملاحظه کنید.
داشتن مقداری دانش اولیه درباره پایتون کار را آسانتر خواهد کرد، با این وجود، آموزش فعلی بدون داشتن هیچ تجربه قبلی از پایتون نیز مناسب خواهد بود.
کتابخانههای مورد نیاز
در این مثال، قصد داریم کتابخانهای از Adafruit را نصب و استفاده کنیم. این کتابخانه برای بوردهای LCD Adafruit طراحی شده است اما با دیگر برندها نیز کار خواهد کرد. اگر برد نمایشگر شما از کنترلر HD44780 استفاده میکند، آنگاه برای کار با آن هیچگونه مشکلی وجود نخواهد داشت.
اول از همه، پوشه git مورد نیاز را با اجرای دستور زیر به رزبریپای کلون (clone) کنید.
git clone https://github.com/pimylifeup/Adafruit_Python_CharLCD.git
سپس به پوشهای که هم اکنون کلون کردیم رجوع کرده و فایل نصب را اجرا کنید.
cd ./Adafruit_Python_CharLCD sudo python setup.py install
پس از پایان نصب، باید بتوانید کتابخانه Adafruit را در هر اسکریپت پایتون فراخوانی کنید. برای ضمیمه کردن کتابخانه، خط زیر را به بالای اسکریپت پایتون اضافه کنید. آنگاه میتوانید بورد را مقداردهی کرده و اعمال مناسب را روی آن انجام دهید.
import Adafruit_CharLCD as LCD
برقراری ارتباط با نمایشگر
ارتباط رزبریپای با نمایشگر LCD 16*2، به خاطر وجود کتابخانه Adafruit بسیار آسان است. این کتابخانه نوشتن اسکریپتهای پایتون برای راهاندازی و تغییر نمایشگر را بسیار آسان کرده است.
در پوشهای که پیش از این دانلود کردیم چند مثال از نحوهی استفاده از کتابخانه LCD وجود دارد. بسیار مهم است که قبل از اجرای هر کدام از این مثالها، متغیرهای پینها در بالای فایل را آپدیت کنید. اگر مدار ما را دنبال کرده باشید مقادیر صحیح به صورت زیر خواهد بود.
lcd_rs = 25 lcd_en = 24 lcd_d4 = 23 lcd_d5 = 17 lcd_d6 = 18 lcd_d7 = 22 lcd_backlight = 4 lcd_columns = 16 lcd_rows = 2
اگر میخواهید یکی از مثالها را چک کنید، فایل را با دستور زیر به راحتی باز کنید.
cd ~/Adafruit_Python_CharLCD/examples/
sudo nano char_lcd.py
در اینجا پیکربندی پینها رابه لیست بالا تغییر دهید. پس از انجام این کار، با فشردن کلیدهای CTRL+x، و پس از آن Y از برنامه خارج شوید.
حال برای اجرای کد، دستور python را به همراه نام فایل (همراه با پسوند) وارد کنید.
python char_lcd.py
توابع و کد پایتون
در اینجا برخی از مهمترین متدهایی که برای ارتباط با نمایشگر از طریق پایتون به آنها نیاز دارید را مرور میکنیم.
برای مقداردهی اولیه پینها، باید کلاس زیر را فراخوانی کنید. مطمئن شوید که همه متغیرهایی که به عنوان پارامتر ارسال میکنید، قبل از فراخوانی کلاس تعریف شده باشند.
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)
پس از انجام این کار، میتوانید نمایشگر را به نحوی که نیاز دارید تغییر دهید. مرور سریعی بر متدهایی که برای استفاده از کتابخانه Adafruit وجود دارد انجام خواهیم داد.
()home: این متد مکاننما (cursor) را به home، که اولین ستون از خط اول است منتقل میکند.
()clear: این متد صفحه نمایش را پاک میکند و آن را کاملاً خالی میکند.
set_cursor(col, row): این متد مکاننما را به نقطهی مشخص شده منتقل میکند. موقعیت مکاننما را با ارسال ستون و سطر به صورت پارامتر مشخص میکند. مثال set_cursor(1,4)
enable_dispaly(enable): این متد نمایشگر را فعال یا غیرفعال میکند. برای فعال کردن آن را با true ست کنید.
show_cursor(show): این متد مکاننما را مخفی یا نمایان میکند. برای نمایش مکاننما آن را با true ست کنید.
blink(blink): مکاننمای چشمکزن را روشن یا خاموش میکند. مجدداً برای نمایش مکاننمای چشمکزن آن را با true ست کنید.
()move_left یا ()move_right: موقعیت مکاننما را یک عدد به راست یا چپ جابهجا میکند.
()set_right_to_left یا ()set_left_or_right: جهت مکاننما را به صورت چپ به راست یا راست به چپ تغییر میدهد.
autoscroll(autoscroll): اگر autoscroll به true ست شده باشد، متن در سمت راست مکاننما ترازبندی میشود. اگر به false ست شده باشد، متن در سمت چپ مکاننما ترازبندی میشود.
message(text): متن را به سادگی روی نمایشگر نشان میدهد. میتوان از کارکتر خط جدید (n\) نیز در پیامهایتان استفاده کنید.
sudo nano ~/Adafruit_Python_CharLCD/Adafruit_CharLCD/Ardafruit_CharLCD.py
چند متد دیگر نیز موجود است، اما بعید است که نیاز به استفاده از آنها داشته باشید. اگر میخواهید همه متدهای موجود را مشاهده کنید، به راحتی فایل Ardafruit_CharLCD.py موجود در پوشه Adafruit_CharLCD را باز کنید، این پوشه را میتوان درون پوشه Adafruit_Python_CharLCD پیدا کرد.
در زیر اسکریپت سادهای موجود است که به کاربر اجازه میدهد متنی را نوشته و آن را روی صفحه نمایشگر نشان دهد.
#!/usr/bin/python # Example using a character LCD connected to a Raspberry Pi import time import Adafruit_CharLCD as LCD # Raspberry Pi pin setup lcd_rs = 25 lcd_en = 24 lcd_d4 = 23 lcd_d5 = 17 lcd_d6 = 18 lcd_d7 = 22 lcd_backlight = 2 # Define LCD column and row size for 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) lcd.message('Hello\nworld!') # Wait 5 seconds time.sleep(5.0) lcd.clear() text = raw_input("Type Something to be displayed: ") lcd.message(text) # Wait 5 seconds time.sleep(5.0) lcd.clear() lcd.message('Goodbye\nWorld!') time.sleep(5.0) lcd.clear()
اگر با اجرای اسکریپت پایتون هیچ چیزی در نمایشگر نشان داده نمیشود، احتمالا پینهای تعریف شده در اسکریپت شما اشتباه هستند. این پینها را مجددا چک کرده و اتصالات روی بردبورد را نیز دوباره بررسی کنید.
فعالیتهای بیشتر
این آموزش تنظیمات اولیه مناسب نمایشگر LCD 16*2 برای رزبریپای را معرفی کرد.
کارهای بسیار بیشتری وجود دارد که میتوانید با این نمایشگر جذاب انجام دهید. برای مثال، میتوان یک اسکریپت روی بوت را به گونهای اجرا کنید که مقادیر مشخصی مانند آدرس IP، زمان، دما و خیلی چیزهای بیشتر را نمایش دهد.
همچنین رنج وسیعی از سنسورهای جذاب وجود دارند که میتوانند در کنار این نمایشگر به کار روند. چیزی شبیه سنسور دمایی DS18B20 در کنار نمایشگر عالی کار میکند. میتوان نمایشگر را هر چند ثانیه همراه با مقدار جدید دما، به سادگی آپدیت کرد.
امیدوارم این آموزش در راهاندازی نمایشگر LCD 16*2 همراه با رزبریپای کمک کرده باشد. اگر متوجه اشتباهی شدید و موضوع یا هر چیز دیگری برای گفتن داشتید، لطفا در زیر کامنت بگذارید.
- منبع: ترجمه از سایت pimylifeup.com
اگر علاقمند هستین توصیه میکنیم آموزش پایتون برای مبتدیان: فراگیری برنامهنویسی پایتون با مثال را هم مطالعه کنید. همچنین نظر خودتان را در کامنتها ⇓ بنویسید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.