🖥️ درس 71: نمایشگر OLED: متن و شکل

یک صفحه‌ی کوچک ۱۲۸×۶۴ پیکسلی که هر چیزی رویش می‌کشی — فقط با دو سیم I2C.

سطح: متوسط · زمان: حدود 18 دقیقه · مفاهیم: OLED، I2C، گرافیک

قدم‌های این درس

  1. چرا OLED؟
  2. قدم ۱ — سیم‌کشی
  3. قدم ۲ — کد: متن و شکل
  4. اشتباه رایج: صفحه سیاه می‌ماند!
  5. چالش: کارت ویزیت

نمونه‌ای از کد این درس

// 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() {
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

🗂️

درس 70: منوی چندصفحه‌ای روی LCD با دکمه

📈

درس 72: نمودار زنده روی OLED