اگر آموزشهای قبلی ما را خونده باشین و یا خودتون پروژهای انجام داده باشین که در اون از LCD کاراکتر استفاده کرده باشین حتما با مشکل راهاندازی LCD و دردسرهای سیم کشی بین LCD و آردوینو مواجه شدین . امروز در دیجی اسپارک میخواهیم شیلد LCD و KEYPAD آردوینو را بهتون معرفی کنیم که با استفاده از اون در پروژههاتون ، دیگه دردسر راهاندازی LCDهای کاراکتری را ندارین.در ادامهی آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.
معرفی LCD KEYPAD Shiled آردوینو
این شیلد یکی از معروف ترین شیلدهایی که تا به حال برای آردوینو عرضه شده. در این شیلد یک عدد LCD کاراکتری ۲*۱۶ به همراه ۶ عدد تاچسوییچ تعبیه شده . پینهای شماره ۴ ، ۵ ، ۶ ، ۷ ، ۸ ، ۹ و ۱۰ بروری آردوینو برای برقراری ارتباط و ارسال دیتا میان LCD و آردوینو استفاده میشه و فقط یک پین آنالوگ شماره A0 برای خواندن ۶ عدد تاچسوییچ قرار گرفته بر روی شیلد استفاده میشه. شیلد LCD از تنظیم کانتراست پشتیبانی میکنه و بکلایت LCD هم به طور پیشفرض روشن است.
طراحی خوب این شیلد باعث شده که به راحتی بتونین سنسورها ، موتورها و …. را به راحتی به مابقی پینهای آردوینو متصل کنین و اطلاعات آنها را بر روی LCD مانیتور و توسط تاچسوییچها عملیات لازم را بر روی آنها انجام بدین. نمایش اطلاعات بر روی LCD و دیباگ کردن برنامه هنگامی که کامپیوتر در درسترس ندارین خیلی میتونه مفید باشه و این شیلد نیز برای انجام این کار بسیار مناسبه.
مشخصات شیلد LCD KEYPAD arduino
- ولتاژ کاری ۵ ولت DC
- ۵ عدد کلید برای کنترل منو و …
-
کلید RST برای ریست کردن آردوینو
- یک عدد مولتیترن برای تنظیم کانتراست LCD
- قابلیت دسترسی به I/O های آردوینو از روی شیلد
- ابعاد ۸۰*۵۸ میلیمتر
- قابلیت کنترل بکلایت
پینهای shiled lcd
- پین D4 تا D7 به منظور انتقال دیتا استفاده میشود.
- پین D8 برای انتخاب رجیسترها
- پین D9 برای فعال کردن LCD
- پین D10 برای کنترل بکلایت استفاده میشه به طوری که در برنامه اگر شما پین شماره ۱۰ آردوینو را در وضعیت HIGH قرار دهید بکلایست LCD روشن میشود و در صورتی که در برنامه پین شماره D10 را در وضعیت LOW قرار دهید ، LCD خاموش میشود.
کدنویسی شیلد lcd و کیپد آردوینو
این شیلد بر اساس کتابخانه استاندار LCD خود آردوینو راهاندازی و کنترل میشود که میتوانید برای آموزش اون به لینک زیر مراجعه کنین.
آموزش جامع کار با LCD کاراکتری در آردوینو
برای خواندن مقادیر کلید ها از تابع analogRead استفاده میکنیم و بر اساس مقادیر به دست آمده طبق شرطهای زیر متوجه میشیم که کدوم کلید فشرده شده:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
x = analogRead (0); lcd.setCursor(10,1); if (x < 60) { lcd.print ("Right "); } else if (x < 200) { lcd.print ("Up "); } else if (x < 400){ lcd.print ("Down "); } else if (x < 600){ lcd.print ("Left "); } else if (x < 800){ lcd.print ("Select"); } |
کدهای زیر را بر روی آردوینو خود آپلود کنین و نیتجه را مشاهده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
// include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { //////////////// TURN nacklight led on pinMode(10, OUTPUT); digitalWrite(10 , HIGH); //////////////// // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.setCursor(0,0); lcd.print("LCD Key Shield"); lcd.setCursor(0,1); lcd.print("Press Key:"); } void loop() { int x; x = analogRead (0); lcd.setCursor(10,1); if (x < 60) { lcd.print ("Right "); } else if (x < 200) { lcd.print ("Up "); } else if (x < 400){ lcd.print ("Down "); } else if (x < 600){ lcd.print ("Left "); } else if (x < 800){ lcd.print ("Select"); } } |
سلام به شما
دوست گرامی من تمام مراحل را انجام دادم و بارها امتحان کردم اما نتیجه حاصله تصویر زیر میشه …
لطفا راهنماییم کنیــــــــد … با تشکر … سال نو مبارک
http://s6.picofile.com/file/8243970034/20160318_214414_Copy_.jpg
ایمیل: paddesky@live.com
با سلام
مطمعن باشید که برنامه را به درستی بر روی آردوینو آپلود کرده باشین.
همچنین پیچی که بر روی مولتی ترن قرار دارد را بجرخنید تا کانتراست تنظیم شود و متن شما به نمایش در آید.
سال نو مبارک 🙂
سلام به شما
کد را بدرستی آپلود می کنم اما چیزی جز مربع های سفید نشان داده نمی شود … حتی با پیچاندن برای تنظیم کنتراست!!!
🙁
کمک
با سلام
ضمن تشکر از توجه شما، از آنجایی که پاسخ شما را باید نویسنده پست ارسال میکرده است. همچنین راه کار این موضوع بسیار ساده است. در ابتدا چککنید پین ها درست بر روی آردوینو قدار گرفته باشند. به احتمال زیاد مربوط به کانتراست است.
با سلام
آیا ساز و کار کلید ها به این صورت هست که این کلید ها هر کدام با مقاومت های مختلف به پین های آنالوگ متصل شده اند و وقتی فشار داده می شوند مقدار ولتاژ آنالوگ را تغییر می دهند ؟ ( در ابتدا هم ولتاژ آنالوگ مقدار ۱۰۲۳ دارد)
با سلام
ضمن تشکر از توجه شما، بله همینطور است.
سلام آقای قربانی، نزدیک دو سال از سوال دوستمون آقا امیر گذشته، من هم به همین مشکل برخوردم. مشکل کجاست؟
سلام
وقت بخیر از توجه شما تشکر میکنم، در این خصوص پاسخ همان کامنت ارسال شده است. لطفا بررسی کنید، سپس موارد را اطلاع دهید.
مشکل پیدا شد.!! کدها به هنگام کپی و پیست تغییر کرده.
از این آدرس استفاده کنید. http://www.hobbytronics.co.uk/arduino-lcd-keypad-shield
با سلام…….
من نیاز دارم که دو سنسور التراسونیک و دما و رطوبت را به این شیلد متصل نمایم تا مقادیر قرائت شده را روی LCD نمایش دهد
لطفا راهنمایی کنید که چه کاری باید انجام دهم
با تشکر.
با سلام و تشکر از شما
اینطور که مد نظر شماست، موارد به صورت صفر تا صد در دیجی اسپارک بیان نخواهند شد. شما بایستی اطلاعات فنی داشته باشید و سپس برای رفع عیب اقدام نمایید. پیشنهاد میشود به پست آموزش راه اندازی ۳ مدل ال سی دی کاراکتری LCD با آردوینو Arduino مراجعه کنید.
لطفا سریعا پاسخ دهید
باتشکر
سلام مجدد
کاربر گرامی تعداد کامنتها زیاد است و نیاز به صبوری شما دارد. درضمن پاسخ شما هم ارسال شده است. لطفا با دقت بررسی کنید.
با سلام
ممنون از آموزش مفید شما.
آیا امکان آن وجود دارد که از این شیلد برای NodeMCU هم استفاده کرد. درصورت امکان راهنمایی بفرمایید.
سپاسگذارم.
با سلام
خیر این امکان وجود ندارد.