الشاشة الكريستالية 1602 Liquid crystal
هذا النوع من الشاشات الكريستالية هو الأشهر و الأكثر انتشارا بين هواة الالكترونيات و في المشاريع الإلكترونية , نظراً لتوفرها بسعر زهيد و سهولة برمجتها .
و قبل البدء بالحديث عن الشاشات الكريستالية , نقاط مهمة
تساعدك على أختيار الشاشة المناسبة لمشروعك ألا و هي :
1) أبعاد الشاشة
2) نوع المتحكم المدمج معها .
3) التطبيق الذي تحتاجه من الشاشة " وجود الألوان , إظهار الصور و المؤثرات الحركية , الكتابة بخطوط مختلفة , ألخ من التطبيقات "
ما سنتحدث عنها اليوم هي الشاشة الكريستالية LCD1602 التي تحتوي على سطرين و 16 عموداً , و التي تعتمد في تشغيلها على المتحكم Hitachi HD44780 driver و التي يمكن تملك ناقل خط Data bus 8 bit .
سنلقي نظرة بداية على هذا النوع و عن كيفية توصيله و برمجته و عرض النصوص و البيانات و الأرقام على هذه الشاشه .
لحسن الحظ هناك مكتبة مثبتة في لغة أردوينو تدعم هذه الشاشات , إضافة لكم هائل من المكتبات الخاصة التي قام المهتمون بالبرمجة بإضافتها على موقع أردوينو الرسمي لتناسب الأنواع المختلفة من الشاشات .
البنية العامة للشاشة الكريستالية :
للشاشات الكريستالية نظام اتصال على التوازي و يبين الرسم التالي التوزيع للمرابط الخاصة بهذه الشاشة :
سنتحدث بشكل مبسط و مختصر عن كل مربط و وظيفته ...
RS اختيار المسجل : هذا المربط يحدد لنا في أي ذاكرة نحن نكتب البيانات ! يتم الأختيار ما بين مسجل البيانات , أو مسجل التعليمات
R/W خيار القراءة أو الكتابة , هذا المربط يحدد إما أختيار وضعية القراءة أو الكتابة .
enable pin يسمح هذا المربط في حال تفعيله بالكتابة للمسجلات الخاصة بالشاشة الكريستالية .
data pin (D0-D7) : هي المرابط التي نمرر البيانات عبرها للمسجلات .
هناك ايضاً مرابط للتغذية و التأريض و للأضاءة الخلفية الداخلية .
هذه لمحة عامة عن المرابط الخاصة بهذه الشاشة , سنتكلم عن توصيل هذه الشاشة مع بطاقة الأردوينو .
سنوصل المرابط كالتالي :
LCD RS ……..D12
LCD Enable …….D11
LCD D4 ……D5
LCD D5……D4
LCD D6……D3
LCD D7……D2
و التوصيل كما في الصورة ....
و أيضا سنوصل الرجل رقم 15 مع مصدر التغذية الموجب و الرجل رقم 16 مع السالب في حال أردنا تشغيل الإضاءة الداخلية .
المكتبة الاساسية الخاصة بالشاشات الكريستالية :
يجب عليك الإلمام بهذه المكتبة لأنها تمكنك من التعامل مع اغلب الشاشات الكريستالية .
أوامرها سهلة و بسيطة و يمكنك الإطلاع عليها هنا .
سنقوم بداية بكتابة عدة برامج للإلمام بأكبر قدر من الأوامر و التطبيقات .
عند كتابة البرنامج , نقوم بتعريف المداخل المربوطة مع الشاشة باستخدام الأمر LiquidCrystal
و يكتب على الصورة التالية :
و تكتب المرابط المربوطة بالشاشة بأكثر من صيغة , و أكثر الصيغ استعمالاً هي :
و يجب أن لا ننسى أن نقوم بتهيئة الشاشة للبدء باستخدامها بواسطة الأمر
حيث نقوم بكتابة ابعاد الشاشة المستخدمة عن طريق هذا الأمر .
في حالتنا هذه تكتب الشاشة بالصيغة :
هذان الأمران هما أهم أمرين يجب كتابتهما في جملة التثبيت void setup
البرنامج الأول : برنامج لطباعة جملة Hello world! الشهيرة .
البرنامج الأول سيبين لنا كيفية إظهار الكلمات على الشاشة .
// this simple program taken from :
//This example code is in the public domain.
//http://www.arduino.cc/en/Tutorial/LiquidCrystal
//modified by Mohannad Rawashdeh
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
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(){}
حسناً لنأخذ هذا المثال , ستحتاج فقط لمقاومة متغيرة مربوطة مع المدخل A0 من الأردوينو للتحكم بسرعة تحرك النص .#include <LiquidCrystal.h>
int t=300;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int y =1;
void setup()
{
lcd.begin(16, 2);
lcd.cursor();
lcd.autoscroll();
}
char Phone[]={"0786739233"};
char Name[]={"Mohannad Rawashdeh "};
char Email[]={"Genotronex@Gmail.com "};
void timing_delay(){
int A=analogRead(A0);
delay(5);
t=map(A,0,1023,30,1000);
t= constrain(A, 30, 1000);
}
void loop(){
timing_delay();
lcd.setCursor(15, 0);
for (int i=0;i<20;i++){
lcd.print(Name[i]);
timing_delay();
delay(t);
}
lcd.clear();
lcd.setCursor(15, 0);
for (int i=0;i<21;i++){
lcd.print(Email[i]);
timing_delay();
delay(t);
}
lcd.clear();
lcd.setCursor(15, 0);
for (int i=0;i<11;i++){
lcd.print(Phone[i]);
timing_delay();
delay(t);
}
delay(2000);
lcd.clear();
}
و في الختام , هذا الفيديو للبرنامج الأخير الذي كتبناه , تحياتي