🖥️ درس 71: نمایشگر OLED: متن و شکل
یک صفحهی کوچک ۱۲۸×۶۴ پیکسلی که هر چیزی رویش میکشی — فقط با دو سیم I2C.
سطح: متوسط · زمان: حدود 18 دقیقه · مفاهیم: OLED، I2C، گرافیک
قدمهای این درس
- چرا OLED؟
- قدم ۱ — سیمکشی
- قدم ۲ — کد: متن و شکل
- اشتباه رایج: صفحه سیاه میماند!
- چالش: کارت ویزیت
نمونهای از کد این درس
// OLED 128x64 (SSD1306) over I2C: text in two sizes and some shapes.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64, &Wire, -1); // width, height, bus, no reset pin
void setup() {
Serial.begin(9600);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 0x3C = the usual I2C address
Serial.println("OLED not found!");
while (true) delay(1000);
}
display.clearDisplay(); // wipe the memory picture
display.setTextColor(SSD1306_WHITE);
display.setTextSize(2); // big letters: 12x16 px each
display.setCursor(0, 0);
display.println("Salam!");
display.setTextSize(1); // small letters: 6x8 px each
display.setCursor(0, 20);
display.println("OLED 128 x 64");
display.drawLine(0, 32, 127, 32, SSD1306_WHITE); // a line across
display.drawRect(4, 38, 30, 22, SSD1306_WHITE); // empty box
display.fillRect(40, 38, 30, 22, SSD1306_WHITE); // filled box
display.drawCircle(92, 49, 11, SSD1306_WHITE); // circle
display.fillCircle(118, 49, 6, SSD1306_WHITE); // dot
display.display(); // NOW send the picture to the screen
Serial.println("Drawn!");
}
void loop() {
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓