أصبحت شاشة OLED خيارًا شائعًا للدمج في مشاريع Arduino، ويرجع ذلك أساسًا إلى أنها صغيرة الحجم، ولديها استهلاك منخفض للطاقة، وتسمح برؤية استثنائية حتى في البيئات الساطعة. علاوة على ذلك، وبفضل اتصاله السهل، أصبح استخدامه في متناول أي متحمس للإلكترونيات، بغض النظر عن خبرته. في هذه المقالة، سنلقي نظرة متعمقة على كيفية توصيل وبرمجة شاشة OLED مقاس 0.96 بوصة مع Arduino، مع تفصيل الجوانب الفنية وتقديم أمثلة عملية على التعليمات البرمجية.
إذا لم يسبق لك التعامل مع شاشة OLED، فهناك بعض النقاط الأساسية التي يجب أن تعرفها قبل بدء مشروعك. تتميز شاشات OLED (الصمام الثنائي الباعث للضوء العضوي) باختلافات جوهرية مع الأنواع الأخرى من الشاشات مثل شاشات LCD. على سبيل المثال، لا يتطلب OLED الإضاءة الخلفية، مما يقلل بشكل كبير من استهلاك الطاقة. على الشاشات الصغيرة التي يصل حجمها إلى 0.96 بوصة، قد يكون ذلك ضروريًا إذا كان المشروع يعمل بالبطارية. الآن دعونا نتعمق في ميزاته.
ما هي شاشة OLED؟
شاشة OLED هي نوع من شاشات العرض التي تستخدم مركبًا عضويًا ينبعث منه الضوء عند تطبيق تيار كهربائي. وهذا يجعلها مثالية للعديد من مشاريع الإلكترونيات، حيث تسمح تقنيتها لكل بكسل بالإضاءة بمفردها، مما يؤدي أيضًا إلى تحسين الرؤية الخارجية. تحتوي معظم شاشات OLED المسوقة لـ Arduino على وحدة تحكم SSD1306، والتي تسمح بإدارة إرسال الإشارات إلى الشاشة. في الواقع، يعد SSD1306 أحد أكثر المشاريع شيوعًا في مشاريع Arduino، وسنراه في الأمثلة لاحقًا.
من المزايا الرئيسية لشاشات OLED هو استهلاكها المنخفض. في المتوسط، يمكن لشاشة صغيرة مقاس 0.96 بوصة أن تستهلك حوالي 20 مللي أمبير. لماذا هذا مهم؟ حسنًا، إذا كنت تستخدم بطارية لتشغيل مشروع Arduino الخاص بك، فإن تقليل استهلاك الطاقة يعد دائمًا ميزة إضافية مهمة. بالإضافة إلى ذلك، يمكن أن تمثل دقتها البالغة 128 × 64 بكسل صورًا ذات وضوح جيد جدًا بالنظر إلى حجمها.
من ناحية أخرى، إحدى المشاكل التي يمكن أن تنشأ مع هذا النوع من الشاشات هو أن حجمها صغير حقًا. على الرغم من أنها توفر رؤية جيدة، إلا أنه في بعض المشاريع التي تتطلب عرض الكثير من المعلومات، قد يكون هذا الحجم غير كافٍ.
توصيل شاشة OLED بالاردوينو
تتصل شاشة OLED بسهولة بلوحة Arduino باستخدام ناقل I2C أو SPI، حسب الطراز. في هذا البرنامج التعليمي، سنركز على الاتصال باستخدام I2C، نظرًا لأنه أحد أكثر الطرق شيوعًا وأبسطها.
يجب عليك توصيل أطراف شاشة OLED مع الأطراف المقابلة لاردوينو الخاص بك كما يلي:
- GND (الأرضي) مع دبوس Arduino GND
- VCC مع طرف 5V أو 3.3V من Arduino
- SDA إلى اردوينو دبوس A4
- SCL لتثبيت A5 من Arduino
كما ترون، الاتصال بسيط للغاية: تحتاج فقط إلى أربعة كابلات. بعد ذلك، سواء كنت تستخدم ناقل SPI أو I2C، تكون عملية الاتصال متشابهة، على الرغم من أن الدبابيس تختلف حسب نوع الاتصال الذي تختاره.
مثال التعليمات البرمجية لشاشة OLED
لجعل شاشة OLED تعمل مع Arduino، أحد أفضل الخيارات هو استخدام المكتبات التي طورتها Adafruit. وحدة التحكم SSD1306 كما ذكرنا من قبل متوافقة مع المكتبة ادافروت SSD1306مما يجعل حياتنا أسهل عند إنشاء الرسومات والنصوص على الشاشة.
أترك لك أدناه رمزًا أساسيًا يسمح لك بعرض النص على شاشة OLED مع اتصال I2C:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println(F("Hola, Mundo!"));
display.display();
}
void loop() {}
يقوم هذا الرمز بتهيئة الشاشة ومسح الشاشة ثم يكتب "Hello, World!" على شاشة OLED. يمكنك استخدام وظائف مختلفة لمكتبة Adafruit GFX لإنشاء رسوم بيانية أو رسم خطوط أو دوائر أو حتى عرض الصور على الشاشة.
أمثلة أخرى مفيدة لشاشة OLED
المثال أعلاه هو مجرد مقدمة أساسية، ولكن يمكنك فعل الكثير باستخدام شاشات OLED. على سبيل المثال، يمكنك رسم أشكال هندسية مختلفة، أو إنشاء رسوم متحركة، أو حتى إنشاء رسومات صغيرة.
إحدى الميزات الأكثر إثارة للاهتمام التي تقدمها مكتبات Adafruit هي القدرة على رسم وحدات بكسل متعددة، مما يعني أنه يمكنك إنشاء رسوم متحركة قابلة للتمرير. مثال إضافي هو تمرير النص، وهو أمر مفيد جدًا إذا كنت تخطط لعرض الرسائل التي تتغير ديناميكيًا.
الاستخدام الآخر الذي يمكنك تقديمه لهذه الشاشات هو عرض البيانات في الوقت الفعلي في المشاريع التفاعلية، مثل مستشعر درجة الحرارة أو الرطوبة. يمكن تحديث الشاشة عند الحصول على قراءات جديدة للمستشعر، مما يجعل أي مشروع أكثر وضوحًا.
المشاكل الشائعة عند استخدام شاشات OLED
إحدى المشاكل الأكثر شيوعًا عند استخدام شاشات OLED مع Arduino هي نقص الذاكرة. مكتبات Adafruit، على الرغم من أنها كاملة جدًا، إلا أنها يمكن أن تستهلك قدرًا كبيرًا من الذاكرة على معالج Arduino، خاصة في إصدارات مثل Arduino Uno. إذا كانت لديك مشاكل في المساحة، يمكنك محاولة تحسين التعليمات البرمجية الخاصة بك، أو إزالة الوظائف التي لا تحتاج إليها، أو حتى الاستفادة من لوحة ذات سعة أكبر، مثل Arduino Mega.
مشكلة شائعة أخرى هي الإعداد الأولي لاتصال I2C. إذا كنت لا تستخدم دبابيس SDA وSCL الصحيحة، فقد لا تعمل الشاشة أو تعرض أخطاء في الاتصال. تأكد من استخدام المسامير الصحيحة بناءً على طراز Arduino الخاص بك.
وأخيرًا، أبلغ بعض المستخدمين أيضًا عن شاشة فارغة أو شاشة لا تستجيب لأية أوامر. يمكن حل هذه المشكلة من خلال التأكد من صحة جهد الإمداد (3.3 فولت أو 5 فولت حسب طراز الشاشة) ومن توصيل الكابلات بشكل صحيح.