سلام به همه دوستان اسمارت کامپی، در این مقاله، به شما نشان خواهیم داد که چگونه یک LCD گرافیکی 128X64 را با آردوینو یونو Arduino UNO متصل کنید. ماژول LCD خاص مد نظر ما مبتنی بر کنترلر ST7920 است. بنابراین، ابتدا کمی در مورد ماژول LCD گرافیکی و کنترلر آن صحبت خواهیم کرد.
سپس مراحل اتصال LCD گرافیکی 128×64 با برد آردوینو UNO را مشاهده می کنیم و یک تصویر بیت مپ را نمایش می دهیم.
ماژول های ال سی دی مختلفی با کنترلرهای اختصاصی در بازار یافت می شوند از جمله ماژول ST7920، ماژول نوکیا 5110 ، KS0108 و غیره. بطور مثال مشکل ماژول ال سی دی نوکیا 5110 رزولوشن پایین آن است بطوریکه دارای رزولوشن 48x48 پیکسلی بوده و به دلیل اندازه کوچک آن، منوی حاصل به 3 یا 4 مورد در هر صفحه محدود می شود. همچنین در خصوص ماژول مرسوم در بازار به نام KS0108 ف این کنترلر دارای رزولوشن 128x64 بوده و دارای دو کنترلر مجزا برای پیکسل های 0 تا 64 و 64 تا 128 می باشد اما در اتصال این ماژول گرافیکی به آردوینو باید 8 پایه داده را علاوه بر پایه های کنترلی به کار گرفت بدان معنا که تعداد زیادی از پایه های آردوینو را اشغال خواهد کرد.
برای آموزش برنامه نویسی GLCD می توانید به آدرس http://smartcomp.ir/product-three یا آدرس http://smartcomp.ir/product-4 مراجعه کنید.
در نگاه اول، ماژول های LCD گرافیکی 128×64، با ساختار مشابه و چیدمان پین تقریباً مشابه، برادر بزرگتری برای ماژول های LCD معروف 16×2 یا 20×4 LCD به شمار می آیند. اما تفاوت قابل توجهی بین این دو نوع LCD وجود دارد. ال سی دی های متنی ۱۶×۲ یا ۲۰×۴ اساساً نمایشگرهای کاراکتری هستند. آنها فقط می توانند کاراکترهای الفبای عددی و برخی از کاراکترهای سفارشی ساده را که به یک ماتریس 5×8 محدود می شوند، نمایش دهند. اما LCD های گرافیکی 128×64، یک صفحه نمایش گرافیکی متشکل از 128×64 یعنی 8192 نقطه قابل کنترل جداگانه است.
با استفاده از ترکیبهای مختلف پیکسلها، اساساً میتوانیم کاراکترهایی با اندازههای مختلف نمایش دهیم. اما موضوع به همین جا ختم نمی شود. شما می توانید تصاویر و گرافیک (انیمیشن های کوچک) را نیز نمایش دهید. در یک ماژول LCD 128×64، 64 ردیف و 128 ستون وجود دارد.
GLCD با کنترلر ST7920
چندین نسخه از LCD گرافیکی در بازار وجود دارد. اگرچه کاربرد، کاربرد و پیاده سازی تقریباً یکسان است، تفاوت اصلی در کنترلر LCD داخلی است که برای هدایت نمایشگر ماتریس نقطه استفاده می شود.
برخی از کنترلکنندههای LCD متداول عبارتند از KS0108، SSD1306، ST7920، SH1106، SSD1322 و غیره. پایه های خروجی ماژول LCD ممکن است بسته به کنترلکننده LCD مورد استفاده متفاوت باشد. بنابراین، باید قبل از تهیه آن، کنترلر LCD و همچنین پایه های آن را بررسی کنید.
ماژول LCD گرافیکی ST7920 توسط Sitronix ساخته شده است و از سه نوع رابط باس یعنی حالت 8 بیتی، حالت 4 بیتی و رابط سریال پشتیبانی می کند.
اگر قبلاً از صفحه نمایش LCD متنی 2X16 استفاده کرده اید، ممکن است با رابط های موازی 4 بیتی و 8 بیتی آشنا باشید. رابط سریال چیز جدیدی است و ما این گزینه را در این پروژه بررسی خواهیم کرد.
پایه های ال سی دی 128x64
جدول زیر پایه های ماژول ال سی دی 128×64 مربوط به ST7920 را توضیح می دهد.
شماره پایه | نام پایه | توصیف عملکرد پایه |
1 | GND | زمین |
2 | VCC | پنج ولت |
3 | VO | ورودی تنظیم کنتراست به کمک پتانسیومتر |
4 | RS | رجیستر انتخاب فرمان یا داده (در نمایشگر سریال به نام CS) |
5 | RW | خواندن/نوشتن (در نمایشگر سریال به نام Data In) |
6 | E | قعال ساز (در نمایشگر سریال به نام CLK) |
7 – 14 | D0 – D7 | داده |
15 | PSB | انتخاب نوع ارتباط (0 سریال و 1 موازی 4 یا 8 بیتی) |
16 | NC | بلا استفاده |
17 | RST | ریست |
18 | VOUT | مولد ولتاژ منفی برای کنترل کنتراست |
19 | BLA | پایه آند LCD بک لایت |
20 | BLK | پایه کاتد LCD بک لایت |
تصویر زیر پشت و روی ال سی دی را نشان می دهد که پین اوت آن چاپ شده است.
رابط LCD گرافیکی 128×64 با آردوینو
اکنون که کمی در مورد LCD گرافیکی و کنترلر آن ST7920 دیدیم، اجازه دهید اکنون به رابط LCD گرافیکی 128×64 با آردوینو ادامه دهیم. اکنون یک مدار ساده را پیادهسازی میکنیم تا نشان دهیم ارتباط LCD و آردوینو با استفاده از اجزای خارجی چقدر آسان است.
در اینجا از رابط سریال برای انتقال داده استفاده خواهیم کرد و همچنین یک تصویر بیت مپ را روی LCD گرافیکی نمایش خواهیم داد.
مدار اتصال آروینو به GLCD
تصویر زیر نمودار مدار رابط گرافیکی ST7920 با آردوینو UNO را نشان می دهد.
اتصالات سخت افزاری
همانطور که قبلا ذکر شد، سه روش مختلف وجود دارد که از طریق آنها می توانید LCD گرافیکی را با آردوینو متصل کنید. آنها عبارتند از:
حالت موازی 4 بیتی
حالت موازی 8 بیتی
حالت سریال
در حالت سریال، ما فقط به سه پین برای انتقال واقعی داده نیاز داریم. آنها RS، RW و E هستند. RS به عنوان پین انتخاب تراشه در ارتباطات سریال عمل می کند. RW و E به ترتیب به عنوان پین های Serial Data IN و Serial CLK عمل می کنند.
بنابراین، RS، RW و E ال سی دی را به پین های IO دیجیتال 10، 11 و 13 آردوینو UNO متصل کنید. همچنین برای انتخاب حالت رابط سریال، پایه PSB باید به GND متصل شود.
اتصالات باقیمانده مشابه یک LCD سنتی 16×2 هستند. VCC و GND به 5 ولت و زمین منبع تغذیه متصل می شوند. VO به سر وسط یک پتانسیومتر 10KΩ متصل می شود در حالی که دو پایانه دیگر POT به ترتیب به 5 ولت و GND متصل می شوند.
برای اینکه LCD را با نور پس زمینه روشن کنید، BLA را به 5 ولت و BLK را به GND وصل کنید.
رنگ نور پس زمینه در LCD مرسوم آبی است. اما سفید و سبز نیز رایج هستند.
ایجاد کد HEX برای تصویر بیت مپ
به جای نمایش کاراکترهای فونت های مختلف ( کتابخانه هایی وجود دارد که با استفاده از آنها می توانید فونت های مختلف را پیاده سازی کنید)، می توان یک تصویر را به شکل بیت مپ نمایش داد. قبل از نوشتن کد، باید تصویر بیت مپ را به آرایه های بایتی تبدیل کنید.
در اینجا از لوگوی بالا یعنی "The Office" استفاده کرده ایم. به یاد داشته باشید که وضوح 128×64 LCD، 128×64 پیکسل است. بنابراین، حداکثر اندازه تصویر باید 128×64 باشد. بنابراین، با استفاده از نرم افزار paint ویندوز، وضوح تصویر فوق را به 128×64 پیکسل کاهش دادیم و همچنین آن را به عنوان تصویر تک رنگ بیت مپ (monochrome) ذخیره کردیم.
مرحله بعدی تبدیل این تصویر بیت مپ به آرایه بایت است. چندین ابزار مبدل (هم آنلاین و هم آفلاین) برای اینکار وجود دارد. یکی از بهترین آنها
نرم افزار "GIMP" است. می توانید GIMP را به راحتی دانلود و نصب کنید. پس از نصب، می توانید تصویر Bitmap 128×64 را در نرم افزار GIMP باز کرده و آن را به عنوان “X Bitmap Image” از طریق گزینه File و سپس export as ایجاد کنید.
یک فایل xbm. ایجاد خواهد شد. این شامل کد HEX برای تصویر بیت مپ 128×64 انتخاب شده است. آن را با هر ویرایشگر متنی (مانند Notepad++) باز کنید و تغییرات زیر را اعمال کنید. آرایه باید یک کاراکتر ثابت و بدون علامت باشد و "PROGMEM" را بعد از نام آرایه اضافه کند.
}=static const unsigned char myBitmap [] PROGMEM
0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
…..
;{ 0xff, 0xff, 0xff, 0x7f
کد آردوینو
قبل از نوشتن کد، باید یک کتابخانه ویژه به نام "U2g8" را دانلود کنید. در آردوینو IDE، به Tools -> Manage Libraries بروید… "U2g8" را جستجو کنید و آخرین نسخه را نصب کنید. این یک کتابخانه پیچیده است و صفحه github آن شامل تمام اسناد لازم است.
دیدگاه خود را بنویسید