نمایشگرها در بسیاری از پروژههای الکترونیکی کاربرد دارند. پیش از این پروژهها و آموزشهای مختلفی با انواع نمایشگرها در دیجی اسپارک منتشر شده است. هر نمایشگری یک یا چند ویژگی منحصر به فرد دارد. بر اساس نیاز پروژه و سناریو تعریف شده، میبایست انتخاب شوند. در این پست راجع به یکی از پرکاربردترین LCDها در پروژهها، مدل LCD گرافیکی ۱۲۸×۶۴ که به صورت گرافیکی میباشد، توضیحاتی خواهم داد. روش راه اندازی LCD توسط آردوینو به همراه چالشهایی که در این مسیر وجود خواهند داشت، ارایه میشود. دقت داشته باشید که ظاهر این نمایشگر شبیه به ال سی دی کاراکتری میباشد. همچنین دارای نور پس زمینه آبی، سبز و نارنجی میباشد. در ادامه این پست با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
LCD گرافیکی ۱۲۸×۶۴
ما با استفاده از توابع کتابخانه، ال سی دی LCD گرافیکی، اشکال و نوشتههایی را نمایش میدهیم. در این آموزش از LCD گرافیکی با تراشه ks0108b استفاده شده است. دقت داشته باشید، مدلهای مختلف LCD با تراشههای گوناگون وجود دارند .به زبان سادهتر همان ال سی دی های موجود در بازار مشابه هم نیستند و هر کدام یک درایور متفاوت خواهد داشت. مثلا ال سی دی LG128643 یا TSM12864E هر دو از درایورهای معتبر استفاده کردهاند. تراشه ks0108b یکی از درایورهای پرمصرف در این مدل LCD میباشد. بیشتر برای راه اندازی LCD ماتریسی ۱۲۸ در ۶۴ نقطهای استفاده میشود. تفاوت ال سی دیهای اصلی با کپی شده، در روشن و خاموش کردن بک لایت LCD توسط برنامه میباشد. همچنین در عمر کارکرد مفید LCD تاثیر گذار میباشند. روی برد LCD 128×64 تعداد ۲۰ پایه وجود دارند.
اتصالات LCD 128×64 به آردوینو
جهت راه اندازی LCD گرافیکی ۱۲۸×۶۴ با برد آردوینو بایستی پایهها را مانند تصویر زیر متصل کنید. دقت داشته باشید که در این آموزش از پایههای ۴ تا ۱۱ آردوینو، همچنین A0 تا A4 استفاده شده است. یعنی جمعا ۱۳ پایه از آردوینو نیاز میباشد. به تصویر زیر دقت کنید.
معرفی پایههای LCD 128×64
پایه های ال سی دی گرافیکی ۱۲۸×۶۴ به صورت زیر است. من این موارد را داخل جدول نوشتهام تا به سادگی قابل تشخیص باشند.
|
کتابخانه LCD گرافیکی آردوینو
برای راه اندازی این LCD کتابخانههای مختلفی از جمله glcd.h , U8glib.h و openGLCD.h وجود دارند. در این پست از کتابخانه glcd.h استفاده میکنیم. دستورات و توابع مورد استفاده در این کتابخانه را طی این پست و پستهای بعدی آموزش خواهیم داد. نکته قابل ملاحضه در خصوص این مدل LCD گرافیکی، مانند ال سی دی کاراکتری نیستند و از قبل هیچ فونتی در حافظه LCD قرار ندارند. بنابراین پیش از هر کاری نیاز است که فونتها را هم در این LCD فراخوانی کنیم. برای این منظور از کتابخانه fonts/allFonts.h استفاده میکنیم. پس از این کار میبایست در کدها، فونت مورد نظر را فراخوانی کنیم. در مثال راه اندازی این پست، از یک فونت ساده به اسم Arial_bold_14 استفاده کردهایم. برای استفاده از کتابخانههای فونت به فرمت باینری در اینترنت، هر فونتی را میتوانید به LCD گرافیکی منتقل کرده و آن را نمایش دهید. چنانچه روش نصب کتابخانه در آردوینو را نمیدانید، به پست آموزش نصب کتابخانه در نرم افزار آردوینو IDE مراجعه بفرمایید.
دستورات مهم LCD گرافیکی
به چند عدد از توابع مهم جهت راه اندازی LCD گرافیکی ۱۲۸×۶۴ را به صورتی که در کدها مینویسیم، توجه کنید. برای هر دستور توضیحات فارسی نوشته شده است. دقت داشته باشید که روش فراخوانی و استفاده از هر دستور دقیقا به همین صورت زیر میباشد. همچنین این موارد برای کتابخانههای معرفی شده مورد استفاده هستند.
1 2 3 |
(void SelectFont(Arial_bold_14 این تابع برا انتخاب فونت متنی که میخوایم نشون بدیم هستش، این کتابخونه فونت های مختلف داره که با رفتن به پوشه کتاب خونه و بخش فونت میتونید فونت های موجود رو استفاده کنید |
1 2 |
GLCD.GotoXY(27, 17); از این دستور برای جابجایی متن استفاده میکینم مقدار اول محور x و مقدار دوم محور y است |
1 2 3 4 5 6 7 8 9 |
GLCD.DrawRoundRect(16,15,99,18, 5, BLACK); با این دستور یک مستطیل که لبه های منحنی داره طراحی میکینم دستور اصلی برای طراحی به فرم زیر هستش 1 2 void DrawRoundRect(uint8_t x, uint8_t y, uint8_t width, uint8_t height, uint8_t radius, uint8_t color= PIXEL_ON); x و y : مختصات نقطه سمت چپ بالای ۴ ضلعی (مربع/مستطیل) Width و height : طول و عرض ۴ ضلعی ما(مربع/مستطیل) Radius : این پارامتر میزان گرد بودن گوشه های ۴ ضلعی ما رو تعیین میکند، که مقدارش از ۱ شروع میشه تا نصف طول و یا عرض یکم کمتر |
نمونه کد LCD 128×64 آردوینو
این مثال برای تمام ال سی دی های گرافیکی که با تراشه ks0108b درایو می شوند کار میکند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <glcd.h> #include <fonts/allFonts.h> void setup() { // Initialize the GLCD GLCD.Init();// برای فعال کردین پیکسل های السیدی } void loop() { GLCD.SelectFont(Arial_bold_14); // استفاده از فونت GLCD.GotoXY(27, 17);// تنظیم قرار گرفتن نوشته GLCD.print("DIgispark.IR"); // نوشتن متن روی السیدی GLCD.DrawRoundRect(16,15,99,18, 3, BLACK); // کادر دور نوشته } |
وسایل مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه و دریافت بن ارسال رایگان
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک و دانشجوکیت و digispark و daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید. در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
اگر بخواهیم با استفاده از این کتابخانه متن بر روی ال سی دی حرکت کند از چه دستوری باید استفاده کرد؟
سلام
void gText::CursorToXY( uint8_t x, uint8_t y)
او دو تا پارامتر هم مختصات X و Y ایی هستش که متن ما از اون مکان شروع به نمایش میکنه.
سلام وخسته نباشید.نحوه اضافه کردن کتابخانه glcd.h رو توضیح بدین ممنون میشم(حین کامپایل کردن برنامه بالا ارور میده که glcd رو نمیشناسه
سلام برا نصب کتاب خانه از لینک زیر اقدام کنید با تشکر
https://digispark.ir/آموزش-نصب-کتابخانه-آردوینو/
سلام کتابخانه ای به نام glcd.hدر کتابخانه های ARDUINOوجود نداشت لینک دانلود کتابخانه را لطف کنید
اگه همین اسم رو در گوگل سرچ کنید لینک دانلود براتون میاره
سلام وه خسته نباشید من واقعا تمام کتابخانه هارا نصب کردم اما باز ارور میده فونت که اصلا پیدا نشد یعنی شد اما این نشد واقعا اگه لینگ دانلود کتاب خونرو بزارید ممنون میشم خیلی برام مهمه هنوز لنگ اونم با کتابخونه open glcdراه اندازی کردم جواب نداد
سلام
من یک ال سی مدل sg12864j4 128*64 خریداری کردم با اردوینو مگا
خیلی برنامه های زیادی روش تست کردم و سیم کشی های مختلفی رو هم انجام دادم باز دریغ از یک نقطه نمایش روی ال سی دی
ممنون میشم راهنماییم کنید
سلام
این ال سی دی کاملا متفاوت هست و خارج از بحث این آموزش هست. کتابخانه و سیم کشی مخصوص به این ال سی دی در نت موجود است.
سلام
اگه امکان هست اموزش با درایور KS0108
بزارید این openGLCD Library با بعضی از نمایشگر های گرافیکی مچ نمیشند
سلام
آیا میشه این ال سی دی رو با کمک IDE برای برد stm32 هم راه اندازی کرد؟
همچنین برای راه اندازی این ال سی دی با کمک IDE برای stm32 به کتابخانه مخصوص دیگری نیاز هست؟
سلام. با تشکر از مطالب مفیدتون. این روش اتصال خیلی از پایه های آردوینو رو اشغال میکنه. آیا به روش I2C هم میشه این کار رو انجام داد؟ تشکر
با سلام
در خصوص ال سی دی ۱۲۸*۶۴ موارد را تست نکردهایم ولی برای نمایشگر ۲*۱۶ تست شده است.
سلام یه سوال داشتم ایا میشه بعد از پروگرام کردن اردینو ایسی را از روی ان در اورد
با سلام
خیر این مورد پیشنهاد نمیشود.
سلام خسته نباشین من ال سی دی رو خریداری کردم با تراشهKS0108 خواستم ببینم تراشش همین ال سی دی ایی هست که اموزش دادین مدلشم۱۲۸*۶۴
سلام
اگر بخواهیم ال سی دی گرافیکی رو با برد اردینو و البته پروتکل l2c انجام بدیم دقیقا باید چیکار کنیم؟
با سلام
در این خصوص از آموزش زیر استفاده نمایید.
آموزش راه اندازی سه مدل ال سی دی کاراکتری
سلام میخواستم بدونم که فارسی هم میشه تایپ کرد یا نه؟
با سلام
این مورد تست نشده است.