مكتبة وكود أردوينو لشاشة LCD2004 عبر واجهة I2C
في هذا الدرس، سنستعرض كيفية استخدام شاشة LCD2004 مع بروتوكول الاتصال I2C. يتيح هذا الإعداد عرض النص عبر أربعة أسطر، مما يجعله مثالياً لتطبيقات متعددة. سنغطي التوصيلات اللازمة، ومقتطفات الشيفرة، وكيفية تنفيذ الوظائف بفعالية.

سنستخدم مكتبة LiquidCrystal_I2C لإدارة شاشة LCD. تُبسط هذه المكتبة التفاعل مع الشاشة عبر التعامل مع اتصال I2C نيابةً عنك. للحصول على فهم شامل، تأكد من مشاهدة الفيديو للإرشاد البصري (في الفيديو عند 00:00).
شرح الأجهزة
المكوّن الأساسي لهذا المشروع هو شاشة LCD2004، التي تتميز بـ20 عمودًا و4 صفوف لإخراج النصوص. تتواصل عبر I2C، مما يتيح عددًا أقل من الاتصالات مقارنةً بالوصلات المتوازية التقليدية. هذا يجعلها مناسبة للمشاريع ذات توفر محدود للأطراف على الأردوينو.
تستخدم واجهة I2C خطين، SDA (خط البيانات) وSCL (خط الساعة)، واللذان يتصلان بالدبابيس المقابلة على لوحة Arduino. كما أن شاشة LCD تحتاج أيضاً إلى توصيلات للطاقة والأرضي. في هذا الإعداد سنقوم بتوصيل الشاشة بمصدر طاقة 5 فولت، والذي يمكن توفيره مباشرةً من لوحة Arduino.
تفاصيل ورقة البيانات
| المصنّع | عام |
|---|---|
| رقم القطعة | شاشة LCD2004 |
| جهد المنطق/الإدخال والإخراج | 5 فولت |
| جهد التغذية | 5 فولت |
| تيار الإخراج (لكل قناة) | عادةً 20 mA |
| التيار الأقصى (لكل قناة) | عادةً 40 mA |
| إرشادات تردد PWM | غير متاح |
| عتبات منطق الإدخال | 0.3 Vcc (منخفض)، 0.7 Vcc (مرتفع) |
| هبوط الجهد / Rالمصرف-المصدر أثناء التشغيل/ التشبع | عادةً 0.2 فولت |
| الحدود الحرارية | 0°C إلى 50°C |
| حزمة | شاشة LCD قياسية 4x20 |
| ملاحظات / متغيرات | متوفر بخيارات إضاءة خلفية مختلفة |
- تأكد من وجود مصدر طاقة مناسب لتجنب التلف.
- استخدم مقاومات سحب على خطوط SDA وSCL إذا لزم الأمر.
- تحقق من عنوان I2C؛ عادةً ما يكون 0x27 لهذه الشاشة.
- اجعل الوصلات قصيرة لتقليل التداخل.
- تأكد من تثبيت المكتبة بشكل صحيح قبل رفع الكود.
تعليمات التوصيل
لتوصيل شاشة LCD2004 عبر I2C بالأردوينو، اتبع التوصيلات التالية:
- قم بتوصيل الـ
VCCدبوس شاشة الـLCD إلى الـ5Vدبوس على الأردوينو. - قم بتوصيل الـ
GNDدبوس شاشة LCD إلى aGNDدبوس على الأردوينو. - قم بتوصيل الـ
SDAدبوس شاشة LCD إلى الـA4دبوس على الأردوينو. - قم بتوصيل الـ
SCLدبوس شاشة LCD إلى الـA5دبوس على لوحة الأردوينو.
إذا كانت لوحة Arduino لديك تحتوي على دبابيس I2C مختلفة، فتأكد من تعديل التوصيلات وفقاً لذلك. كما يوضح الفيديو أيضاً تكوين توصيل بديل (في الفيديو عند 01:30).

أمثلة على الشيفرة ودليل إرشادي خطوة بخطوة
دعنا نلقي نظرة على مثال بسيط لتهيئة شاشة LCD وعرض رسالة. المقتطف التالي يقوم بإعداد شاشة LCD ويطبع "Hello, world!" على الشاشة.
lcd.begin(); // Initialize the LCD
lcd.backlight(); // Turn on the backlight
lcd.print("Hello, world!"); // Display message
يقوم هذا الكود بتهيئة شاشة LCD وتفعيل الإضاءة الخلفية. ثم يعرض الرسالة على السطر الأول من شاشة LCD. الإضاءة الخلفية ضرورية للرؤية في ظروف الإضاءة المنخفضة.
بعد ذلك، سنفحص مثالًا أكثر تعقيدًا يعرض بيانات ديناميكية، مثل قراءات الجهد.
lcd.setCursor(0,0); // Set cursor to the first line
lcd.print("Voltage: "); // Display voltage label
float v = 8.254; // Example voltage value
lcd.print(v); // Print voltage value
في هذا المقتطف، نضبط موضع المؤشر على السطر الأول ونطبع تسمية الجهد متبوعة بالقيمة الفعلية له. يتيح لك ذلك عرض القياسات في الوقت الحقيقي بطريقة سهلة الاستخدام.

للحصول على وظائف إضافية، يمكنك تنفيذ إدخال تسلسلي يتيح للمستخدمين إدخال أحرف عبر المراقب التسلسلي وعرضها على شاشة LCD.
if (Serial.available()) { // Check for serial input
lastChar = Serial.read(); // Read the last character
lcd.write(lastChar); // Display character on LCD
}
يتحقق هذا الكود مما إذا كانت هناك بيانات متاحة على المنفذ التسلسلي. إذا كان الأمر كذلك فإنه يقرأ الحرف الأخير المدخل ويعرضه على شاشة LCD. يعزز هذا التفاعل تجربة المستخدم من خلال السماح بعروض ديناميكية بناءً على مدخلات المستخدم.
للاطلاع على الشيفرة الكاملة، يرجى الرجوع إلى البرنامج الكامل المحمّل أسفل المقالة.
عرض توضيحي / ما الذي تتوقعه
عند تشغيل الكود، يجب أن ترى الرسالة الأولية معروضة على شاشة LCD، تليها قراءات الجهد وأي أحرف تم إدخالها عبر المراقب التسلسلي. تأكد من أن التوصيلات محكمة لتجنب أي مشاكل في العرض. إذا لم تُظهر شاشة LCD أي شيء، فراجع الأسلاك وعنوان I2C مرة أخرى (في الفيديو عند 02:15).
الموارد والمراجع
-
خارجياحصل على المكتبة من GitHubgithub.com
-
خارجيمولد الشخصيات (GitHub)maxpromer.github.io
-
خارجيمولد الشخصيات (المصدر الثاني)omerk.github.io
ملفات📁
لا توجد ملفات متاحة.