شاشة OLED 0.91

حول المشروع:

هذا الدرس يشرح طريقة استخدام شاشة OLED  مع الأردوينو. تعتبر الشاشة خيارا ممتازا للكثير من التطبيقات حيث انها تعطي سطوع أقوى وتستهلك طاقة أقل وتوفر مرونة نظرية أكبر مقارنة بالشاشات الأخرى.

الأدوات والمعدات الألكترونية المطلوبة:

1 – أردوينو أونو.

2 – شاشة OLED  0.91.

3 – أسلاك M-F.

الدائرة الكهربائية والتوصيل

شاشة OLED 0.91  متوافقة مع برتوكل I2C  مما يجعل التوصيل أسهل نسبيا حيث يتم توصيل سلكين فقط لنقل البيانات باستخدام I2C. لكل لوحة الكترونية منافذ خاصة ل I2C في هذا الدرس نستخدم اردوينو اونو التي تخصص مدخلين  A5  و A4  للاتصال عبر I2C. إذا بعد تغذية الشاشة بالتيار الكهربائي يتم توصيل منفذ SDA وهو منفذ البايانات بمنفذ A4  للاردوينو في حين يوصل منفذ    (Clock) SCK بمنفذ  A5  للاردوينو.

البرمجة:

اولا  يجب تنزيل  المكتبات المخصصة للشاشة وهما مكتبتين الأولى (Adafruit_SSD1306)  والثانية (Adafruit_GFX).    لتنزيل المكتبات قم بالضغط على ادوات ومن ثم ادارة االمكتبات . بعد ذلك يمكنك البحث عن اسم المكتبة والضغط عليه لتنزيلها. بعد تنزيل المكتبات يجب تضينها ضمن الكود بالإضافة للمكتبة Wire  المخصصة للتواصل عبر I2C ومن ثم تعريف كل من  ابعاد الشاشة بالبكسل و زر إعادة الضبط (نعطيه القيمة -1 حيث يكون نفس زر reset  الاردوينو ) و عنوان الشاشة ومن ثم تعريف كائن للكلاس Adafruit_SSD1306 وتمرير قيم ابعاد الشاشة وبروتوكول الاتصال وزر اعادة الضبط .  

				
					#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 32
#define OLED_RESET    -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

				
			

بعد ذلك يتم إضافة كود مخصص لاتوليد اشارة 3.3 فولت داخلية للشاشة. ومسح كافة المعروضات السابقة باستخدام الدالة clearDisplay . قبل العرض على الشاشة يجب ضبط حجم الخط واللون وموقع العرض باستخدام الدوال setTextSize, setTextColor, setCursor . اخيرا يتم العرض باستخدام الدالة print. يجب الانتباه ان الطباعة على الشاشة لن تتم إلا بعد استخادم الدالة display.

				
					void setup() {
 if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
 for(;;); }
  display.clearDisplay();
}
void loop() {
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE); 
display.setCursor(0,0); 
display.clearDisplay();  
display.print("Hello Word");
delay(1000);
display.display();
  
  }
				
			

كما يمكن تحريك النص  من اليمين لليسار  او من اليسار لليمين بشكل مستقيم باستخدام دالتي startscrollright  و startscrollleft او بشكل قطري باستخدام دالتي startscrolldiagright و startscrolldiagleft في حيث تستخدم الدالة stopscroll للايقاف. 

				
					void loop() {
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE); 
display.setCursor(0,0); 
display.print("Hello World");
display.startscrollright(0x00,0x0F);
delay(2000);
display.stopscroll();
display.startscrolldiagleft(0x00, 0x07);
delay(2000);
display.display();
}
				
			

انتقل إلى المتجر

انتقال إلى الأعلى