آموزش راه اندازی ال سی دی کاراکتری با لانچ پد MSP430

محتویات
سلام. راه اندازی ال سی دی کاراکتری با لانچ پد MSP430 را آماده کردیم.
این سومین آموزش در سری آموزش های MSP430 است که در آن یاد می گیریم لانچ پد MSP430G2 را با استفاده از Energia IDE برنامه ریزی کنیم. در آموزش قبلی ما کنترل پین های ورودی و خروجی دیجیتال را روی برد MSP یاد گرفتیم. در این آموزش می آموزیم که چگونه یک LCD را با برد MSP430 راه اندازی کنیم تا بتوانیم اطلاعات مفیدی را به نمایش بگذاریم.
ال سی دی که در این پروژه از آن استفاده می کنیم رایج ترین نمایشگر ال سی دی یعنی LCD کاراکتری 16*2 است. راه اندازی این LCD با MSP430 ، به لطف کتابخانه موجود بسیار آسان است.
برای درک بیشتر کد پیشنهاد میشود فیلم زیر را مشاهده کنید.
شماتیک مدار اتصال LCD به لانچ پد MSP430
شماتیک مدار کامل برای راه اندازی یک صفحه نمایش 16*2 با MSP430G2 در زیر نشان داده شده است.
یک مشکل بزرگ در هنگام اتصال این دو ، ولتاژ عملکرد آنها است. صفحه نمایش ال سی دی دارای ولتاژ عملیاتی +5 ولت است در حالیکه MSP تنها با 3.6 ولت کار می کند. پین های داده از LCD IC HD44780U خوشبختانه دارای ولتاژ عملیاتی از 2.7 ولت تا 5.5 ولت هستند. بنابراین ما باید نگران Vdd (پین 2) ال سی دی باشیم، زیرا که پین های داده می توانند با 3.6 ولت کار کنند.
برد MSP430G2 به صورت پیش فرض پین +5 ولت را به شما نمی دهد ، اما با استفاده از درگاه USB می توان یک ترفند کوچک برای گرفتن + 5 ولت از MSP430 انجام داد. اگر از نزدیک به درگاه USB نگاهی بیاندازید می توانید یک ترمینال با نام TP1 پیدا کنید ، این ترمینال به ما + 5v می دهد. تمام کاری که ما باید انجام دهیم این است که یک پین هدر کوچک نری را مطابق شکل زیر لحیم کنیم تا بتوانیم آن را به صفحه LCD خود متصل کنیم.
توجه: بارهایی را که ممکن است بیش از 50 میلی آمپر مصرف کنند به این پین 5 ولتی متصل نکنید که ممکن است پورت USB شما را بسوزانند.
اگر شما علاقه ای به لحیم کاری ندارید از هر منبع تغذیه +5 ولت استفاده کرده و به LCD متصل کنید ، در این صورت مطمئن شوید که منبع تغذیه خود را به GND برد MSP وصل کنید.
قطعات مورد نیاز
- برد لانچ پد MSP430G2
- ال سی دی کاراکتری 16*2
معرفی کوتاه ال سی دی کاراکتری 16*2
همانطور که قبلاً گفته شد ، Energia IDE یک کتابخانه دارد که راه اندازی ال سی دی کاراکتری را بسیار آسان میکند. نام 16*2 بر این دلالت دارد که این نمایشگر دارای 16 ستون و 2 ردیف است که با هم 32 مستطیل را تشکیل میدهند.
هر مستطیل دارای 40 پیکسل (نقطه) با ترتیب 5 ردیف و 8 ستون است، این 40 پیکسل در کنار یکدیگر یک کاراکتر را تشکیل می دهند. ال سی دی در مجموع 16 پین دارد ، همانطور که در شکل بالا نشان داده شده است ، می توان آنها را به چهار گروه تقسیم کرد.
پین های منبع (1 ، 2 و 3): این پین ها منبع قدرت و کنتراست برای صفحه نمایش هستند.
پین های کنترل (4 ، 5 و 6): این پین ها رجیستر ها را در IC ال سی دی تنظیم / کنترل می کنند.
پین های دستور (7 تا 14): این پین ها داده های اطلاعاتی را که باید روی LCD نمایش داده شوند فراهم می کنند.
پین های نور پس زمینه (15 و 16): از این پین ها برای درخشش نور پس زمینه LCD در صورت نیاز استفاده می شود.
از این 16 پین ، فقط 10 پین برای کار کردن LCD استفاده می شود.
برنامه نویسی MSP430 برای LCD با Energia
برنامه كامل ارتباط MSP430G2553 با نمايشگر LCD در انتهاي اين صفحه ارائه شده است. میتوانید فقط کد را کپی کرده و کامپایل کنید. یا در صورت تمایل توضیحات زیر را در مورد کد و برنامه نویسی بخوانید.
قبل از توضیح بیشتر ، باید قسمت هایی را که از آنها استفاده می کنیم یادداشت کنیم. اگر نگاهی به شماتیک مدار بالا و نمودار پین های خروجی MSP430 در زیر بیندازید، می توانید نتیجه بگیرید که ما مطابق جدول زیر LCD را وصل کرده ایم.
ال سی دی کاراکتری | متصل به |
Vss | Ground |
Vdd | +5V USB |
Rs | پین 2 از MSP |
R/W | Ground |
Enable | پین 3 از MSP |
D4 | پین 4 از MSP |
D5 | پین 5 از MSP |
D6 | پین 6 از MSP |
D7 | پین 7 از MSP |
با این حساب بیایید شروع به تعریف پین های LCD مورد استفاده در برنامه خود کنیم. ما هر پین را با یک اسم مهم تر ذکر خواهیم کرد تا بعدا بتوانیم از آن استفاده کنیم.
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
این به این معنی است که از این به بعد بجای نوشتن 2، میتوانیم از RS استفاده کنیم و به همین صورت برای بقیه پین ها.
مرحله بعدی فراخوانی کتابخانه LCD است. هنگام نصب Energia IDE ، این کتابخانه به طور خودکار نصب می شود. بنابراین فقط با استفاده از خط زیر آن را فراخوانی کنید.
#include <LiquidCrystal.h>
قدم بعدی ذکر پین هایی است که LCD به آن متصل شده است ، همانطور که قبلاً با استفاده از #define
نام آن را تغییر داده بودیم.
اکنون می توانیم به راحتی اسامی پین های LCD را ذکر کنیم. حتماً همان سفارش را رعایت کنید.
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);
حالا بگذارید ما به عملکرد void setup ()
برویم. نمایشگرهای LCD انواع مختلفی و اندازه و ماهیت متفاوتی دارند ، نوع مورد استفاده ما 16 * 2 است. بنابراین این را در برنامه خود مشخص میکنیم.
lcd.begin(16, 2);
برای چاپ چیزی روی LCD باید به دو نکته در برنامه اشاره کنیم. یکی موقعیت متن است که می توان با استفاده از خط lcd.setCursor ()
تعیین شود و دیگری محتوای چاپی است که می توان با lcd.print ()
آن را مشخص کرد. در این خط مکان نما را بر روی ستون 1 و ردیف 1 قرار می دهیم.
lcd.setCursor (0,0);
به همین ترتیب :
lcd.setCursor(, 1); // ستون اول در ردیف دوم
دقیقاً مانند پاک کردن تخته سفید بعد از نوشتن روی آن ، یک LCD نیز باید هنگامی که چیزی روی آن نوشته میشود پاک شود. این کار با استفاده از خط زیر قابل انجام است.
lcd.clear();
بنابراین عملکرد () void setup
چیزی شبیه به این خواهد بود.
void setup() { lcd.begin(16, 2); //We are using a 16*2 LCD display lcd.setCursor (0,0); //Place the cursor at 1st row 1st column lcd.print("MSP430G2553"); //Display a intro message lcd.setCursor(0, 1); // set the cursor to 1st column 2nd row lcd.print("-CircuitDigest"); //Display a intro message delay(2000); //Wait for display to show info lcd.clear(); //Then clean it }
در مرحله بعد ، در داخل عملکرد void loop ()
ما میخواهیم یک عدد را نمایش دهیم و هر 500 میلی ثانیه آن را افزایش دهیم.
int test =1;
برای ایجاد تأخیر می توانیم از عملکرد Delay ()
استفاده کنیم. باید ذکر کنیم که چقدر به تأخیر نیاز داریم. همانطور که گفته شد ما از 0.5 ثانیه یا 500 میلی ثانیه استفاده میکنیم.
delay(500);
افزایش عدد را می توان با test++ انجام داد ، بقیه موارد دیگر در زیر توضیح داده شده است. کد کامل void loop در زیر نشان داده شده است.
void loop() { lcd.print("LCD with MSP"); //نمایش یک پیام مقدمه lcd.setCursor(0, 1); // تعیین موقعیت ستون اول ردیف دوم lcd.print(test); //نمایش یک پیام delay(500); // تاخیر lcd.clear(); //پاکسازی test++; // افزایش متغیر }
کد کامل
کد کامل برای راه اندازی و نمایش متن دلخواه در ال سی دی کاراکتری 16*2 متصل به MSP430 در زیر آورده شده است
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7 #include <LiquidCrystal.h> LiquidCrystal lcd(RS, EN, D4, D5, D6, D7); void setup() { lcd.begin(16, 2); lcd.setCursor (0,0); lcd.print("MSP430G2553"); lcd.setCursor(0, 1); lcd.print("IRENX.IR"); delay(2000); lcd.clear(); } int test =1; void loop() { lcd.print("LCD with MSP"); lcd.setCursor(0, 1); lcd.print(test); delay(500); lcd.clear(); test++; }
پس از آماده شدن مدار، کد را در لانچ پد MSP430 بارگذاری کنید. با توجه به توضیحاتی که در بالا داده شد باید بتوانید تصور کنید که چه چیزی در انتظار شماست.
قسمت بعد : آموزش راه اندازی ال سی دی کاراکتری با لانچ پد MSP430