استفاده از LCD و صفحه کلید 16×2 بسیار ساده است زیرا با کتابخانه LiquidCrystal آردوینو کاملاً سازگار است. میتوانید LCD را مقداردهی اولیه کنید و پیامها را روی آن فقط با چند خط کد نمایش دهید، اما همچنین به شما انعطافپذیری میدهد تا پروژههای پیشرفتهتری مانند نمایش آیتمهای منو را انجام دهید و آنها را با استفاده از دکمهها انتخاب کنید.
نیازمندی های قدرت
محافظ LCD و صفحه کلید به یک منبع تغذیه خوب 5 ولتی نیاز دارد تا اطمینان حاصل شود که نور پس زمینه به طور کامل روشن می شود و کنتراست صفحه نمایش بالا است، و اگر آردوینو خود را از USB با محافظ LCD متصل شده تغذیه کنید، ممکن است با افت ولتاژ روی کابل USB مواجه شوید. اگر با کنتراست صفحه نمایش یا روشنایی نور پس زمینه مشکل دارید، سعی کنید یک منبع تغذیه حدود 7 تا 9 ولت دسی را به جک 2.1 میلی متری DC آردوینو متصل کنید. یک علامت معمولی در شرایط ولتاژ پایین این است که یک خط LCD به جای کاراکترها مستطیل های کم رنگ را نشان می دهد و خط دیگر هیچ چیزی را نشان نمی دهد. حتی ممکن است آردوینو به طور معمول به کار خود ادامه دهد، زیرا فقط با ولتاژ 4 ولت کاملاً راضی است، اما محافظ LCD و صفحه کلید کار نمی کند.
الزامات کتابخانه
تمام کارهای سخت ارتباط با LCD Shield توسط کتابخانه LiquidCrystal انجام می شود که به عنوان بخشی از توزیع رسمی آردوینو گنجانده شده است. میتوانید با راهاندازی IDE و مشاهده زیر Files -> Examples -> LiquidCrystal بررسی کنید که آیا آن را نصب کردهاید یا خیر. اگر وجود دارد، شما خوب هستید که بروید.
نمونه نمایش حداقلی
برای راه اندازی LCD و نمایش یک پیام، یک طرح جدید در Arduino IDE باز کنید و کد زیر را در آن قرار دهید:
#include <Wire.h>
#include <LiquidCrystal.h>
ال سی دی LiquidCrystal( 8، 9، 4، 5، 6، 7);
void setup(){ lcd.begin(16, 2); lcd.print("سلام، دنیا!");}
void loop(){ // کد حلقه اصلی شما در اینجا…}
خواندن دکمه ها
محافظ LCD شامل 5 دکمه است که برای استفاده به عنوان ورودی ناوبری یا کنترل طراحی شده است. دکمهها در یک الگوی کاربردی چیده شدهاند و بهعنوان UP، DOWN، LEFT، RIGHT، و SELECT نامیده میشوند، اما البته این کاملاً به شما بستگی دارد که وقتی دکمه خاصی فشار داده میشود چه کاری انجام دهید.
همه دکمهها با استفاده از زنجیرهای از مقاومتها به یک ورودی آنالوگ A0 متصل میشوند که باعث میشود ولتاژ مرجع متفاوتی بسته به دکمه فشار داده شده به A0 اعمال شود. این بخش از شماتیک سپر دکمه های ورودی و مقاومت های مرتبط را نشان می دهد:
همانطور که می بینید، اگر هیچ دکمه ای فشار داده نشود، ولتاژ A0 توسط مقاومت 2K به نام R6 تا 5 ولت کشیده می شود. در این شرایط هیچ یک از مقاومت های دیگر هیچ تاثیری ندارند، و خواندن آنالوگ در A0 در حد بالای 1023 سخت خواهد بود. بنابراین اگر یک analogRead() انجام دهید روی A0 فراخوانی کنید و 1023 (یا هر مقدار بالاتر را برمی گرداند). حدود 1000) می دانید که هیچ دکمه ای فشار داده نمی شود.
حال در نظر بگیرید که اگر دکمه "DOWN" فشار داده شود چه اتفاقی می افتد. اکنون A0 با ولتاژی ارائه می شود که بین مقاومت 2K که سعی دارد آن را تا 5 ولت بکشد و مقاومت های 330R و 620R به صورت سری (در مجموع 950R) تقسیم شده است که سعی دارند آن را تا 0 ولت پایین بیاورند. ولتاژ ارائه شده به A0 در آن حالت حدود 1.61 ولت است، به این معنی که اگر یک analogRead() روی A0 انجام دهید، مقداری در حدود 329 برمیگرداند. بنابراین اگر مقداری در حدود 329 را از A0 بخوانید، «DOWN» را میدانید. دکمه در حال فشردن است
همین اصل برای دکمه های دیگر نیز صدق می کند، با ولتاژها و مقادیر معادل analogRead() که در شماتیک بالا نشان داده شده است.
این یک روش منظم برای ارائه مجموعه کاملی از دکمههای ورودی است در حالی که تنها از یکی از پینهای ورودی/خروجی در آردوینو استفاده میکنید، و تعداد پینهای بیشتری را برای استفاده در پروژهتان آزاد میکنید.
مثال پیچیده
مثال گسترده زیر تعدادی از تکنیکها را برای نشان دادن نحوه نمایش پیامها بر روی LCD، خواندن از روی دکمهها و تغییر پیام نمایش بسته به دکمههایی که فشار داده میشوند ترکیب میکند.
/*
کد مثال برای LCD Freetronics & Keypad Shield:
توسط Marc Alexander، 7 سپتامبر 2011
این کد نمونه در مالکیت عمومی است.
این برنامه تشخیص دکمه، چاپ متن/اعداد LCD
و کنترل نور پسزمینه LCD را بر روی صفحهنمایش LCD و صفحهکلید Freetronics که به برد آردوینو متصل است، نشان میدهد.