كيفية ربط شاشة عرض LCD مع الاردوينو
والشاشات LCD مازالت منتشرة بشكل كبير. ويوجد في الاردوينو مكتبة جاهزة سنقوم باستخدامها. وكما سنقوم بشرح كيفية توصيل الشاشة مع الاردوينو، حيث يوجد في هذا النوع من الشاشات 16 منفذ علينا ان نوصلهم بشكل صحيح
الادوات المستخدمة
1-
أردوينو سنستخدم Arduino Duemilanove لكن يمكنك استخدم Arduino Uno في نفس الطريقة يمكنك
طلبها من هنا، كما يمكنك اسخدام اي نوع اخر من الاردوينو متوافق. | |
شاشة عرض LCD 16x2 يوجد في السوق انواع مختلفة من الشاشات، تختلف في عدة الاسطر وعدد الخانات ولون الاضائة، هنا سنسخدم شاشة من 16 خانة وسطرين.
يمكنك طلبها من هنا | |
المعرفة المسبقة
ينبغي عليك قبل الشروع في هذا المثال ان يكون عندك المام في أساسيات الاردوينو وكيفية تحميل برنامج عليها. لا تتطلب الكثير من الخبرة، فقط لو استطعت عمل مشروع برمجي صغير جدا في الاردوينو فيمكنك استعياب هذا المثال بسهولة.
ينبغي عليك قبل الشروع في هذا المثال ان يكون عندك المام في أساسيات الاردوينو وكيفية تحميل برنامج عليها. لا تتطلب الكثير من الخبرة، فقط لو استطعت عمل مشروع برمجي صغير جدا في الاردوينو فيمكنك استعياب هذا المثال بسهولة.
شاشة العرضLCD 16x2
- تستوعب حتى 16 حرف لكل سطر، تحتوي على سطرين
- تحتوي على 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
4-توصيل التيار الكهربائي مع شاشة العرض
المنفذ رقم 1 vss مع الارضي، والمنفذر رقم 2 vdd مع الجهد 5v+ (هذان المنفذان مفصولان عن منفذان اضائة الشاشة)،
يجب اتمام هذه المرحلة قبل الانتقال الى المرحلة الثانية
ثانيا توصيل اسلاك البيانات:-
مراجعت المنافذ(المخارج)
سنشرح منافذ الشاشة وكيفية توصيلها مع الاردوينو
سنشرح منافذ الشاشة وكيفية توصيلها مع الاردوينو
المنفذ RS، يستخدم لتحديد طبيعة البيانات المرسله، هلي هي نص، او اوامر، كأمر تغير مكان المؤشر
المنفذ E لاخبار ان البيانات جاهزة للقرائة
المنفذ E لاخبار ان البيانات جاهزة للقرائة
المنفذ RW لتحديد العملية هل هي عملية قرائة او كتابة، حيث يمكننا قرائة النص من الشاشة، وهذه الميزة قليلة الاستعمال.
المنافذ D0-D7 لارسال البينات"النص" الى الشاشة.
في هذا المثال، سنستخدم فقط 4 منافذ من اجل ارسال البيانات "النص"،مع العلم ان استخدام المخارج الثمانية يزيد من سرعة نقل البيانات، لكن السرعة غير مهمة.
وبما اننا لن نقوم بقرائة المكتوب على الشاشة، سنقوم بتوصيل المنفذ RW مع لارضي(السالب).
منفذ الاردوينو
|
منفذ الشاشة
|
7
|
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);
أشكرك جزيل الشكر أخي على هذه المدونة، أتمنى حقاً أن يثرى المحتوى العربي بمثل هذه المقالات التعليمية!
ردحذففي الموضوع: البرنامج التالي (قمت ببرمجته على Visual Basic) يمكنك من كتابة حرف عربية!
أطمح أن تكون هناك مكتبة للكتابة باللغة العربية مباشرة بحيث أن الـ compiler يقوم بتركيب الحروف تلقائيا
https://github.com/MuazSalah/HD44780_CCG
شكراً
أزال المؤلف هذا التعليق.
ردحذف