🖥️ نمایشگر OLED ۰.۹۶ اینچ (SSD1306)

نمایشگر OLED ۰.۹۶ اینچ SSD1306 چیست؟ صفحه‌ی ۱۲۸×۶۴ پیکسلی کم‌مصرف که با دو سیم I2C به آردوینو وصل می‌شود. سیم‌بندی، کتابخانه‌ی Adafruit_SSD1306، نوشتن متن، رسم خط و دایره، و فرق با LCD کاراکتری.

Hello!
نمایشگر OLED ۰.۹۶ اینچ (SSD1306)

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

OLED یک صفحه‌ی نمایش کوچک است که هر پیکسل آن خودش نور می‌دهد؛ برای همین پس‌زمینه کاملاً سیاه و نوشته‌ها خیلی واضح‌اند، حتی از کنار. مدل رایج ۰.۹۶ اینچ با تراشه‌ی SSD1306، ۱۲۸ × ۶۴ پیکسل دارد. برخلاف LCD کاراکتری که فقط حرف نشان می‌دهد، روی OLED می‌توانی هر چیزی بکشی: متن در اندازه‌های مختلف، خط، دایره، نمودار و حتی بازی!

مشخصهمقدار
اندازه۰.۹۶ اینچ (مدل ۱.۳ اینچ هم هست)
وضوح۱۲۸ × ۶۴ پیکسل (یا ۱۲۸ × ۳۲)
رنگتک‌رنگ — سفید، آبی، یا دورنگ زرد و آبی
ارتباطI2C (آدرس معمولاً 0x3C)
ولتاژ۳.۳ تا ۵ ولت

سیم‌بندی

مشخصهمقدار
GNDGND
VCC۵ ولت
SCLA5 در آردوینو Uno
SDAA4 در آردوینو Uno
⚠️ ترتیب پایه‌ها در همه‌ی ماژول‌ها یکی نیست؛ بعضی‌ها VCC را اول دارند. همیشه نوشته‌ی کنار پایه‌ها را بخوان، نه ترتیب یک عکس در اینترنت را.

کد کامل

دو کتابخانه لازم است: Adafruit SSD1306 و Adafruit GFX. همین کد در شبیه‌ساز تینکرکد فارسی هم اجرا می‌شود:

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

Adafruit_SSD1306 display(128, 64, &Wire, -1);

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();

  display.setTextSize(2);              // big text
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("Hello!");

  display.setTextSize(1);              // small text
  display.println("Tinkercad.ir OLED");

  display.drawRect(0, 40, 60, 20, SSD1306_WHITE);   // rectangle
  display.fillCircle(95, 50, 10, SSD1306_WHITE);    // filled circle

  display.display();                   // show it!
}

void loop() {}

قانون طلایی: اول بکش، بعد display()

همه‌ی دستورهای رسم (println، drawLine، fillCircle و…) فقط در حافظه‌ی آردوینو می‌کشند. تا وقتی display.display() را صدا نزنی، هیچ چیزی روی صفحه عوض نمی‌شود. این رایج‌ترین دلیل «صفحه‌ی سیاه» است. برای انیمیشن هم همین است: clearDisplay() ← رسم فریم جدید ← display().

دستورهای رسم

دستورکار
drawPixel(x, y, WHITE)یک نقطه
drawLine(x0, y0, x1, y1, WHITE)خط
drawRect / fillRect(x, y, w, h, WHITE)مستطیل خالی / پر
drawCircle / fillCircle(x, y, r, WHITE)دایره خالی / پر
setTextSize(n)اندازه‌ی حروف (۱، ۲، ۳…)
invertDisplay(true)معکوس کردن رنگ‌ها

نقطه‌ی (۰، ۰) گوشه‌ی بالا چپ است؛ x به راست و y به پایین زیاد می‌شود.

در شبیه‌ساز

در مود آردوینوی شبیه ساز مدار، نمایشگر OLED را از جعبه‌ابزار بیاور، SDA را به A4 و SCL را به A5 بزن و برنامه را اجرا کن. هر بار که display() اجرا شود، همان پیکسل‌ها روی صفحه‌ی سه‌بعدی نمایشگر روشن می‌شوند.

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

ایده‌ی پروژه

نمایشگر OLED در شبیه‌ساز 🖥️

🛒 قبل از خرید، لیست خرید قطعات الکترونیک را ببین و قطعه را اول در شبیه ساز مدار امتحان کن.

پروژه‌هایی که از این قطعه استفاده می‌کنند

🐍

OLED و نئوپیکسل با MicroPython (پیکو)

🖥️

OLED: متن و شکل

📈

نمودار زنده روی OLED

یاد بگیر، امتحان کن، بعد بخر

قطعات مرتبط

💡

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

🟤

مقاومت (Resistor)

🔘

دکمه فشاری (Push Button)