الدرس 20/31: استخدام شاشة LCD1602 مع عرض النص على أردوينو | Robojax
مقدمة
تعد شاشة LCD1602 واحدة من أكثر شاشات العرض الأبجدية الرقمية شيوعًا لمشاريع Arduino، وعند إقرانها مع وحدة I2C الخلفية، تصبح سهلة الاستخدام بشكل لا يصدق. في هذا البرنامج التعليمي، ستتعلم كيفية عرض النصوص والأرقام والأحرف المخصصة، بالإضافة إلى كيفية تمرير النص عبر الشاشة. سنعرض لك أيضًا كيفية دمج شاشة LCD مع أجهزة استشعار أخرى لإنشاء أدوات مراقبة عملية. هذا الدليل جزء من دورة Arduino أوسع وهو مصمم لمساعدتك في بناء أجهزة مفيدة لمنزلك أو مدرستك أو ورشة عملك.
إليك بعض الأفكار العملية لما يمكنك بناؤه باستخدام هذه المعرفة:
- مراقب درجة الحرارة والرطوبة للبيوت الزجاجية أو حظائر الزواحف.
- فولتميتر بسيط لفحص مستويات البطارية في مشاريعك.
- مستشعر مسافة لمساعد ركن السيارة أو سلة مهملات ذكية تعرض مدى امتلائها.
نظرة عامة على العتاد
شاشة LCD1602 هي شاشة عرض مكونة من 16 حرفًا وسطرين. الوحدة الموجودة في الخلف هي محول I2C (أو I²C)، والذي يقلل عدد الأسلاك المطلوبة من اتصال متوازي قياسي إلى أربعة فقط: الأرضي (GND)، والجهد (VCC)، وSDA، وSCL. هذا يجعل التوصيل أبسط بكثير ويحرر العديد من المنافذ الرقمية على لوحة Arduino الخاصة بك.
تتميز الشاشة بإضاءة خلفية يمكن تشغيلها أو إيقافها عبر البرنامج. كما تحتوي على مقياس جهد صغير على وحدة I2C لضبط التباين. إذا قمت بتشغيل الشاشة ولم ترَ شيئًا، فما عليك سوى تدوير هذا المسمار حتى يصبح النص مرئيًا (في الفيديو عند 02:47).
توجد إصدارات مختلفة من هذه الشاشة، مثل LCD2004 الذي يحتوي على 20 حرفًا و4 أسطر. يمكن أيضًا تغيير عنوان I2C عن طريق لحام وصلات A0 وA1 وA2 على الوحدة (في الفيديو عند 03:51). العنوان الافتراضي غالبًا ما يكون 0x27، لكنه قد يختلف، لذا من الجيد دائمًا تشغيل ماسح I2C للعثور على العنوان الصحيح لوحدتك المحددة.
مكونات العتاد
لمتابعة العرض الرئيسي في هذا الفيديو، ستحتاج إلى المكونات التالية:
- Arduino Uno (أو أي لوحة متوافقة)
- شاشة LCD1602 مع وحدة I2C
- لوحة تجارب وأسلاك توصيل
للأقسام اللاحقة، ستحتاج أيضًا إلى مستشعر DHT11 أو مقياس جهد أو مستشعر فوق صوتي، اعتمادًا على المشروع الذي تريد بناءه.
دليل التوصيل
توصيل شاشة LCD أمر بسيط. يوضح مخطط التوصيل الاتصالات بوضوح.
قم بتوصيل المنافذ على وحدة I2C بلوحة Arduino الخاصة بك كما يلي:
- GND إلى GND في Arduino
- VCC إلى 5V في Arduino
- SDA إلى A4 في Arduino
- SCL إلى A5 في Arduino
إذا كانت لوحة Arduino الخاصة بك تحتوي على منافذ SDA وSCL مخصصة، يمكنك التوصيل بها أيضًا (في الفيديو عند 05:47).
تثبيت المكتبة
تتطلب هذه الوحدة مكتبة "Arduino Liquid Crystal I2C". يمكنك تنزيلها من الرابط المقدم في وصف الفيديو أو من موقع Robojax. بعد التنزيل، قم بتثبيتها في بيئة Arduino IDE الخاصة بك عن طريق الانتقال إلى Sketch > Include Library > Add .ZIP Library وتحديد الملف الذي تم تنزيله (في الفيديو عند 06:41).
شرح الكود
نظرًا لعدم تقديم مقاطع كود، سنشرح البنية العامة للكود المستخدم في الفيديو.
يبدأ الكود بتضمين المكتبات اللازمة: Wire.h للاتصال عبر I2C ومكتبة LiquidCrystal_I2C.h للشاشة. الجزء الأساسي هو إنشاء كائن للشاشة. ستحتاج إلى تعيين عنوان I2C الصحيح وأبعاد شاشتك:
// ضبط عنوان LCD إلى 0x27 لشاشة 16 حرفًا وسطرين
LiquidCrystal_I2C lcd(0x27, 16, 2);
إذا لم تظهر أي شيء على الشاشة، فقد تحتاج إلى تغيير 0x27 إلى 0x3F أو عنوان آخر يعثر عليه ماسح I2C الخاص بك. الرقمان 16 و2 يمثلان عدد الأعمدة والصفوف على شاشتك.
في دالة setup()، تقوم بتهيئة الشاشة وتشغيل الإضاءة الخلفية:
void setup() {
lcd.init();
lcd.backlight();
}
لطباعة نص، تستخدم دالة lcd.setCursor(column, row) لتحديد موضع المؤشر، متبوعة بـ lcd.print() لعرض بياناتك. على سبيل المثال، للطباعة على السطر الثاني، يمكنك استخدام lcd.setCursor(0, 1). يشرح الفيديو أيضًا كيفية طباعة أحرف خاصة مثل رمز الدرجة باستخدام lcd.write(223) (في الفيديو عند 31:42).
العرض التوضيحي
يعرض الفيديو العديد من الميزات الرئيسية للشاشة. أولاً، يعرض طباعة نص "Hello World" الأساسي وكيفية استخدام دالة lcd.scrollDisplayLeft() لتحريك النص عبر الشاشة. لاحقًا، يدمج الشاشة مع مستشعر DHT11 لعرض درجة الحرارة والرطوبة، ومع مقياس جهد لعرض الجهد، ومع مستشعر فوق صوتي لعرض المسافة.
لعرض درجة الحرارة، يقرأ الكود المستشعر ويطبع القيمة. لإظهار رقم صحيح بدون كسور عشرية، يمكنك تحويل القيمة العشرية إلى عدد صحيح، كما هو موضح في الفيديو (في الفيديو عند 32:21).
بالنسبة لعداد الجهد، يقرأ الكود القيمة التناظرية من مقياس الجهد، ويحوّلها إلى نطاق جهد من 0-5 فولت، ويعرضها على الشاشة (في الفيديو عند 34:31).
الشرح النهائي يجمع بين شاشة LCD ومستشعر الموجات فوق الصوتية لعرض المسافة المقاسة بالسنتيمتر (في الفيديو عند 37:55).
مشاريع ذات صلة من هذا الفيديو
يحتوي هذا الفيديو أيضًا على دروس مشاريع أخرى. يمكنك العثور عليها هنا:
الفصول
- [00:00] مقدمة إلى LCD1602 ونظرة عامة على الدورة
- [01:30] نظرة عامة على الأجهزة الخاصة بـ LCD1602 ووحدة I2C
- [02:47] ضبط تباين الشاشة والإضاءة الخلفية
- [03:14] توصيلات الأطراف واختيار عنوان I2C
- [05:28] مخطط توصيل الأسلاك للشاشة
- [06:16] تثبيت المكتبة المطلوبة
- [07:24] الكود الأساسي لطباعة النص
- [11:10] مثال المؤشر الوامض
- [13:46] الأحرف المخصصة وطباعة الرموز الخاصة
- [18:51] مثال العرض التسلسلي
- [23:16] تمرير النص على شاشة LCD
- [36:51] دمج شاشة LCD مع مستشعر الموجات فوق الصوتية
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
*/
/*
This is code for LCD1602 Display with I2C module
* watch the video for this code https://youtu.be/q9YC_GVHy5A
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purpose only.
* This library is based on work done by DFROBOT (www.dfrobot.com).
*/
/*
* This code has been modefied from the Arduino library
* Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
* in Ajax, Ontario, Canada
* for Robojax.com
*
* This is code for LCD1602 Display with I2C module
* which can display text on the screen.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
//lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
lcd.clear();
lcd.setCursor (0,0);
lcd.print("SunFounder ");
lcd.setCursor (0,1);
lcd.write(244);
delay(500);
//end of loopcode Robojax code for LCD with I2C
}
Common Course Links
Common Course Files
الأشياء التي قد تحتاجها
-
أمازونSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
أمازون
-
أمازون
-
أمازون
-
أمازون
-
أمازوناشترِ LCD1602-I2C من أمازونamzn.to
-
إي بايشراء LCD1602-I2C من eBayebay.us
-
علي إكسبريسشراء 10 قطع من LCD1602-I2C من علي إكسبريسs.click.aliexpress.com
الموارد والمراجع
-
توثيقوثائق لمجموعة SunFounder 3 في 1 لإنترنت الأشياء/السيارات الذكية/التعلمdocs.sunfounder.com
-
خارجياشترِ مجموعة التعلم الذكية 3 في 1 من سن فاونديرsunfounder.com
-
خارجيمكتبة LCD من RoboJax (ZIP)robojax.com
ملفات📁
مكتبات أردوينو (ملف مضغوط)
-
شفرة المصدر لمجموعة تعلم السيارة الذكية 3 في 1 من صن فاوندر
3in1-kit-main-v2.zip12.80 MB