الخميس، 13 ديسمبر 2012

ربط الاردوينو مع شاشة arduino with lcd

كيفية ربط شاشة عرض LCD مع الاردوينو
الاردوينو اصبح الاول في مجال المتحكمات الدقيقة، ويرجع الى اسباب كثيرة منها سعره الرخيص، وانه مفتوح المصدر بشكل كامل، وهناك مجتمعات كبيرة على النت ترفع يوميات العشرات من المشاريع فر لغات مختلفة، ونحن هنا نحاول ان نشرح عن كيفية استخدامها.

والشاشات LCD مازالت منتشرة بشكل كبير. ويوجد في الاردوينو مكتبة جاهزة سنقوم باستخدامها. وكما سنقوم بشرح كيفية توصيل الشاشة مع الاردوينو، حيث يوجد في هذا النوع من الشاشات 16 منفذ علينا ان نوصلهم بشكل صحيح










الادوات المستخدمة
1-

أردوينو   سنستخدم Arduino Duemilanove لكن يمكنك استخدم Arduino Uno في نفس الطريقة يمكنك
طلبها من هنا، كما يمكنك اسخدام اي نوع اخر من الاردوينو متوافق.




شاشة عرض LCD 16x2 يوجد في السوق انواع مختلفة من الشاشات، تختلف في عدة الاسطر وعدد الخانات ولون الاضائة، هنا سنسخدم شاشة من 16 خانة وسطرين.
يمكنك طلبها من هنا 

مقاومة متغيرة 10ك 10K linear potentiometer
هذا كالمستخدم في اجهزة الراديو او التحكم في الصوت، وهو عبارة عن مفتاح من خلاله تتحكم في قيمة المقاومة. يمكنك ايجاده من السوق المحلي بسهولة


رؤوس توصيل (fish boons). في حال لم تكن موجود في الشاشة


المعرفة المسبقة
ينبغي عليك قبل الشروع في هذا المثال ان يكون عندك المام في أساسيات الاردوينو وكيفية تحميل برنامج عليها. لا تتطلب الكثير من الخبرة، فقط لو استطعت عمل مشروع برمجي صغير جدا في الاردوينو فيمكنك استعياب هذا المثال بسهولة.


شاشة العرضLCD 16x2
  1. تستوعب حتى 16 حرف لكل سطر، تحتوي على سطرين
  2. تحتوي على 16 مخرج(pin)  للتوصيل،

رقم المخرج
الرمز
الوظيفة
E
1
VSS
الارضي (السالب)
     Display power ground
2
VCC(VDD)
الجهد (5فولت)
     Display power +5V
3
VEE
التحكم في قوة اضائةالشاشة
Contrast Adjust. Altered by adjusting the voltage to this pin, grounding it sets it to maximum contrast
4
RS
لاخبار الشاشة اننا سنرسل نص، او امر
lets the microcontroller tell the LCD whether it wants to display that data (as in, an ASCII character) or whether it is a command byte
5
R/W
لاختيار وضع القراءة او الكتابة، في الغالب نستخدم الشاشة لاظهار البيانات عليها، مع العلم أننا نستطيع القراءة منها.
Data read/write selector
6
E
بدئ التخزين
Enable stroe
7
DB0
لنقل النص
8
DB1
لنقل النص
9
DB2
لنقل النص
10
DB3
لنقل النص
11
DB4
لنقل النص
12
DB5
لنقل النص
لنقل النص
13
DB6
لنقل النص
14
DB7
لنقل النص
15
LED+
اضائة الشاشة جهد 5 فولت
LED backlight power +5V
16
LED -
اضائة الشاشة الارضي (السالب)
LED backlight power ground



لنبداأولا:- تشغيل اضاءة  الشاشة:-
1-قم بتركيب منافذ الشاشة مع الرؤس كما في الشكل. عادتا تكون منافذ الشاشة غير ملحومة، علينا ايصالها في هذه الرؤوس، والقيام بعملية اللحام.


2- تزويد الشاشة بطاقة كهربائية
 وذلك بتوصيل +5v مع منفذ 15 LED+  للشاشة، والارضي مع المنفذ 16 LED- (هذان المنفذان لاضاءة الشاشة) ستضيئ الشاشة بمجرد توصيلهم،

3- توصيل potentiometer
حيث يتم المنتصف مع المنفذ رقم3 V0، وطرفيه مع الجهد كما في الشكل


4-توصيل التيار الكهربائي مع شاشة العرض
 المنفذ رقم 1 vss مع الارضي، والمنفذر رقم 2 vdd مع الجهد 5v+ (هذان المنفذان مفصولان عن منفذان اضائة الشاشة)،



5- قم بتغير الpotentiometer حتى ترى السطر الاول من الشاشة



يجب اتمام هذه المرحلة قبل الانتقال الى المرحلة الثانية


ثانيا توصيل اسلاك البيانات:-

مراجعت المنافذ(المخارج)
سنشرح منافذ الشاشة وكيفية توصيلها مع الاردوينو

 المنفذ RS، يستخدم لتحديد طبيعة البيانات المرسله، هلي هي نص، او اوامر، كأمر تغير مكان المؤشر
المنفذ E   لاخبار ان البيانات جاهزة للقرائة
المنفذ RW لتحديد العملية هل هي عملية قرائة او كتابة، حيث يمكننا قرائة النص من الشاشة، وهذه الميزة قليلة الاستعمال.
المنافذ D0-D7 لارسال البينات"النص" الى الشاشة.

في هذا المثال، سنستخدم فقط 4 منافذ من اجل ارسال البيانات "النص"،مع العلم ان استخدام المخارج الثمانية يزيد من سرعة نقل البيانات، لكن السرعة غير مهمة.

وبما اننا لن نقوم بقرائة المكتوب على الشاشة، سنقوم بتوصيل المنفذ RW مع لارضي(السالب).

ستتصل المنافذ RS, E, D4,D5,D6,D7 مع الاردوينو كما في الجدول 

منفذ الاردوينو        
 منفذ  الشاشة
RS
8
E
9
D4
10
D5
11
D6
12
D7

مراجعة نهائية لمخارج الشاشة

المخرج       
متصل مع
VSS
الارضي(السالب)
VDD
الجهد (5 فولت)
VEE
مع المتحكم بالجهد
RS
الاردينو مخرج7
R/w
الارضي (السالب)
E
الاردوينو مخرج 8
D4
الاردوينو مخرج9
D5
الاردوينو مخرج 10
D6
الاردوينو مخرج 11
D7
الاردوينو مخرج 12
LED+
الجهد (5فولت)
LED-
الارضي(السالب)


ثالثا البرمجة
يوجد في الاردينو مكتبة جاهزة، فلن تحتاج الى ارسال الاوامر، فقط ستسدعي المكاتب اللازمة كما في المثال التالي
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.  lcd.print("h");
  lcd.print("Hello World....!");
}
void loop() {

          lcd.setCursor(0, 1);
        // print the number of seconds since reset:
  lcd.print(millis() /1000);
}





هناك تعليقان (2):

  1. أشكرك جزيل الشكر أخي على هذه المدونة، أتمنى حقاً أن يثرى المحتوى العربي بمثل هذه المقالات التعليمية!

    في الموضوع: البرنامج التالي (قمت ببرمجته على Visual Basic) يمكنك من كتابة حرف عربية!

    أطمح أن تكون هناك مكتبة للكتابة باللغة العربية مباشرة بحيث أن الـ compiler يقوم بتركيب الحروف تلقائيا

    https://github.com/MuazSalah/HD44780_CCG

    شكراً

    ردحذف
  2. أزال المؤلف هذا التعليق.

    ردحذف