فى هذا الدرس سنتعلم كيفية توصيل شاشة LCD عدد أحرفها هو 16 حرف طولى وعدد أسطرها هو سطرين، حيث سيمكننا ذلك من عرض ما نريد وقراءته قيمة أى حساسات مباشرة على شاشة صغيرة بدون الإضطرار لتوصيل شاشة كبيرة للراسبيري باي أو إستخدام جهاز حاسب آخر لعرض ما نريد.
المواد والأدوات
أسلاك توصيل Female / Female jumper
أسلاك توصيل Female / Male jumper
توصيل الدائرة
نقوم بلحام الـ Pin Header المرفق مع الشاشة كالتالى.
نقوم بتوصيل الدائرة كما فى الصورة التالية ومن الممكن أن نقوم بتوصيلها بإستخدام لوحة التجارب الـ breadboard
الكود البرمجي
في البداية نقوم بفتح الـ Terminal الخاص ب الراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذة الـ SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحه في الدرس الخامس.
في البداية يجب ان نقوم بتحميل ملفات مكتبة التحكم فى الشاشة والمعدة مسبقاً من Adafruit من خلال الأمر التالي.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git
نقوم بعمل تنصيب للمكتبة من خلال الأوامر التالية.
cd ./Adafruit_Python_CharLCD sudo python setup.py install
سنقوم الآن بكتابة كود بسيط لتوضيح كيفية إستخدام المكتبة والتحكم فى الشاشة، عن طريق سطر أوامر لينكس Terminal نقوم بكتابة الأمر التالي لفتح ملف جديد وكتابة كود بلغة الـ Python به.
sudo nano ~/Adafruit_Python_CharLCD/Adafruit_CharLCD/GeeksValley_LCD.py
ثم نقوم بكتابة الأسطر البرمجية التالية لطباعة نص يتم ادخاله من قبلنا و بعدها يتم طباعة عبارة (Goodbye World) لمدة 5 ثواني
#!/usr/bin/python # Example using a character LCD connected to a Raspberry Pi import time import Adafruit_CharLCD as LCD # Raspberry Pi pin setup lcd_rs = 27 lcd_en = 22 lcd_d4 = 25 lcd_d5 = 24 lcd_d6 = 23 lcd_d7 = 18 # Define LCD column and row size for 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows) lcd.message('Hello\nworld!') # Wait 5 seconds time.sleep(5.0) lcd.clear() text = raw_input("Type Something to be displayed: ") lcd.message(text) # Wait 5 seconds time.sleep(5.0) lcd.clear() lcd.message('Goodbye\nWorld!') time.sleep(5.0) lcd.clear()
البرنامج السابق هو برنامج بسيط جداً حيث تم تعريف الأرجل التى تم توصيل الـ LCD بها ويمكنك تغير هذه الأرجل كما تشاء، ثم تم تعريف عدد الأسطر والصفوف فى الشاشة، ثم بعد ذلك تم تمرير هذه المتغيرات للمكتبة عن طريق الأمر LCD.Adafruit_CharLCD.
sudo python ~/Adafruit_Python_CharLCD/Adafruit_CharLCD/GeeksValley_LCD.py
يقوم البرنامج السابق بمجرد تشغيله بعرض كلمة Hello World لمدة 5 ثوانى .
- بعد ذلك يقوم بعرض رسالة من خلال سطر الأوامر ويطلب منك أن تقوم بكتابة جملة ما لتعرض على الشاشة مثل Geeks Valley وبمجرد الضغط على Enter سنلاحظ أن تم طباعة جملة Geeks Valley على الشاشة لمدة 5 ثوانى.
بعد ذلك يقوم البرنامج بطباعة جملة Goodbye World على الشاشة لمدة خمس ثوانى أخرى.
ثم بعد ذلك يقوم البرنامج بمسح الشاشة وتركها خالية.
هناك الكتير من الأوامر الخاصة بهذه المكتبة وهذه المجموعة من أهمها.
home()– يقوم هذا الأمر بتحريك نقطة الكتابة لأول الشاشة
clear()– يقوم بمسح كل ما هو مكتوب على الشاشة
set_cursor(col, row)– يقوم هذا الأمر بتحديد نقطة الكتابة على الشاشة وذلك بتحديد رقم العمود col وكذلك رقم السطر row
show_cursor(show)– يقوم بعرض نقطة الكتابة على الشاشة
blink(blink)– يقوم بومض نقطة الكتابة على الشاشة
move_left()or move_right() – يقوم بتحريك نقطة الكتابة على الشاشة يميناً ويساراً
set_right_to_left()or set_left_to_right() – يقوم بتغيير إتجاه الكتابة من اليمين لليسار ومن اليسار لليمين
message(text)– ببساطة نقوم بكتابة النص المراد عرضه على الشاشة