توسعه دانشمقالات

راه اندازی نمایشگر OLED با ESP32: آموزش کامل SSD1306 و I2C

راه اندازی نمایشگر OLED با ESP32
امروزه راه اندازی نمایشگر OLED با ESP32 یکی از مهم‌ترین گام‌ها برای ارتقای پروژه‌های اینترنت اشیا (IoT) و سیستم‌های نهفته است. نمایشگرهای OLED به دلیل مصرف انرژی بسیار پایین، زاویه دید گسترده و کنتراست بالای تصویر، گزینه‌ای بی‌نظیر برای نمایش داده‌های سنسورها، وضعیت اتصال به شبکه Wi-Fi و هشدارهای سیستم محسوب می‌شوند.

در این مقاله قصد داریم به‌صورت کاملاً کاربردی و گام‌به‌گام نحوه اتصال، سیم‌کشی I2C و کدنویسی نمایشگرهای معروف SSD1306 (سایز ۰.۹۶ اینچ ۶۴×۱۲۸ پیکسل) را به برد پرقدرت ESP32 آموزش دهیم.


۱. آشنایی با نمایشگر OLED مدل SSD1306

نمایشگرهای OLED برخلاف LCDها نیازی به نور پس‌زمینه (Backlight) ندارند؛ زیرا هر پیکسل به‌صورت جداگانه نور تولید می‌کند. این ویژگی باعث ارائه رنگ مشکی بسیار عمیق و کاهش چشمگیر مصرف جریان می‌شود. چیپ درایور SSD1306 متداول‌ترین تراشه برای کنترل این صفحات است.

  • رزولوشن استاندارد: ۱۲۸ در ۶۴ پیکسل (یا ۱۲۸ در ۳۲ پیکسل)
  • پروتکل ارتباطی: I2C (تنها به ۲ پایه دیتای SCL و SDA نیاز دارد)
  • ولتاژکاری: ۳.۳ ولت (کاملاً سازگار با سطح منطقی برد ESP32)
  • آدرس I2C پیش‌فرض: معمولاً 0x3C یا 0x3D

محصولات این مقاله
برد توسعه با هسته ESP32-S
برد توسعه با هسته ESP32-S


مشاهده و خرید

۲. اتصالات و سیم‌کشی I2C در راه اندازی نمایشگر OLED با ESP32

برای اتصال فیزیکی ماژول به ESP32 از پایه‌های سخت‌افزاری I2C استفاده می‌کنیم. در اکثر بردهای ESP32، پایه GPIO 21 نقش SDA و پایه GPIO 22 نقش SCL را ایفا می‌کند.

پایه OLED (SSD1306) پایه برد ESP32 توضیحات عملکرد
VCC 3.3V تغذیه مثبت ۳.۳ ولت
GND GND اتصال زمین مشترک
SCL GPIO 22 سیگنال ساعت گذرگاه I2C
SDA GPIO 21 خط انتقال داده گذرگاه I2C

راه اندازی نمایشگر OLED با ESP32

⚡ تهیه بردهای ESP32 و نمایشگرهای OLED اورجینال

انواع قطعات الکترونیکی و ماژول‌های اینترنت اشیا را با ضمانت کیفیت از فروشگاه ما تهیه کنید.

مشاهده و خرید قطعات

📚 مطالب آموزشی مرتبط را از دست ندهید!

اگر می‌خواهید دانش فنی خود را در زمینه الکترونیک افزایش دهید، مجموعه مقالات تخصصی پژوهشگران شامل آموزش‌ها، مقایسه قطعات و راهنمای انتخاب تجهیزات را مطالعه کنید.

مشاهده مقالات آموزشی بیشتر

محصولات این مقاله
ماژول OLED 0.96 I2C
ماژول OLED 0.96 I2C


مشاهده و خرید

۳. نصب کتابخانه‌های لازم در آردوینو IDE

جهت برنامه‌نویسی آسان در نرم‌افزار Arduino IDE، باید دو کتابخانه رسمی آدافروت را نصب کنید:

  1. وارد مسیر Sketch > Include Library > Manage Libraries شوید.
  2. عبارت Adafruit SSD1306 را جستجو و نصب کنید.
  3. عبارت Adafruit GFX Library را نیز جستجو کرده و آخرین نسخه آن را نصب کنید.

کد نمونه آردوینو: راه اندازی نمایشگر OLED با ESP32 و چاپ متن

کد زیر به‌صورت خلاصه نحوه پیکربندی، پاکسازی صفحه و چاپ یک متن اختصاصی را روی نمایشگر OLED نشان می‌دهد:

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

#define SCREEN_WIDTH 128 // عرض نمایشگر بر حسب پیکسل
#define SCREEN_HEIGHT 64 // ارتفاع نمایشگر بر حسب پیکسل

// ایجاد شیء نمایشگر I2C بدون پایه Reset
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
  Serial.begin(115200);

  // راه اندازی نمایشگر با آدرس I2C پیش‌فرض 0x3C
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("خطا: نمایشگر SSD1306 یافت نشد!"));
    for(;;);
  }

  delay(2000);
  display.clearDisplay(); // پاکسازی صفحه

  display.setTextSize(1);              // اندازه فونت
  display.setTextColor(SSD1306_WHITE); // رنگ متن
  display.setCursor(0, 10);            // موقعیت نشانگر (X, Y)
  display.println(F("Mecamadar IoT Project"));
  display.println(F("ESP32 + OLED SSD1306"));
  
  display.display(); // اعمال تغییرات روی صفحه نمایش
}

void loop() {
  // کدهای مربوط به بروزرسانی مقادیر سنسور در این بخش قرار می‌گیرند
}

💡 نکته عیب‌یابی:
اگر پس از پروگرم کردن برد صفحه نمایش روشن نشد، ابتدا از طریق کد I2C Scanner آدرس دقیق ماژول خود را بررسی کنید. برخی ماژول‌ها به‌جای آدرس 0x3C از آدرس 0x3D استفاده می‌کنند.


❓ سوالات متداول درباره راه اندازی OLED با ESP32

چگونه می‌توان آدرس I2C نمایشگر OLED را تغییر داد؟

پشت اغلب ماژول‌های SSD1306 یک مقاومت SMD کوچک قرار دارد که با لحیم‌کاری مجدد آن روی پد مجاور، آدرس از 0x3C به 0x3D تغییر می‌کند.

آیا می‌توان از پایه‌های دیگری غیر از GPIO 21 و 22 برای I2C استفاده کرد؟

بله، با استفاده از دستور Wire.begin(SDA_PIN, SCL_PIN) در تابع setup می‌توانید پایه‌های دلخواه خود را به عنوان I2C نرم‌افزاری/تعریف‌شده معرفی کنید.

سوال یا مشکلی در راه اندازی نمایشگر OLED دارید؟

اگر هنگام اجرای کد یا سیم‌کشی نمایشگر با خطایی مواجه شده‌اید، سوال خود را در بخش نظرات ارسال کنید تا پاسختان را دریافت کنید.

تماس با تیم پشتیبانی

کارشناس فنی و طراح محصول

“یادگیری الکترونیک و رباتیک مثل وارد شدن به یک جنگل تاریک و بزرگ است؛ اما نگران نباشید، من اینجا هستم تا چراغ‌قوه را دستتان بدهم! کار من ساده‌سازی مفاهیم سختِ مهندسی، نوشتن مقالات پایه‌ای و طراحی نقشه‌های راهی است که به شما بگوید از کجا شروع کنید و چطور قدم‌به‌قدم پیش بروید. فرقی نمی‌کند دانش‌آموز باشید یا دانشجوی ترم اول دانشگاه؛ آغوش پژوهشگران همیشه به روی کنجکاوی‌های شما باز است!”

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا