آموزش اتصال LCD کاراکتری به آردوینو
سلام. آموزش جامع اتصال LCD کاراکتری به برد آردوینو (ایجاد متن متحرک در ال سی دی) را آماده کردیم.
محتویات
آموزش اتصال ال سی دی کاراکتری به برد Arduino Uno
برای برقراری ارتباط بین انسان و دنیای ماشین ها ، نمایشگر ها نقش مهمی را ایفا میکنند. نمایشگر های بزرگ یا کوچک یا … با یک اصل کار میکنند. نمایشگر ال سی دی کاراکتری 16*1 دارای یک ردیف با 16 ستون است که میتوان در هر ستون آن یک کاراکتر قرار داد. ما در پروژه های آردوینو اغلب از ال سی دی کاراکتری 16*2 استفاده میکنیم که به ما اجازه نوشتن 32 کاراکتری را میدهد. هر کاراکتر 5*10=50 پیکسل دارد.
در قسمت قبلی سری آموزش های آردوینو ، ما به طور کامل با نحوه کنترل سرعت موتور DC با آردوینو آشنا شدیم.
قسمت قبل : آموزش کامل کنترل سرعت موتور DC با Arduino و پتانسیومتر (آموزش آردوینو #5)
در این آموزش آردوینو میخواهیم یک ال سی دی کاراکتری 16*2 را به آردوینو Uno متصل کنیم. برخلاف میکروکنترلر ها و برد های دیگر ، اتصال برد Arduino به LCD کاراکتری بسیار ساده است. در برد های آردوینو نیازی نیست که نگران ارسال و دریافت اطلاعات باشیم. ما فقط باید پین های LCD را تغریف کنیم و بقیه کار ها توسط Arduino انجام میشود.
همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.
برد آردوینو به طور پیشفرض از اعداد ، حروف انگلیسی و برخی کاراکتر های دیگر پشتیبانی میکند. در صورتی که میخواهید نحوه استفاده از کاراکتر های خاص و ایجاد کاراکتر های ویژه مثل حروف زبان فارسی در آردوینو را یاد بگیرید این آموزش را مشاهده کنید : آموزش نمایش شکل های خاص در ال سی دی کاراکتری
ما این آموزش را نیز با استفاده از یک پروژه انجام میدهیم. قطعات مورد نیاز ، توضیحات مدار ، و سورس آردوینو به ترتیب در پایین قرار گرفته اند.
قطعات مورد نیاز برای این آموزش Arduino
برای اجرای این آموزش نیاز به یک سری قطعات داریم.
- برد آردوینو Uno
- منبع تغذیه 5 ولت
- ال سی دی کاراکتری 16*2
- خازن 100uf
مدار اتصال LCD به آردوینو
در صورت وجود بک لایت، در ال سی دی کاراکتری 16*2 ، 16 پین وجود دارد. و در صورت عدم وجود بک لایک 14 پین وجود خواهد داشت. در این پین ها ، 8 پین داده هستند که با D0 تا D7 مشخص میشوند. 2 پین برای تغذیه هستند که با GND , +5 یا VDD , VSS و یا 1 , 2 مشخص میشوند. پین 3 برای کنترل کنتراست است. همچنین 3 پین RS , RW و E برای کنترل هستند.
به تصویر مدار دقت کنید. ما فقط 2 پین را برای کنترل در نظر گرفته ایم زیرا پین کنتراست و RW اغلب استفاده نمیشوند. بنابراین میتوان آن ها را به GND متصل کرد.ما فقط باید پین E , RS را کنترل کنیم تا کاراکتر ها و داده ها را براساس آن ارسال کنیم.
اتصالاتی که برای LCD انجام می شود در زیر آمده است:
- PIN1 یا VSS به زمین GND متصل میشود.
- PIN2 یا VDD یا VCC به +5 ولت متصل میشود.
- PIN3 یا VEE به GND متصل میشود.
- PIN4 یا RS به PIN0 آردوینو UNO متصل میشود.
- PIN5 یا RW به GND متصل میشود.
- PIN6 یا E به PIN1 آردوینو UNO متصل میشود.
- PIN11 یا D4 به PIN8 آردوینو UNO
- PIN12 یا D5 به PIN9 آردوینو UNO
- PIN13 یا D6 به PIN10 آردوینو UNO
- PIN14 یا D7 به PIN11 آردوینو UNO
نرم افزار Arduino به کاربر اجازه میدهد تا از LCD در حالت 4 بیتی استفاده کند. این نوع ارتباطات کاربر را قادر میسازد که استفاده از پین های روی برد آردوینو را کاهش دهد. به طور پیشفرض آردوینو تنظیم شده است تا در حالت 4 بیتی ارتباط برقرار کند.
پس با توجه به مطالب بالا نتیجه میگیریم که ما 6 پین ال سی دی کاراکتری را به میکروکنترلر متصل میکنیم. در این 6 پین ، 4 پین دیتا و 2 پین کنترل هستند.
کد راه اندازی LCD کاراکتری با آردوینو
در ابتدای کد ما کتابخانه LiquidCrystal.h را فراخوانی میکنیم. این کتابخانه اعمال مربوط به ال سی دی کاراکتری را برای ما انجام میدهد. در خط بعدی کد ما پین های ال سی دی کاراکتری را معرفی میکنیم.
#include <LiquidCrystal.h> LiquidCrystal lcd(0, 1, 8, 9, 10, 11); //ENABLE PIN,D4 PIN,D5 PIN, D6 PIN, D7 PIN
سپس به تابع Void Setup میرسیم. در این تابع کار سختی نداریم و فقط باید تعداد ردیف ها و ستون های LCD را معرفی کنیم.
void setup() { lcd.begin(16, 2); }
آموزش ایجاد متن متحرک در ال سی دی کاراکتری
حالا میرسیم به قسمت اصلی آموزش ، یعنی نمایش متن ثابت و حرکت دادن آن. همه این کارها را در تابع void loop اعمال میکنیم. توضیحات خط به خط کد را در باکس زیر بخوانید. میتوانید متن ها را تغییر بدهید یا متن های دیگری اضافه کنید.
void loop() { lcd.print("Irenx");//نمایش نام Irenx lcd.setCursor(0, 1); // نمایش متن در ستون دوم lcd.print("www.irenx.ir");//نمایش www.irenx.ir delay(750);//به مدت 750 میلی ثانیه lcd.scrollDisplayLeft();// دستور شیفت (متحرک) شدن متن روی نمایشگر lcd.setCursor(0, 0);// تنظیم مکان متن }
در صورت حذف کد زیر ، افکت متن متحرک حذف میشود و متن به صورت ثابت نمایش داده میشود.
lcd.scrollDisplayLeft();// دستور شیفت (متحرک) شدن متن روی نمایشگر
کد کامل پروژه
#include <LiquidCrystal.h> LiquidCrystal lcd(0, 1, 8, 9, 10, 11); void setup() { lcd.begin(16, 2); } void loop() { lcd.print("irenx"); lcd.setCursor(0, 1); lcd.print("www.irenx.ir"); delay(750); lcd.scrollDisplayLeft(); lcd.setCursor(0, 0); }
قسمت بعد : نحوه استفاده از شیفت رجیستر در آردوینو (#7)
سلام
بخشید خازن 100μf
کجای این پروژست چون تو تصویر مقاومت میبینیم و آیا نیاز به پتانسیومتر 10 کیلو نیست ؟
سلام جناب. بله نیازی به خازن نیست. از پتانسیومتر میتونید استفاده کنید تا کنتراست متن رو تنظیم کنید.
با سلام من کد کامل پروژتون رو اپلود کردم ولی چیزی نشون نمیده
سلام جناب. کد صحیح هست اتصالاتتون رو بررسی بفرمایید.
سلام خسته نباشیدازاینکه این مطالب را برای مایه اشتراک میگذارید تشکر میکنم مطالب خیلی آموزنده وباحاله من خودم تابااین برنامه آشنا شدم خیلی پیشرفت کردم بازم ممنون
سلام جناب. خوشحالم که از سایت راضی هستید.