راه اندازی LCD کاراکتری 2*16 با STM32

تقریبا همه LCD های متنی دارای 16پایه هستند که 8 خط آن مربوط به فرستادن یا خواندن داده ها یا دستور عمل ها میباشد. پایه های دیگر نیز مربوط به خطوط کنترل و ولتاژهای تغذیه میباشند.LCD دارای ۱۶ پایه است که ۷  عدد از این پایه ها به میکروکنترلر متصل می‌شوند. برای هر پروژه ای، استفاده از صفحه نمایش ها تعامل با کاربر را افزایش میدهد. رایج ترین صفحه نمایش برای پروژه ها، ال سی دی کاراکتری 16*2 است.

متداول ترین ابعاد LCD های کاراکتری کدام اند ؟

ال سی دی های کاراکتری دارای ابعاد به نسبت بزرگی هستند. رایج ترین ابعادی که از این نوع ال سی دی در بازار ایران می توانید پیدا کنید، عبارتند از :

  •  ال سی دی کاراکتری ۲*۲۰
  •  ال سی دی کاراکتری ۲*۱۶
  •  ال سی دی کاراکتری ۴*۲۰
  •  ال سی دی کاراکتری ۲*۸

البته پر استفاده ترین نوع آن ها هم  ال سی دی کاراکتری ۲*۱۶ می باشد که در دو رنگ سبز و آبی موجود است.

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

LCD کاراکتری می تواند در دو حالت مختلف یعنی حالت 4 بیتی و 8 بیتی کار کند.که تفوت آن ها در کدنویسی آن میباشد. در حالت 4 بیتی ما داده ها را به نیبل ارسال می کنیم، ابتدا نیبل بالا و سپس نیبل پایین.

 

برای آن دسته از شما که نمی دانید نیبل چیست: نیبل یک گروه چهار بیتی است، بنابراین چهار بیت پایین (D0-D3) یک بایت، نیبل پایین را تشکیل می دهد در حالی که چهار بیت بالا (D4-D7) از یک بایت، نیبل بالاتر را تشکیل می دهد که ما اینگونه می توانیم داده های 8 بیتی ارسال کنیم.

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

LCD کاراکتری پس حالت 8 بیتی سریعتر و بی عیبتر از حالت 4 بیتی است. اما اشکال عمده ای که دارد این است که به 8 خط داده متصل به میکروکنترلر نیاز دارد. با این کار پایه  های ورودی و خروجی MCU ما همه مورد استفاده قرار می گیرند، بنابراین حالت 4 بیتی به طور گسترده ای مورد استفاده قرار می گیرد. برای تنظیم این حالت ها از هیچ پین کنترلی استفاده نمی شود و فقط روش برنامه نویسی تغییر می کند.و تعداد پایه کمتری را درگیر میکند

ماژول های LCD معمولاً در ماشین حساب ها و سایر دستگاه های الکترونیکی دیده می شوند که برای عملکرد مناسب به برخی ارتباطات تصویری نیاز است. چاپگرها ، مایکروویوها ، پیجرها و ساعت های دیجیتال نمونه های دیگری هستند

 

در پروژه ها برای جلوگیری از شلوغی برنامه و همچنین استفاده آسان از بخشی از برنامه،  در برنامه های دیگر معمولا آنها را بصورت کتابخانه های مجزا می نویسند و سپس در یک فایل آنها را فراخوانی می کنند برای راه اندازی ال سی نیز از یک کتابخانه استفاده می شود.

نوع دیگری از ال سی دی کاراکتری با درایور راه انداز I2C ارائه شده است. ماژول راه انداز LCDبا آی سی PCF8574 و رابط I2C مناسب برای مدیریت ال سی دی‌های کاراکتری است. همچنین به دلیل استفاده از تنها ۴ پایه باعث کاهش حجم استفاده از  سیم در طی پروژه شده است. راه انداز LCD کاراکتری با رابط I2C دارای ۴ پایه SCL , SDA, VC , GND است. این درایور به صورت جداگانه نیز در بازار موجود است. میتوانید این درایور را با قیمت بسیار کمی از بازار تهیه کنید و به LCD کاراکتری که موجود دارید اضافه کنید.

برنامه نویسی ال سی دی کاراکتری در برد STM32

۷ پایه از میکروکنترلر را بعنوان خروجی تعریف می‌کنیم. در انتخاب پایه ها بایستی توجه داشته باشید که پایه های کنترل کننده بایستی همگی بر روی یک پورت قرار گیرند. همچنین پایه های دیتا نیز بایستی بر روی یک پورت قرار گرفته و شماره پایه های آنها بصورت پشت سر هم باشد. در این آموزش پایه های LCD بصورت زیر تعریف شده است.

 

پس از نصب فایل های STM32 در Arduino IDE ، می توانیم برنامه نویسی را شروع کنیم. این برنامه بسیار شبیه به برنامه نویسی آردوینو است ، تنها چیزی که تغییر خواهد کرد نام های پین است زیرا نام پایه ها برای STM32 و آردوینو متفاوت هستند. کد کامل در انتهای صفحه قرار گرفته است. در اینجا بعضی از قسمت های کد را بررسی میکنیم.که بتوان آن ها را راحت تر درک نمود.

 

 

مزایای قابل توجه استفاده از Arduino برای برنامه ریزی میکروکنترلر های ما این است که آردوینو تقریبا برای هر حسگر و ماژول مشهور کتابخانه های آماده دارد. که کار ما را راحت تر میکند. بنابراین در ابتدا ما کتابخانه کریستال مایع که مخصوص ال سی دی ها است را فراخوانی میکنیم.

#include <LiquidCrystal.h> // include the LCD library






در قسمت بعد

const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; 
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //معرفی پین های ال سی دی

void setup() {
  lcd.begin(16, 2);//استفاده از ال سی دی کاراکتری 16*2
  lcd.setCursor(0, 0); //ستون اول ردیف اول
  lcd.print("Interfacing LCD"); //نمایش متن دلخواه
  lcd.setCursor(0, 1); //ستون اول ردیف دوم
  lcd.print("-irenx"); //نمایش این متن
  delay(2000); //تاخیر به مدت 2 ثانیه
  lcd.clear(); //پاکسازی ال سی دی
}

 

در خط بعدی باید مشخص کنیم که کدام پین های ورودی و خروجی از STM32 ما وظیفه کنترل نمایشگر LCD را به عهده دارند. با خطوط زیر ما پین های ال سی دی را معرفی کرده و سپس کار بار آن را شروع میکنیم.

در مرحله بعد در تابع setup void () ذکر میکنیم که از چه نوع LCD استفاده میکنیم. از آنجا که ال سی دی مورد استفاده ما در اینجا 16*2 است با خط دوم کد زیر آن را معرفی میکنیم. سپس ما مختصات متن مورد نظر را تعیین کرده و تیتر دلخواه را روی ال سی دی نمایش میدهیم. سپس تعریف میکنیم که متن ها برای چند ثانیه نمایش داده شوند و در آخر با دستور lcd.clear ()؛ صفحه را پاک میکنیم.

سپس با پروگرامر STLINK  برد را پروگرام میکنیم

همچنین میتوانید برای آموزش آردوینو و خرید آردوینو به وب سایت امجد مارکت مراجعه نمایید

وب سایت رسمی آردوینو

 

 

همچنین برای چاپ pcb میتوانید از وب سایت امجد مارکت بازدید کنید
واردات قطعات الکترونیک خرید atmega128  خرید STM32F030F4P6 خرید LM2596


	
پشتیبان
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.