- المواد المطلوبة
- مخطط الرسم البياني
- 128 * 64 شاشة LCD رسومية
- تحويل الصورة إلى كود سداسي عشري:
- كود اردوينو وشرح العمل
هناك أنواع عديدة من شاشات الكريستال السائل المستخدمة في المشاريع الإلكترونية. لقد استخدمنا بالفعل 16X2 LCD في العديد من مشاريعنا واستخدمنا أيضًا شاشة TFT LCD مع Arduino. يمكنك العثور على مشروعنا المرتبط بشاشة 16X2 LCD بالكامل باتباع هذا الرابط ، بما في ذلك التفاعل مع 8051 و AVR و Arduino وغيرها الكثير
و ST9720 الرسومية LCD يختلف تماما عن شاشات الكريستال السائل العادية. يمكن لشاشات الكريستال السائل العادية طباعة نص بسيط أو أرقام فقط ضمن حجم ثابت. لكن في شاشات LCD الرسومية ، لدينا 128 * 64 أي ما يعادل 8192 نقطة أو 8192/8 = 1024 بكسل ، لذلك بصرف النظر عن الحرف ، يمكننا عرض أي صورة رسومية على GLCD هذا.
لقد قمنا بالفعل بتوصيل GLCD بـ 8051 ، واليوم سنقوم بواجهة رسومية LCD مع Arduino لعرض النصوص والصور عليها.
المواد المطلوبة
- اردوينو UNO
- 128 * 64 شاشة LCD رسومية ST9720
- مقياس الجهد - 10 كيلو
- توصيل الأسلاك
- اللوح
مخطط الرسم البياني
128 * 64 شاشة LCD رسومية
تتميز شاشة LCD الرسومية باستهلاك منخفض للطاقة ومناسبة أيضًا لجهاز محمول يعمل بطاقة البطارية. لديها نطاق جهد تشغيل واسع 2.2 فولت إلى 5.5 فولت ويدعم كلاً من الاتصال المتوازي التسلسلي و 8/4 بت ويأتي مع وحدة تحكم / سائق ST7290 LCD. يمكن تبديل وضع اتصال الواجهة بين المتوازي والتسلسلي باستخدام PSB PIN 15. تتمتع شاشة LCD الرسومية هذه بقدرة تلقائية على وظيفة إعادة الضبط ويمكن التحكم فيها بسهولة بواسطة MCU مثل 8051 و AVR و ARM و Arduino و Raspberry Pi.
يمكنك متابعة ورقة البيانات للحصول على معلومات مفصلة حول شاشة LCD الرسومية ST7290 128 * 64
تكوين دبوس
رقم الدبوس |
اسم الدبوس |
وصف |
1 |
Gnd |
محطة أرضية |
2 |
Vcc |
جهد إمداد الدخل (2.7 فولت إلى 5.5 فولت) |
3 |
Vo |
تباين شاشات الكريستال السائل |
4 |
RS |
تسجيل حدد RS = 0: سجل التعليمات RS = 1: سجل البيانات |
5 |
ص / دبليو |
قراءة / كتابة السيطرة |
6 |
ه |
ممكن |
7،8،9،10،11،12،13،14 |
DB0 ، DB1 ، DB2 ، DB3 ، DB4 ، DB5 ، DB6 ، DB7 |
دبابيس البيانات (تستخدم في وضع الاتصال المتوازي 8 / 4bit) |
15 |
PSB |
اختيار الواجهة: منخفض (0) لوضع الاتصال التسلسلي مرتفع (1) لوضع ناقل متوازي 8/4 بت. |
16 |
NC |
غير متصل |
17 |
RST |
إعادة تعيين دبوس |
18 |
صوت |
خرج مضاعف الجهد LCD. VOUT ≦ 7V. |
19 |
BLA |
العرض الإيجابي الخلفية |
20 |
BLK |
العرض السلبي للإضاءة الخلفية |
التطبيقات
- الجهاز الصناعي
- الأنظمة المضمنة
- الأمان
- طبي
- المعدات المحمولة باليد
تحويل الصورة إلى كود سداسي عشري:
لإظهار أي صورة على شاشة LCD الرسومية ، نحتاج إلى رمز HEX لتلك الصورة ، لذلك إليك بعض الخطوات لتحويل الصورة إلى كود HEX. قبل ذلك عليك التأكد من أن حجم الصورة يجب ألا يتجاوز 128 * 64.
الخطوة 1: تقليل حجم الصورة العادية إلى 128 * 64 أو أقل ، وهو ما يمكنك القيام به باستخدام أي برنامج لتحرير الصور مثل MS paint.
كما هو موضح في الصورة أعلاه ، نقوم بتعيين عرض الصورة وارتفاعها على 128 * 64.
الخطوة 2: بعد ذلك تحتاج إلى حفظ الصورة بتنسيق "image_name .bmp ".
حدد التنسيق الموضح في الصورة أعلاه واحفظ الملف لمزيد من المعالجة.
الخطوة 3: بعد حفظها بتنسيق ".bmp" ، تحتاج إلى تحويل الصورة إلى رمز سداسي عشري للطباعة. لهذا ، أستخدم البرنامج المسمى GIMP 2 ، والذي يحول ملف Bmp إلى كود سداسي عشرية.
كما هو موضح في الصورة أعلاه ، فتحنا ملف التنسيق “.bmp” في برنامج GIMP 2.
خطوة 4: بعد تحميل البرنامج، افتح الملف على شكل صورة BMP التي تريد طباعتها ومن ثم حفظ كما في " .xbm " (X نقطية) شكل. بعد حفظه ، افتح هذا الملف باستخدام برنامج Notepad وستحصل على رمز Hex للصورة.
كما هو موضح في الصورة أدناه ، اختر خيار تصدير لحفظ الملف بتنسيق xbm :
حدد التنسيق الموضح في الصورة أدناه وقم بتصدير ملف الصورة.
بعد تصدير الملف ، سوف تحصل على الملف بتنسيق “.xbm”. افتح ملف xbm باستخدام برنامج Notepad وستحصل على رمز HEX كما هو موضح في الصورة أدناه.
كود اردوينو وشرح العمل
لواجهة شاشة LCD الرسومية مع Arduino ، نحتاج أولاً إلى تحديد المكتبة المستخدمة لشاشة LCD الرسومية. لا يحتوي Arduino على هذه المكتبة ، يجب عليك تنزيل هذه المكتبة وتثبيتها من هذا الرابط. ثم يمكنك تضمين المكتبة كما يلي:
# تضمين "U8glib.h"
هنا ، تحدد ' u8g (10) اتصال دبوس RS (تحديد التسجيل) لشاشة LCD الرسومية مع الدبوس العاشر من Arduino UNO. يتم استخدام دبوس RS كـ "تحديد رقاقة" و "تحديد تسجيل" عند استخدامه في الوضع التسلسلي والتوازي على التوالي. لذلك ، نحن نستخدم الوضع التسلسلي وتعيين دبوس RS على High (1) لتمكين الشريحة ومنخفض (0) لتعطيل الشريحة.
U8GLIB_ST7920_128X64_4X u8g (10) ؛
الآن ، لطباعة الصورة ، نحتاج إلى وضع كود Hex للصورة في الكود أدناه. يمكنك طباعة أي صورة أخرى ، كل ما عليك فعله هو لصق الكود السداسي للصورة.
const uint8_t rook_bitmap U8G_PROGMEM = { الصق الكود السداسي للصورة هنا } ؛
تحقق من كود Arduino الكامل في نهاية هذه المقالة.
تُستخدم الوظيفة أدناه لطباعة الصورة ، والأمر المستخدم للطباعة هو "u8g.drawXBMP (x ، y ، عرض الصورة ، ارتفاع الصورة)" . حيث ، X و Y هما موضع البداية للصورة على شاشة LCD ونحتاج أيضًا إلى كتابة حجم الصورة الذي يجب ألا يتجاوز 128 * 64 وفي الوسيطة النهائية قمنا باستدعاء الوظيفة التي وضعنا فيها رمز HEX للصورة.
صورة باطلة (باطلة) {u8g.drawXBMP (0، 0، 128، 64، rook_bitmap) ؛ }
لقد قمنا بعمل وظيفتين تسمى "draw" و "next" ، حيث تتم كتابة كود طباعة المحتوى باستخدام الأمر "u8g.drawStr (x، y،" abcd ")". هنا ، x و y هما الموضعان في شاشة LCD حيث سيتم طباعة المحتوى و " abcd " هو المحتوى المراد طباعته.
رسم باطل (باطل) {u8g.setFont (u8g_font_unifont) ؛ u8g.drawStr (07، 35، "CIRCUIT DIGEST") ؛ } void next (void) {u8g.setFont (u8g_font_unifont) ؛ u8g.drawStr (0، 15، "Interfacing") ؛ u8g.drawStr (0، 35، "شاشة LCD رسومية") ؛ u8g.drawStr (0، 55، "مع Arduino") ؛ }
يتم إجراء وظيفة clearLCD () لمسح شاشة LCD بمجرد إعطاء قيمة فارغة للوظيفة.
clearLCD () باطل {u8g.firstPage () ، افعل {} while (u8g.nextPage ()) ؛ }
إعداد البكسل واللون والشدة باستخدام الكود أدناه
إعداد باطل (باطل) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255) ؛ // white} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3) ؛ // maxensity} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1) ؛ // pixel on} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255،255،255) ؛ }}
في حلقة باطلة لا تزال طباعة النص والصورة بعد تأخير معين. أولاً ، قمنا بطباعة "ملخص الدائرة" باستخدام وظيفة السحب وبعد ثانيتين. بعد التأخير ، قمنا بمسح الشاشة باستخدام وظيفة clearLCD ثم طباعة " واجهة شاشة LCD الرسومية باستخدام Arduino " باستخدام الوظيفة التالية . ثم قمنا بطباعة الصورة باستخدام وظيفة picture () التي ستبقى على الشاشة لمدة 3 ثوانٍ. سيستمر هذا حتى يتم تشغيل مصدر الطاقة.
حلقة باطلة (باطلة) {u8g.firstPage () ، افعل {draw () ؛ } while (u8g.nextPage ()) ؛ تأخير (2000) ؛ clearLCD () ، u8g.firstPage () ، عمله المقبل()؛ } while (u8g.nextPage ()) ؛ تأخير (2000) ؛ clearLCD () ، u8g.firstPage () ، افعل {صورة () ؛ } while (u8g.nextPage ()) ؛ تأخير (3000) ؛ clearLCD () ، تأخير (50) ؛ }
بعد برمجة Arduino باستخدام الكود المحدد ، قم بتوصيل شاشة LCD الرسومية وفقًا لمخطط الدائرة مع Arduino وقم بتزويد Arduino باستخدام محول أو USB. سوف تحصل على محتوى وصورة مطبوعة على شاشة LCD الرسومية ، كما هو موضح في الفيديو أدناه.
تحقق أيضًا من توصيل Nokia 5110 Graphical LCD مع Arduino ،