تعلم الوحدات · الدرس 2.21
شاشة العرض (LCD1602 Module)
العودة إلى الدروسشاشة العرض (LCD1602 Module) وأطرافها
ستتعلم توصيل شاشة حروف وأرقام بإضاءة خلفية LED. تعرض صفين، في كل منهما 16 محرفًا. تظهر مستطيلات المحارف وبكسلات كل محرف؛ الشاشة بيضاء وزرقاء ومخصصة للنص. سنشغل مثال Arduino الخاص بمكتبة LCD.
المكونات المطلوبة
- لوحة أردوينو (ELEGOO UNO R3).
- شاشة العرض (LCD1602 Module).
- مقاومة متغيرة (Potentiometer) 10kΩ.
- لوحة تجارب (Breadboard) 830 نقطة.
- ستة عشر سلكًا ذكر إلى ذكر (Male to Male Jumper Wires).

الأطراف
- VSS للأرضي، و VDD للتغذية بجهد +5V.
- VO لضبط التباين.
- RS لاختيار سجل البيانات الذي يحمل ما يعرض، أو سجل التعليمات الذي يقرأ منه المتحكم أوامر العمل.
- R/W لاختيار القراءة أو الكتابة.
- E طرف التمكين المستخدم لتوقيت نقل البيانات والتعليمات إلى الشاشة.
- D0–D7 لقراءة البيانات وكتابتها.
- A و K لإضاءة LED الخلفية.
توصيل الشاشة

تحتاج الشاشة ستة منافذ Arduino تهيأ مخارج رقمية، إضافة إلى 5V و GND. توجد توصيلات عديدة؛ ضع الشاشة بمحاذاة أعلى لوحة التجارب (Breadboard) لتسهيل عد الأطراف، خصوصًا إذا كان الصف 1 في الأعلى. لا تنس السلك الأصفر الطويل بين منزلق المقاومة المتغيرة (Potentiometer) والطرف 3 للشاشة؛ فهو يضبط التباين.

إذا وصلت الشاشة دون رؤوس توصيل، فاتبع تعليمات الدرس 3.1.
البرنامج وشرح الشاشة
قبل رفع البرنامج، تأكد من توفر مكتبة LiquidCrystal في بيئة Arduino IDE. إذا لم تكن مثبتة أو ظهرت رسالة تشير إلى مكتبة مفقودة، فاتبع خطوات التثبيت في قسم «ما هي المكتبات؟» وطرق تثبيتها في الدرس 1.5 «وميض LED وإضافة المكتبات».
افتح ملف البرنامج HelloWorld.ino من ملفات الدرس في بيئة Arduino IDE. بعد إتمام التوصيلات، وصّل لوحة أردوينو (UNO R3 Board) بالحاسوب بكابل توصيل (USB Cable)، ثم اضغط زر Upload (رفع) لنقل البرنامج إلى اللوحة وتشغيله عليها.
إذا تعذر نقل البرنامج إلى اللوحة، فراجع قسم «رفع البرنامج ومعالجة خطأ الاتصال» في الدرس 1.5 «وميض LED وإضافة المكتبات» للتحقق من اتصال USB واختيار نوع اللوحة والمنفذ التسلسلي في بيئة Arduino IDE.
بعد الرفع يجب أن تظهر hello, world ثم عداد يبدأ من 0. تأكد من إضاءة الخلفية، وأدر المقاومة المتغيرة (Potentiometer) حتى يظهر النص.
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
lcd.begin(16, 2);
lcd.print("Hello, World!");يوجه #include المترجم إلى تضمين ملف المكتبة، ويحدد تعريف lcd المنافذ المتصلة بالشاشة. تهيئ begin() شاشة العرض (LCD1602 Module)، وتطبع print() الرسالة داخل setup().
lcd.setCursor(0, 1);
lcd.print(millis()/1000);يضبط السطر الأول موضع النص التالي عند العمود 0 والصف 1؛ يبدأ العد من 0. يعرض السطر الثاني الزمن بالثواني منذ تشغيل اللوحة أو إعادة ضبطها؛ فالدالة millis() تعيد الملي ثانية، والقسمة على 1000 تحولها إلى ثوانٍ.
الكود
HelloWorld/HelloWorld.ino
//www.elegoo.com
//2016.12.9
/*
LiquidCrystal Library - Hello World
Demonstrates the use of a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.
This sketch prints "Hello World!" to the LCD
and shows the time.
The circuit:
* LCD RS pin to digital pin 7
* LCD Enable pin to digital pin 8
* LCD D4 pin to digital pin 9
* LCD D5 pin to digital pin 10
* LCD D6 pin to digital pin 11
* LCD D7 pin to digital pin 12
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
Library originally added 18 Apr 2008
by David A. Mellis
Library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
Example added 9 Jul 2009
by Tom Igoe
Modified 22 Nov 2010
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("Hello, World!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}