آنچه در این مقاله میخوانید :
Toggleدر این پروژه، یک راه اندازی LCD 16X2 با STM32 را آموزش میدهیم. در ادامه این آموزش چگونگی وصل کردن LCD 16×۲ به مدار با استفاده از STM32، اطلاعات پایه ای در مورد ماژول LCD و یک برنامه ساده برای نمایش نوشته روی LCD توضیح داده شده است.
معرفی
در هر پروژهای که از ماژولهای مختلف در آن استفاده میشود، وجود ماژول های LCD بسیار مهم است زیرا کاربر راحتتر میتواند با سیستم تعامل کند. از ماژولهای LCD در دستگاههای اندازهگیری، ایستگاههای هواشناسی و سیستم های اندازگیری ضربان قلب استفاده میشود.
وقتی حرف از صفحاتنمایش حرف میزنیم، منظورمان فقط صفحههای نمایش رنگی و گرافیکی نیست. LCD های کاراکتری برای نشان دادن اطلاعات مفیدی چون اطلاعات سنسورها، میزان ADCT، وضعیت رله و … کافی هستند.
حروف استفاده شده در این آموزش به صورت رندوم انتخاب شده اند تا ما فقط بتوانیم نتیجه نهایی را ببینیم. در پروژه های آینده خود که می خواهید از ماژول های سنسوری استفاده کنید، دانستن چگونگی راه اندازی LCD 16X2 با STM32 میتواند به شما کمک کند.
📣حتما ببینید : خرید ال سی دی کاراکتری ۲*۱۶
نکاتی در مورد استفاده از LCD 16×۲
تصویر زیر یک LCD کاراکتری را نشان میدهد که قادر است حروف و عددها را نمایش میدهد. ۱۶×۲ به این معنا است که این LCD 16 ستون و ۲ ردیف دارد. هر ستون در هر ردیف میتواند یک کاراکتر را نشان دهد. بنابراین یک LCd کاراکتری ۱۶×۲ می تواند ۳۲ کاراکتر را نشان دهد.
اندازه های دیگری چون ۸×۱، ۸×۲، ۱۶×۱، ۱۶×۲، ۲۰×۴ و .. وجود دارد اما پر مصرفترین LCDها دارای اندازه ۱۶×۲ و ۲۰×۴ هستند.
هر بلاکی که در LCD کاراکتری وجود دارد ۸×۵ پیکسل است (۵ پیکسل عمودی و ۸ پیکسل افقی). برای به نمایش درآوردن کاراکترها کافی است یک ماتریکس برای نقاطی که باید روشن شوند بسازید. معمولا از IC کنترلی HD44780 ساخت هیتاچی برای کنترل LCD استفاده میشود.
LCD های کاراکتری ۱۶×۲، دارای ۱۶ پین هستند که در جدول زیر توضیحات کوتاهی از آنها داده شده است.
شماره پین | نام پین | توضیح |
۱ | VSS | GND |
۲ | VDD | +۵V |
۳ | VO | غلظت رنگ LCD |
۴ | RS | انتخاب رجیستری |
۵ | R/W | نوشتن/ خواندن عملیات |
۶ | EN | فعالسازی (برای R/W باید روی HIGH باشد) |
۷-۱۴ | D0-D7 | پینهای دیتا |
۱۵ | LED+ (A) | نور پسزمینه مثبت LED (+5V) |
۱۶ | LED- (K) | نور پسزمینه منفی (GND) |
راه اندازی LCD 16X2 با STM32F103C8T6
همانطور که قبلا اشاره کردیم، در این آموزش طریقه راه اندازی LCD 16X2 با STM32 را آموزش میدهیم. ما از آردوینو IDE برای نوشتن کد و بارگذاری آن در MCU (با استفاده از مبدل USB به سریال) استفاده خواهیم کرد.
ماژول LCD را به صورت ۴-bit کانفیگور میکنیم. در این صورت فقط ۴ پین دیتا برای انتقال اطلاعات و نمایش آنها استفاده میشود.
📣حتما ببینید : خرید LCD کاراکتری
نمودار مدار
عکس فریتزینگ زیر، نمودار مداری که برای راه اندازی LCD 16X2 با STM32 لازم دارید را نشان میدهد.
ابزار مورد نیاز
- برد STM32F103C8T6 MCU آبی
- تبدیلکننده USBبه سریال (مانند FTDI Programmer)
- ماژول LCD کاراکتری ۱۶×۲
- سیم
اتصالات
در این بخش در مورد اتصال قطعات مختلف حرف میزنیم. بخشهای TX و RX تبدیل کننده FTDI Programmer را باید به پین های A9 و A10 برد STM32 وصل کنید.
برای ماژول LCD، پین های ۱ و ۲ (VSS و VDD) به پین های GND و +۵V وصل میشوند. به طور مشابه، پینهای ۱۵ و ۱۶ (LED+ و LED-) به +۵V و GND وصل میشوند.
برای تنظیم غلظت رنگ نمایشگر LCD، پین VO به ترمینال مرکزی ۱۰KΩ POT است. دو ترمینال دیگر POT به +۵V و GND وصل هستند. پینهای کنترلی RS، RW و EN به ترتیب به B11،GND و B10 وصل میشوند.
با توجه به این که میخواهیم کانفیگور را به شکل ۴-bit انجام دهیم، فقط پین های D4 تا D7 را لازم داریم. این پین ها را به ترتیب به B0، A7، A6 و A5 وصل کنید. پین های دیتای D0 تا D3 را میتواند بدون استفاده رها کنید.
برنامه نویسی برای راه اندازی LCD 16X2 با STM32
برای برنامهنویسی این پروژه در ابتدا باید کارهای زیر را انجام دهید
- نصب پکیج های مخصوص برد STM32 بر IDE آردوینو
- انتخاب برد STM32 مناسب با کانفیگور مناسب
- دانلود نرمافزاری که قادر به آپلود کد از IDE آردوینو به برد STM32 باشد
- استفاده از پینهای انتخابی BOOt برای جا به جا شدن میان دو حالت «Programming Mode» و «Operational Mode»
نکته: با تغییر دادن محل پین BOOT0 بین HIGH و LOW میتوانید بین حالتهای «Programming Mode» و «Operational Mode» سوئیچ کنید. اگر برد شما در حین سوئیچ کردن بین این دو حالت روشن باشد، باید بعد از هر سوئیچ برد را ریست کنید.
برای این که برد STM32 را در حالت «Programming Mode» قرار دهید باید پین BOOT0را روی HIGH قرار دهید. برنامه ای که در ادامه نوشته شده یک برنامه ساده برای نمایش متن با استفاده از IDE آردوینو است.
کد راه اندازی LCD 16X2 با STM32
*/
LCD VSS pin to GND *
LCD VDD pin to 5V *
LCD VO pin to POT *
LCD RS pin to digital pin PB11 *
LCD RW pin to GND *
LCD EN pin to digital pin PB10 *
LCD D0 to D3 pins not used *
LCD D4 pin to digital pin PB0 *
LCD D5 pin to digital pin PA7 *
LCD D6 pin to digital pin PA6 *
LCD D7 pin to digital pin PA5 *
LCD BL+ pin to 5V *
LCD BL- pin to GND *
/*
<include <LiquidCrystal.h#
; const int rs = PB11, en = PB10, d4 = PB0, d5 = PA7, d6 = PA6, d7 = PA5
; LiquidCrystal lcd(rs, en, d4, d5, d6, d7)
} ()void setup
; lcd.begin(16, 2)
; lcd.setCursor(0, 0)
; lcd.print(“Interfacing LCD”)
; lcd.setCursor(0, 1)
; lcd.print(“Electronics Hub”)
; delay(2000)
; () lcd.clear
{
} ()void loop
; lcd.setCursor(0, 0)
; lcd.print(“STM32–Blue Pill”)
; lcd.setCursor(0, 1)
; lcd.print(“STM32F103C8T6MCU”)
{
بعد از کامپایل کردن کد بالا، LCD متن موجود در کد را نمایش میدهد. با قرار دادن پین BOOT0 روی LOW و ریست کردن برد، به حالت «operational mode» باز میگردید.
سخن آخر
در این مطلب با هم طریقه راه اندازی LCD 16X2 با STM32 را یاد گرفتیم. وقتی شما با راهاندازی LCD به روشهای مختلف را بلد باشید، میتوانید از این ماژول در پروژههای مختلف استفاده کنید.
منبع: electronicshub
دیدگاهتان را بنویسید