🖥️ نمایشگر OLED ۰٫۹۶ اینچ (SSD1306) (SSD1306 OLED Display 0.96")

اسم انگلیسیSSD1306 OLED Display 0.96"
در ووکوی (Wokwi)board-ssd1306
دسته💡 LED و نمایشگر
در شبیه‌ساز فارسیمود آردوینو · رایگان

نمایشگر OLED ۰٫۹۶ اینچ SSD1306 (SSD1306 OLED Display) صفحه‌ی کوچک ۱۲۸×۶۴ پیکسلی است که هر پیکسلش خودش نور می‌دهد؛ پس نور پس‌زمینه ندارد، کنتراستش بالاست و کم مصرف می‌کند. با دو سیم I2C به آردوینو وصل می‌شود و رویش متن، عدد درشت، نمودار و آیکن می‌کشی؛ برای ساعت، دماسنج، منوی کوچک دستگاه و نمایش وضعیت ربات عالی است.

نمایشگر OLED در ووکوی (Wokwi)

شناسه‌ی این نمایشگر در ووکوی board-ssd1306 است، با چهار پایه‌ی GND، VCC، SCL و SDA و آدرس I2C برابر 0x3C:

{
  "version": 1,
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
    { "type": "board-ssd1306", "id": "oled1", "top": -110, "left": 100, "attrs": {} }
  ],
  "connections": [
    [ "oled1:GND", "uno:GND.1", "black", [] ],
    [ "oled1:VCC", "uno:5V", "red", [] ],
    [ "oled1:SCL", "uno:A5", "blue", [] ],
    [ "oled1:SDA", "uno:A4", "green", [] ]
  ]
}
پایه‌ی OLEDوصل بهچرا
GNDuno:GND.1زمین
VCCuno:5Vبیشتر ماژول‌ها رگولاتور دارند و ۳٫۳ ولت هم کار می‌کنند
SCLuno:A5کلاک I2C
SDAuno:A4داده‌ی I2C

OLED در تینکرکد فارسی جزو اشتراک پلاس است؛ مثال‌هایش برای خواندن رایگان باز می‌شوند و برای اجرا پلاس لازم داری.

کد نمونه

// SSD1306 OLED: uptime in big digits and a progress bar
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display(128, 64, &Wire, -1);   // -1 = no reset pin

void setup() {
  Serial.begin(9600);
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("OLED not found at 0x3C"));
    while (true) {}
  }
}

void loop() {
  unsigned long sec = millis() / 1000;
  int width = (sec % 11) * 12;                  // 0..120 px

  display.clearDisplay();
  display.setTextColor(SSD1306_WHITE);
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.print(F("Uptime"));

  display.setTextSize(2);
  display.setCursor(0, 16);
  display.print(sec);
  display.print(F(" s"));

  display.drawRect(0, 44, 122, 12, SSD1306_WHITE);
  display.fillRect(1, 45, width, 10, SSD1306_WHITE);
  display.display();                            // nothing shows without this
  delay(200);
}

دو کتابخانه لازم است: Adafruit SSD1306 و Adafruit GFX. هر چیزی که می‌کشی اول در حافظه نوشته می‌شود و فقط با display.display() روی صفحه می‌آید. آموزش کامل‌تر با متن، خط و دایره را در راه‌اندازی OLED SSD1306 با آردوینو ببین.

OLED یا LCD کاراکتری؟

هر دو با چهار سیم I2C وصل می‌شوند، ولی برای دو کار متفاوت ساخته شده‌اند. LCD 16×2 فقط ۳۲ حرف در دو خط نشان می‌دهد، نور پس‌زمینه دارد و تقریباً رمی از آردوینو نمی‌گیرد؛ برای نمایش یک عدد و یک پیام ساده کافی است. OLED هر پیکسل را جدا کنترل می‌کند، پس نمودار، آیکن، فونت درشت و انیمیشن می‌کشد و در تاریکی خواناتر است، ولی صفحه‌اش کوچک‌تر است و رم بیشتری می‌خواهد. اگر پروژه‌ات فقط دما را نشان می‌دهد LCD بس است؛ اگر نمودار زنده‌ی سنسور یا منوی گرافیکی می‌خواهی، OLED را بردار.

یک نکته‌ی کاربردی: هر دو نمایشگر می‌توانند هم‌زمان روی یک باس I2C کار کنند، چون آدرسشان فرق دارد (0x3C برای OLED و معمولاً 0x27 برای LCD). پس می‌توانی هر دو را به همان A4 و A5 بزنی و هر کدام را با شیء خودش در کد صدا کنی.

اشتباه‌های رایج

آموزش‌های مرتبط

سؤال‌های رایج

آدرس I2C نمایشگر OLED چند است؟

بیشتر ماژول‌های ۱۲۸×۶۴ آدرس 0x3C دارند و بعضی 0x3D. در ووکوی 0x3C است. اگر صفحه‌ی مدار واقعی روشن نشد، با یک برنامه‌ی I2C Scanner آدرس را پیدا کن.

چرا با OLED برنامه‌ی آردوینو Uno هنگ می‌کند؟

کتابخانه‌ی Adafruit_SSD1306 برای صفحه‌ی ۱۲۸×۶۴ حدود یک کیلوبایت رم می‌گیرد، یعنی نصف رم اونو. اگر برنامه آرایه و رشته‌ی بزرگ هم دارد، رم تمام می‌شود؛ رشته‌های ثابت را با F() در حافظه‌ی فلش نگه دار.

📖 طرز کار، مشخصات فنی و نکته‌های خرید این قطعه در دانشنامه‌ی تینکرکد فارسی: نمایشگر OLED ۰٫۹۶ اینچ (SSD1306) آمده است.

آموزش‌هایی که از این قطعه استفاده می‌کنند

🌈

نمایشگر OLED و نئوپیکسل با میکروپایتون روی رزبری پای پیکو

🖥️

راه‌اندازی نمایشگر OLED SSD1306 با آردوینو و کتابخانه‌ی Adafruit

📌

پین اوت رزبری پای پیکو: نقشه‌ی کامل ۴۰ پایه، GP، ADC، I2C، SPI، UART و تغذیه

💡

۳۰ ایده پروژه اینترنت اشیا با ESP32، از مبتدی تا پیشرفته (با قطعه‌ها و نقطه‌ی شروع)

قطعه‌های دیگرِ LED و نمایشگر

🔴

ماتریس LED هشت در هشت (MAX7219)

MAX7219 8x8 LED Matrix

📟

نمایشگر LCD 16×2 با ماژول I2C

LCD 16x2 I2C

⭕

حلقه‌ی نئوپیکسل ۱۲ تایی

NeoPixel Ring 12 (WS2812)

🌈

نوار نئوپیکسل ۸ تایی

NeoPixel Strip 8 (WS2812)

💡

LED (دیود نورانی)

LED (Light-Emitting Diode)

🌈

LED RGB (سه‌رنگ)

RGB LED

همه‌ی ۱۰۵ قطعه ← · آموزش مدار

نمایشگر OLED ۰٫۹۶ اینچ (SSD1306) را در شبیه‌ساز امتحان کن 🚀