كان من المفترض أن يشتري الاسم الأيقوني " Nokia 5110 " ذكريات هاتف Nokia المحمول القوي الذي كان شائعًا للغاية خلال التسعينيات. جاء الطراز 5110 مزودًا بشاشة عرض رسومية كانت كافية لتكون بمثابة شاشة عرض للجوال في ذلك الوقت. كانت هذه الشاشة قادرة على عرض كل شيء من الأحرف الأبجدية الرقمية إلى الرسومات الصغيرة التي هي كل ما هو مطلوب للهاتف المحمول. نظرًا لأن الأرض تدور حول تقنيات جديدة مع ظهور شاشات لمس لامعة ولم تعد هذه الشاشة قيد الاستخدام. ولكن نأمل أن يتم استخدامها في التطبيقات الإلكترونية حيث يجب عرض رسومات صغيرة وتجنب إنفاق الأموال على شاشات LCD الكبيرة. لذلك في هذا البرنامج التعليمي سوف نتعلم كيفية توصيل شاشة LCD الرسومية Nokia 5110 مع Arduino وتشغيلها.
تحتوي شاشات الكريستال السائل هذه على وحدات بكسل بالأبيض والأسود بأبعاد 84 × 48. قد تبدو رتيبة ولكن لا يزال من الممكن استخدامها لعرض رسومات لائقة لمشاريعك ويمكن استخدامها بسهولة مع وحدات التحكم الدقيقة مثل Arduino. اذا هيا بنا نبدأ….!
المواد المطلوبة:
- لوحة اردوينو (أي إصدار)
- شاشة نوكيا 5110
- توصيل الأسلاك
وحدة العرض الرسومية Nokia 5110:
هناك نوعان من شاشات LCD الرسومية المتوفرة في السوق. واحد مع منصات اللحام أعلى وأسفل الشاشة والآخر مع منصات لحام فقط في الجزء السفلي من الشاشة. الشخص الذي نستخدمه ينتمي إلى النوع 2 ، حيث توجد وسادات فقط أسفل الشاشة. تعمل كلتا الوحدتين بنفس الطريقة ، وبالتالي فإن التوصيلات هي نفسها لكليهما. وبغض النظر عن الوحدة ، يمكنك اتباع البرنامج التعليمي.
كما ذكرنا سابقًا ، يحتوي Nokia 5110 Graphical LCD على 84 بكسل أفقيًا و 48 بكسل في وضع عمودي. الحجم الإجمالي للشاشة 1.72 × 1.72 بوصة. تحتوي الوحدة على 6 دبابيس إدخال يمكننا بواسطتها توصيلها بأي متحكم من خلال اتصال SPI. IC البيني الذي يتصل بين الشاشة و Arduino هو وحدة التحكم في العرض Philips PCD8544 IC التي يمكن العثور على ورقة البيانات الخاصة بها هنا. ومع ذلك ، إذا كنت تستخدم Arduino للتواصل مع هذا IC ، فلا داعي للقلق بشأن ورقة البيانات نظرًا لوجود مكتبات جاهزة للتنزيل والاستخدام. الوحدة التي نستخدمها هنا موضحة أدناه.
مخطط الرسم البياني:
فيما يلي مخطط الدائرة الكاملة لتوصيل شاشة LCD الرسومية Nokia5110 مع Arduino.
تحتوي وحدة العرض على 8 دبابيس تُستخدم لإعداد اتصال SPI مع Arduino. يتم تشغيل الوحدة باستخدام دبوس 3.3 فولت من لوحة Arduino. لاحظ أن هذه الوحدات تعمل على منطق 3.3 فولت وبالتالي لا توفر 5 فولت إلى دبوس Vcc لشاشات العرض. لقد قمت بتوصيل دبوس العرض مباشرة إلى Arduino ، على الرغم من أن شاشة LCD تعمل على منطق 3.3V و Arduino على منطق 5V لأنني وجدت شاشة LCD تعمل بشكل صحيح عندها فقط يمكنك استخدام مقسم الجهد لتحويل 5V إلى 3.3V إذا لزم الأمر ، لكنه يعمل فقط بدون التحويل المنطقي. الاتصالات بسيطة جدًا ومباشرة. بمجرد الانتهاء من الاتصالات ، سيبدو إعدادك مثل هذا الموضح أدناه.
برنامج Arduino والعمل:
اتبع الخطوات التالية لبرمجة Arduino الخاص بك على شاشة Nokia 5110. تفترض الخطوات أنك قمت بالفعل بتثبيت Arduino IDE وعلى دراية باستخدامه.
الخطوة 1: افتح Arduino IDE على جهاز الكمبيوتر الخاص بك وحدد اللوحة المناسبة ضمن قائمة الأدوات بعد توصيل Arduino بجهاز الكمبيوتر الخاص بك.
الخطوة 2: انقر هنا لتنزيل Nokia 5110 Display Library بواسطة مكتبة Adafruit من مستودع GitHub.
الخطوة 3: بمجرد تنزيل ملف Zip ، حدد Sketch -> Include Library -> إضافة مكتبة ZIP واستعرض الموقع الذي تم تنزيل ملف ZIP فيه.
ملاحظة: سيتعين عليك أيضًا تنزيل Adafruit GFX Graphics core الذي يقوم بجميع الدوائر والنصوص والمستطيلات وما إلى ذلك. يمكنك الحصول عليه من https://github.com/adafruit/Adafruit-GFX-Library وتثبيته بنفس الطريقة.
الخطوة 4: الآن افتح مثال البرنامج عن طريق تحديد ملف -> أمثلة -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest وانقر على زر التحميل
الخطوة 5: بمجرد تحميل البرنامج ، اضغط على زر إعادة الضبط في Arduino وسترى مثال البرنامج الذي يعرض جميع الرسوم المتحركة كما هو موضح في الفيديو المقدم في نهاية هذا البرنامج التعليمي.
يمكنك قراءة البرنامج النموذجي لفهم الوظائف المضمنة المتنوعة التي يمكن استخدامها لتنفيذ تصميمات رسومات متنوعة على شاشة LCD. لكن دعونا نذهب خطوة أخرى إلى الأمام ونحاول عرض شعار CircuitDigest على شاشة LCD.
افتح الآن الصورة المطلوبة في الرسام وقم بتغيير حجم الصورة. أقصى حجم للصورة يمكننا استخدامه لشاشاتنا هو 84 × 48.
بعد تغيير حجم الصورة ، احفظ الصورة على هيئة نقطية (أبيض وأسود) باستخدام خيار الحفظ في الرسام. لعرض الصورة كصورة نقطية على شاشة LCD الخاصة بنا ، سنحتاج إلى برنامج يمكنه تحويل الصورة النقطية إلى رمز. يمكنك تنزيل البرنامج بالضغط هنا. بمجرد التنزيل ، قم بفك ضغط الملف وانقر فوق "BitmapEncoder" لبدء تشغيل التطبيق. افتح الصورة النقطية التي حفظناها للتو باستخدام هذا البرنامج للحصول على مجموعة من القيم المشفرة. يمكنك نسخ هذه القيم مباشرة ولصقها في صفيف Arduino الخاص بك. القيمة الموضحة بواسطة البرنامج لشعارنا موضحة أدناه
كما ترى تبدأ المصفوفة بالقيمة 48 ، 48 هذا هو حجم صورتنا. لا ينبغي أن نضيف هذا في مجموعتنا. لذلك ، قم بإزالة القيمتين الأوليين واستخدم الباقي كقيمة صفيف في البرنامج. سوف تبدو المصفوفة أدناه. و يعطى البرنامج الكامل في نهاية هذه الصفحة للرجوع اليها.
ثابت const غير موقعة char PROGMEM Logo = {B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00001111 ، B11111000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00001111 ، B110000 ، B00000000 ، B00000000 ، B110000 ، B00000000 ، B00000000 ، B110000 ، B00000000 ، B00000000 ، B110000 ، B0000000 B11111111 ، B11000000 ، B00000000 ، B00000000 ، B00001110 ، B00111110 ، B00111111 ، B11110000 ، B00000000 ، B00000000 ، B00111110 ، B00111110 ، B10000000 ، B01111100 ، B00000000 ، B00000000 ، B0110000 ، B01111100 ، B11100000 ، B110000 ، B01111100 ، B11100000 ، B110000 ، B01111100 ، B11100000 ، B00001111 ، B00000000 ، B00000001 ، B11111000 ، B11111111 ، B00111111 ، B10000111 ، B10000000 ، B00000011 ، B11111000 ، B11111111 ، B11111111 ، B11000011 ، B11000000 ، B00000111 ، B11110001 ، B111100011 ، B11001 ، B111000 ، B11000 B01100000 ، B00000000 ، B00000011 ، B11100000 ، B00001001 ، B11111100 ، B00000000 ، B00000000 ، B00000111 ،B11100000 ، B00011001 ، B11111110 ، B00000000 ، B00000000 ، B00000111 ، B11000000 ، B00000001 ، B11111111 ، B10000000 ، B00011111 ، B11111111 ، B11000111 ، B11100011 ، B11111111 ، B11111000 ، B00111111 ، B111100 ، B111100 ، B111111 ، B111111 B11111111، B11111111، B11111100، B00111111، B11111111، B00011111، B11111111، B11111111، B11111100، B00111111، B11111110، B00111111، B00111111، B11111111، B11111110، B01111111، B11111110، B00111110، B00000000، B01111111، B11111100، B01111111، B11111100، B01111100، B11000000، B00000000 ، B00000000 ، B01111111 ، B11111100 ، B01111110 ، B10000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B11111110 ، B00111111 ، B11111111 ، B11111110 ، B00000000 ، B00000001 ، B111111 ، B11111111 ، B1111 ، B1111 ، B11111111 ، B1111 B11111110 ، B01111111 ، B11111111 ، B11111111 ، B11111111 ، B11111111 ، B11111110 ، B01111111 ، B11111111 ،B11000111 ، B11111111 ، B11111111 ، B11111110 ، B00111111 ، B11111111 ، B10000011 ، B11111110 ، B00000000 ، B00000000 ، B00111111 ، B11111111 ، B10110011 ، B11111000 ، B00000000 ، B00000000 ، B100111111 ، B1100000000 ، B100111111 ، B110000 ، B00000000 ، B100111111 ، B1100000000 ، B100111111 ، B110000 B10000001 ، B11111111 ، B11111100 ، B00000000 ، B00011111 ، B11111000 ، B00000111 ، B11111111 ، B11111000 ، B00000000 ، B00000111 ، B11111110 ، B00011111 ، B11111111 ، B11111000 ، B00000000 ، B1100001 ، B1111000 ، B00000000 ، B110000111 ، B1111000 B11111111 ، B11110000 ، B00000111 ، B11111000 ، B00001111 ، B11111111 ، B11000000 ، B00000000 ، B00000011 ، B11111100 ، B00100111 ، B11111111 ، B00000000 ، B00000000 ، B00000011 ، B11111111 ، B00000000 ، B10010111 ، B11111100 ، B00000000 ، B1110111 ، B11111100 B10000000 ، B00000000 ، B11111111 ، B11001111 ، B10000000 ، B11111111 ، B00000000 ، B00000000 ، B01111111 ،B11111111 ، B10110001 ، B11111110 ، B00000000 ، B00000000 ، B00011111 ، B11111111 ، B10110111 ، B11111100 ، B00000000 ، B00000000 ، B00001111 ، B11111111 ، B10000111 ، B11110000 ، B00000000 ، B00000000 ، B110011 ، B110000 ، B00000000 ، B110011 ، B110000 ، B00000000 ، B110011 ، B110000 B11111111 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00001111 ، B11110000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000 ، B00000000} ؛
الآن لعرض هذه الصورة النقطية ، يتعين علينا استخدام سطور التعليمات البرمجية التالية. حيث يتم مسح البيانات السابقة على الشاشة وكتابة الصورة النقطية الجديدة.
display.clearDisplay () ، display.drawBitmap (20 ، 0 ، الشعار ، 48 ، 48 ، 1) ؛ display.display () ،
عرض الخط. DrawBitmap (20 ، 0 ، الشعار ، 48 ، 48 ، 1) ؛ عرض موضع وحجم ولون الصورة النقطية. يمكن إعطاء النحو كما.
display.drawBitmap (X_Position، Y_Position، Name of Array، طول الصورة، اتساع الصورة) ؛
يمكن الحصول على طول وعرض الصورة من أول عنصرين من المصفوفة على التوالي كما قيل سابقًا. عند تشغيل هذا الرمز ، سنحصل على الصورة النقطية معروضة على شاشة LCD كما هو موضح أدناه.
يمكنك أيضًا عرض نص بسيط كما هو موضح أدناه:
آمل أن تكون قد فهمت البرنامج التعليمي وحصلت على هاتف Nokia 5110 LCD الخاص بك مع Arduino. باستخدام هذه الشاشة الرسومية الموجودة في جعبتك ، يمكنك إنشاء العديد من المشاريع التي تتطلب تفاصيل رسومات بسيطة. يمكن العثور على العمل الكامل في الفيديو أدناه. إذا واجهت أي مشكلة في جعل هذا يعمل ، يمكنك استخدام المنتدى لنشر مشكلتك أو أقسام التعليقات أدناه.