باستخدام 0.96 "OLED مع Arduino

Using a 0.96" OLED with the Arduino

شاشة OLED 0.96 بوصة هي شاشة مضغوطة موفرة للطاقة مثالية لعرض بيانات النص والرسومات وبيانات المستشعر في مشاريع Arduino. سيوجهك هذا البرنامج التعليمي من خلال إعداد واستخدام شاشة OLED 0.96 "مع Arduino.


ماذا ستحتاج

  1. لوحة أردوينو (على سبيل المثال ، UNO ، Mega ، Nano)
  2. 0.96 "وحدة عرض OLED (مع واجهة I2C أو SPI)
  3. الأسلاك الأسلاك والبلوز
  4. جهاز كمبيوتر مع Arduino IDE مثبت
  5. المكتبات: Adafruit SSD1306 ومكتبة Adafruit GFX

الخطوة 1: فهم شاشة OLED

عادةً ما تستخدم شاشة OLED 0.96 بوصة برنامج تشغيل SSD1306 ويدعم إما اتصال I2C أو SPI. في أكثرها شيوعًا ، يعمل عبر بروتوكول I2C ، والذي يتطلب فقط دبابيس بيانات (SDA و SCL).

i2c pinout

دبوس OLED وظيفة Arduino Uno Pin
VCC مزود الطاقة (3.3V أو 5V) 5V
GND أرضي GND
SDA خط البيانات A4
SCL خط الساعة A5

ملحوظة: تحقق من ورقة بيانات وحدة OLED الخاصة بك لتأكيد pinout.


الخطوة 2: تثبيت المكتبات المطلوبة

للعمل مع شاشة OLED ، تحتاج إلى المكتبات التالية:

  1. Adafruit SSD1306 مكتبة
  2. مكتبة Adafruit GFX

خطوات لتثبيت المكتبات

  1. افتح Arduino IDE.
  2. اذهب إلى رسم > تشمل المكتبة > إدارة المكتبات.
  3. ابحث عن "Adafruit SSD1306" وانقر فوق ثَبَّتَ.
  4. ابحث عن "مكتبة Adafruit GFX" وانقر ثَبَّتَ.

الخطوة 3: توصيل شاشة OLED

قم بتوصيل OLED بالأردوينو على النحو التالي:

دبوس OLED دبوس أردوينو
VCC 5V
GND GND
SDA A4
SCL A5

الخطوة 4: تحميل الرمز

فيما يلي نموذج رسم لعرض النص والرسومات على شاشة OLED:

رمز المثال: إعداد OLED الأساسي

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET    -1 // Reset pin not used
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  // Initialize the display
  if (!display.begin(SSD1306_I2C_ADDRESS, 0x3C)) { // Address 0x3C for most modules
    Serial.println(F("SSD1306 allocation failed"));
    for (;;);
  }

  display.clearDisplay(); // Clear the buffer

  // Display Welcome Message
  display.setTextSize(1);      // Set text size (1 = small)
  display.setTextColor(SSD1306_WHITE); // Set text color
  display.setCursor(0, 10);    // Set cursor position (x, y)
  display.println(F("Hello, OLED!"));
  display.display();           // Display the message
  delay(2000);

  // Draw a rectangle
  display.clearDisplay();
  display.drawRect(10, 10, 50, 30, SSD1306_WHITE); // x, y, width, height, color
  display.display();
  delay(2000);
}

void loop() {
  // Update screen with dynamic content if needed
}

الخطوة 5: استكشاف وظائف إضافية

توفر مكتبة Adafruit GFX مجموعة واسعة من الوظائف للرسومات والنص. فيما يلي بعض الأمثلة:

1. عرض النص

  display.setTextSize(2); // Larger text size
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("Arduino");
  display.display();

2. أشكال الرسم

  • المستطيل: display.drawRect(x, y, width, height, color);
  • دائرة: display.drawCircle(x, y, radius, color);
  • خط: display.drawLine(x1, y1, x2, y2, color);

3

  display.invertDisplay(true); // Invert colors
  delay(1000);
  display.invertDisplay(false); // Revert colors

القضايا الشائعة واستكشاف الأخطاء وإصلاحها

  1. OLED لا تظهر:

    • تأكد من استخدام عنوان I2C الصحيح (0x3C أو 0x3D) في الكود.
    • تحقق من الأسلاك والاتصالات.
  2. أخطاء المكتبة:

    • تأكد من تثبيت مكتبات ADAFRUIT SSD1306 و GFX.
  3. شاشة الخفقان:

    • يستخدم display.clearDisplay() فقط عند الضرورة لتقليل وميض.
  4. pinout غير صحيح:

    • تحقق من ورقة بيانات الوحدة النمطية لاتصالات SDA و SCL الصحيح.

تطبيقات شاشات OLED

  1. عرض بيانات المستشعر (على سبيل المثال ، درجة الحرارة ، الرطوبة)
  2. واجهات المستخدم للأنظمة المضمنة
  3. ردود الفعل المرئية لأجهزة إنترنت الأشياء
  4. عروض رسومية للإلكترونيات المحمولة

خاتمة

شاشة OLED 0.96 بوصة هي إضافة متعددة الاستخدامات وجذابة بصريًا لمشاريع Arduino. باتباع هذا الدليل ، يمكنك عرض النصوص والرسومات والبيانات في الوقت الفعلي على شاشة OLED الخاصة بك. جرب وظائف ومكتبات مختلفة لإنشاء شاشات ديناميكية وتفاعلية لمشاريعك!

اترك تعليقًا

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.