مقدمة:
تُستخدَم شاشات LCD في العديد من الأجهزة كالآلات الحاسبة والمايكروويف وما إلى ذلك، وتلعب دوراً مهمّاً في الأنظمة المُدمَجة، ومن الجدير ذكره أنّه استُخدمَتْ العديد من شاشات LCD في الأنظمة المُدمَجة كشاشات الـ 7 Segment وكذلك الشّاشات المعتمدة على الديود الضوئيّ LED، لكن كان لها قيودها الخاصّة، وسنتعرف في هذا المقال كيفيّة توصيل الـ LCD مع لوحة التّطوير أردوينو Arduino.بالمقارنة مع وحدات التّحكم الأُخرى فإنّ ربط شاشة LCD مع الأردوينو يُعتبَر أمراً سهلاً للغاية، ففي المتحّكّمات الأُخرى يلزم كتابة كود برمجيّ متكامل للتّعامل مع هذه الشاشة، بينما يوفر الأردوينو منصّة جيّدة للهُواة من غير المُبرمجِين. توضّح الأشكال (1) و (2) و (3) شاشة الـ LCD.
الشكل (1) شاشة LCD من الأمام
الشكل (2) شاشة LCD من الخلف
الشكل (3) أرجل شاشة الـ LCD
تُعتبَر شاشة الإظهار LCD 16*2 الأكثر استخداماً، حيثُ يوضّح الرقم 16*2 بأنّ هذه الشاشة تُظهِر 32 محرفاً في سطرين، وتملك 16 رجلاً للتّوصيل كما هو موضّح أدناه.
أرجل الـ LCD:
Pin 1 GND
Pin 2 +5V
(Pin 3 Mid terminal of the potentiometer (for brightness control
(Pin 4 Register Select (RS
(Pin 5 Read/Write (RW
(Pin 6 Enable (EN
Pin 7 DB0
Pin 8 DB1
Pin 9 DB2
Pin 10 DB3
Pin 11 DB4
Pin 12 DB5
Pin 13 DB6
Pin 14 DB7
Pin 15 +4.2-5 V
Pin 16 GND
وصف أرجل الـ LCD:
- أرجل البيانات (Data pins): من الرجل7 وحتى الرجل14.
- Vss: رجل الأرضيّ.
- Vdd: رجل التغذية.
- VEE: الرجل الثالثة وتُستخدَم للتّحكّم بإضاءة الـ LCD، والجهد الطّبيعي لهذه الرجل يتراوح بين 4–0.9v. يتمّ وصل مقاومة متغيِّرة 10k Ohm لضبط إضاءة الشّاشة.
- Register Select: تُستخدم الرجل RS لاختيار المسجِّل، حيث يوجد مسجلان خاصَّان بشاشة LCD هما: مسجِّل البيانات ومسجِّل التّعليمات، يقوم مسجّل البيانات بإرسال البيانات إلى الشّاشة، بينما يرسل مسجِّل التّعليمات الأوامر إلى متحكّم الـ LCD لتتحكّم بها.
(Logic High(1: تقوم بتفعيل مسجّل البيانات.
(Logic Low (0: تقوم بتفعيل مسجّل التّعليمات.
- RW: يحدد النّمط إمّا نمط قراءة أو نمط كتابة، حيث يوصَل إلى الأرضيّ.
(Logic High (1: لتفعيل نمط القراءة.
(Logic Low (0: لتفعيل نمط الكتابة.
- (E (Enable: يُفعِّل شاشة الـ LCD.
يمكن استخدام شاشة الـ LCD إما بنمط 4-bit أو بنمط 8-bit، يتطلب العمل بنمط الـ ( 4-bit) سبعة أرجل للدَّخل والخَرْج من مجموع أرجل الأردوينو، بينما يتطلب العمل بنمط الـ( 8-bit) أحدعشر رجلاً للدّخل والخرج، المثال التّالي يُوضّح ذلك.
المكوِّنات المطلوبة:
- شاشة LCD 16*2.
- لوحة تطوير أردوينو.
- أسلاك توصيل.
مخطّط الدّارة:
يُوضِّح الشّكل (4) نموذج لمخطّط الدّارة المستخدمة في هذا المشروع.
الشكل (4) مخطّط الدّارة.
توصيل الدّارة:
- توصّل الأرجل الخاصّة بالبيانات (D4 – D7) مع أرجل الأردوينو ذات الأرقام (0 – 3).
- يوصّل RS مع الرجل4 من أردوينو، والـ (E (Enable مع الرّجل5 من أردوينو.
- يوصَل Vss الخاصّ بالـ LCD مع الأرضيّ، بينما يوصل Vdd مع التّغذية.
- يوصَل VEE الخاصّ بالشّاشة مع المقاومة المتغيِّرة للتّحكُّم بإضاءة الشّاشة.
- توصَل الرِّجل RW مع الأرضيّ.
الكود البرمجيّ: التحميل من هنا
شرح الكود البرمجيّ:
يتيح الكود السّابق عرض كلمة Electronicsgo على شاشة LCD. يتضمّن الكود البرمجيّ مكتبة خاصّة بشاشة LCD، حيث قمنا بتضمين المكتبة LiquidCrystal.h في بداية البرنامج للحصول على جميع التّوابع المطلوبة، وهي تدعم النمطين 4-bit و8-bit.
يُعرِّف السّطر التّالي “(LiquidCrystal lcd(RS,E,D4,D5,D6,D7” أرجل الأردوينو المتصلة بالشّاشة، ففي هذه الدّارة قمنا بتوصيل رجل RS الخاصّ بالـ LCD مع الرجل5 من الأردوينو، أي أنّ 5 تُكتب مكان RS في التّعليمة السّابقة.
تابع ()setup يقوم بتهيئة LCD مع ملاحظة أنّها تُهيّأ فقط عندما نقوم بالتّصريح عنها ضمن تابع ()setup، وتدلّ void على أنّه لا يُعيد قيماً.
يُشير الرقم 16*2 في السطر البرمجيّ “(lcd.begin (16*2″إلى عدد الأسطر والأعمدة في الـ LCD. أمّا ()void loop فتشير إلى التّنفيذ المُستمرّ للتّعليمات، حيثُ يُكرِّر تنفيذ التّعليمات الموجودة في هذه الحلقة إلى أن يتمّ إيقاف الأردوينو.
يجب أن نأخذ بعين الاعتبار وجود سطرين و16 عمود ضمن شاشة LCD، لذلك يجب ضبط مواقع المَحَارف باستخدام التّعليمة (Lcd.setCurser(columns,rows.
(“”)Lcd.print : تقوم بطباعة المحرف المكتوب ضمن إشارتي الاقتباس.
إذاً، يوضّح المقطع البرمجيّ السّابق كيفية إظهار كلمة على شاشة LCD، ويمكن تعديلُه حتى يَعرِض الكلمة السّابقة على سطرين، حيث يعرِض الكلمة على السّطر الأول وينتظر لفاصل زمني 500 ميلي ثانية ثم يعرضها على السطر الثاني للـ LCD. التّعديلات موضّحة كما يلي:
الكود البرمجيّ : التحميل من هنا
المصدر: من هنا
ترجمة: سارة خضر , مراجعة: محمد مرتكوش , تدقيق لغوي: رنيم العلي , تصميم: وليد برهوم , تحرير: قحطان غانم