🖥️ نمایشگر OLED ۰.۹۶ اینچ (SSD1306)
نمایشگر OLED ۰.۹۶ اینچ SSD1306 چیست؟ صفحهی ۱۲۸×۶۴ پیکسلی کممصرف که با دو سیم I2C به آردوینو وصل میشود. سیمبندی، کتابخانهی Adafruit_SSD1306، نوشتن متن، رسم خط و دایره، و فرق با LCD کاراکتری.
نمایشگر OLED چیست؟
OLED یک صفحهی نمایش کوچک است که هر پیکسل آن خودش نور میدهد؛ برای همین پسزمینه کاملاً سیاه و نوشتهها خیلی واضحاند، حتی از کنار. مدل رایج ۰.۹۶ اینچ با تراشهی SSD1306، ۱۲۸ × ۶۴ پیکسل دارد. برخلاف LCD کاراکتری که فقط حرف نشان میدهد، روی OLED میتوانی هر چیزی بکشی: متن در اندازههای مختلف، خط، دایره، نمودار و حتی بازی!
| مشخصه | مقدار |
|---|---|
| اندازه | ۰.۹۶ اینچ (مدل ۱.۳ اینچ هم هست) |
| وضوح | ۱۲۸ × ۶۴ پیکسل (یا ۱۲۸ × ۳۲) |
| رنگ | تکرنگ — سفید، آبی، یا دورنگ زرد و آبی |
| ارتباط | I2C (آدرس معمولاً 0x3C) |
| ولتاژ | ۳.۳ تا ۵ ولت |
سیمبندی
| مشخصه | مقدار |
|---|---|
| GND | GND |
| VCC | ۵ ولت |
| SCL | A5 در آردوینو Uno |
| SDA | A4 در آردوینو Uno |
کد کامل
دو کتابخانه لازم است: 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() اجرا شود، همان پیکسلها روی صفحهی سهبعدی نمایشگر روشن میشوند.
اشتباههای رایج
- فراموش کردن display(): صفحه سیاه میماند.
- آدرس اشتباه: بیشتر ماژولها 0x3C هستند، بعضی 0x3D.
- نوشتن روی نوشتهی قبلی: بدون
clearDisplay()عددها روی هم میافتند و ناخوانا میشوند. - حافظه: بافر صفحهی ۱۲۸×۶۴ یک کیلوبایت از ۲ کیلوبایت حافظهی Uno را میگیرد؛ برنامهی خیلی بزرگ با آرایههای زیاد ممکن است جا نشود.
ایدهی پروژه
- ساعت دیجیتال با ماژول RTC
- ایستگاه هواشناسی کوچک با سنسور DHT
- نمودار زندهی پتانسیومتر یا سنسور نور
- بازی ساده با دو دکمه
🛒 قبل از خرید، لیست خرید قطعات الکترونیک را ببین و قطعه را اول در شبیه ساز مدار امتحان کن.
پروژههایی که از این قطعه استفاده میکنند
یاد بگیر، امتحان کن، بعد بخر
- ⚡ نمایشگر OLED ۰.۹۶ اینچ (SSD1306) را در شبیه ساز مدار آنلاین رایگان امتحان کن
- 🛒 راهنمای خرید نمایشگر OLED ۰.۹۶ اینچ (SSD1306) و قطعات الکترونیک