سنسور و ماژول

آموزش کامل راه‌اندازی نمایشگر OLED مدل SSD1306 با آردوینو + حل مشکل تصویر ندادن

آموزش کامل راه‌اندازی نمایشگر OLED مدل SSD1306 حل مشکل تصویر ندادن1

آموزش کامل راه‌اندازی نمایشگر OLED مدل SSD1306 با آردوینو + حل مشکل تصویر ندادن

نمایش داده‌ها، مقادیر سنسورها و وضعیت مدار، یکی از جذاب‌ترین بخش‌های طراحی سیستم‌های الکترونیکی است. نمایشگرهای ال‌سی‌دی کاراکتری قدیمی (مثل $16 \times 2$) به دلیل ابعاد بزرگ، مصرف جریان بالا و فونت‌های محدود، دیگر جایی در گجت‌های هوشمند امروزی ندارند. آموزش کامل راه‌اندازی نمایشگر OLED مدل SSD1306 با آردوینو + حل مشکل تصویر ندادن امروزه نمایشگرهای OLED (ال‌ای‌دی ارگانیک) به دلیل کنتراست فوق‌العاده، زاویه دید وسیع، مصرف انرژی بسیار ناچیز و ابعاد مینیاتوری، انتخاب اول طراحان هستند.

در این مقاله کاربردی، ساختار داخلی، پایه‌ها، تفاوت مدل‌های پروتکل $I2C$ و $SPI$ در نمایشگرهای محبوب OLED SSD1306 را بررسی می‌کنیم و درآموزش کامل راه‌اندازی نمایشگر OLED مدل SSD1306 با آردوینو + حل مشکل تصویر ندادن. نهایت به شما آموزش می‌دهیم که چطور این نمایشگر را به برد آردوینو وصل کنید و کدهای آن را بدون خطا اجرا کنید.

نمایشگر OLED SSD1306 چیست و چرا به آن نیاز داریم؟

نمایشگرهای OLED موجود در بازار معمولاً در سایزهای ۰.۹۶ اینچ یا ۱.۳ اینچ عرضه می‌شوند. در این نمایشگرها، هر پیکسل خودش یک منبع نور کوچک است. برخلاف ال‌سی‌دی‌ها که نیاز به نور پس‌زمینه (Backlight) دارند، در تکنولوژی OLED بخش‌های مشکی تصویر کاملاً خاموش می‌شوند. این ویژگی دو مزیت بزرگ دارد:

  1. کنتراست بی‌نظیر: رنگ مشکی در این نمایشگرها کاملاً عمیق و واقعی است.
  2. مصرف توان بسیار کم: از آنجا که پیکسلهای مشکی خاموش هستند، جریان بسیار کمی از مدار کشیده می‌شود که برای بردهای باتری‌خور و اینترنت اشیا ($IoT$) حیاتی است.

تراشه درایور اصلی این نمایشگرها SSD1306 نام دارد که وظیفه ترجمه دستورات میکروکنترلر و روشن کردن پیکسل‌ها را بر عهده دارد. رزولوشن رایج این نمایشگرها $128 \times 64$ پیکسل است؛ یعنی شما ۸۱۹۲ پیکسل مستقل در اختیار دارید که می‌توانید روی آن‌ها متن، انیمیشن، نمودار و آیکون‌های گرافیکی نمایش دهید.

تفاوت مدل‌های ۴ پین ($I2C$) و ۷ پین ($SPI$)؛ کدام را بخریم؟

هنگام خرید نمایشگر OLED از فروشگاه، با دو مدل مواجه می‌شوید که از نظر تعداد پایه‌ها با هم متفاوت هستند:

۱. مدل ۴ پین (پروتکل ارتباطی $I2C$)

این مدل به دلیل سادگی در سیم‌کشی بسیار محبوب است. فقط با استفاده از دو پایه داده و دو پایه تغذیه می‌توانید نمایشگر را راه‌اندازی کنید. اگر در پروژه خود با کمبود پایه‌های میکروکنترلر مواجه هستید، حتماً این مدل را انتخاب کنید.

  • پایه‌ها: VCC ،GND ،SCL ،SDA

۲. مدل ۷ پین (پروتکل ارتباطی $SPI$)

این مدل از پروتکل $SPI$ برای انتقال داده استفاده می‌کند. سرعت انتقال داده در این مدل بسیار بالاتر از $I2C$ است. اگر می‌خواهید در پروژه خود انیمیشن‌های سریع، بازی‌های گرافیکی یا نمودارهای متحرک بدون تاخیر (Lag) نمایش دهید، مدل ۷ پین انتخاب بهتری است.

  • پایه‌ها: VCC ،GND ،D0 (CLK) ،D1 (MOSI) ،RES ،DC ،CS

راهنمای گام‌به‌گام اتصال نمایشگر OLED 4Pin به آردوینو

در این آموزش، پرکاربردترین مدل یعنی نمایشگر OLED مدل I2C را به برد محبوب آردوینو یونو ($Arduino\ UNO$) متصل می‌کنیم.

جدول سیم‌کشی قطعات:

پایه نمایشگر OLEDپایه برد آردوینو UNOوظیفه پایه
GNDGNDاتصال به زمین مدار
VCC5V یا 3.3Vتغذیه مثبت مدار (ترجیحاً ۳.۳ ولت)
SCLA5پایه‌ی کلاک ارتباط I2C
SDAA4پایه‌ی داده ارتباط I2C

(نکته: در بردهای آردوینو مگا، پایه SDA به ۲۰ و SCL به ۲۱ وصل می‌شود).

آموزش کدنویسی و راه‌اندازی با کتابخانه Adafruit

برای کار با درایور SSD1306، بهترین و پایدارترین کتابخانه‌ها توسط شرکت Adafruit توسعه یافته‌اند.

مراحل نصب کتابخانه در نرم‌افزار Arduino IDE:

  1. از منوی بالا به مسیر Sketch -> Include Library -> Manage Libraries بروید.
  2. در کادر جستجو عبارت Adafruit SSD1306 را سرچ کرده و آن را نصب کنید.
  3. همچنین عبارت Adafruit GFX Library را سرچ کرده و آن را هم نصب کنید (این کتابخانه برای کارهای گرافیکی و فونت‌ها ضروری است).

کد نمونه برای تست نمایشگر و نوشتن متن:

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

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

// تعریف پایه‌های ارتباطی و ساخت شیء نمایشگر
#define OLED_RESET     -1 // اگر پایه ریست ندارید روی 1- بگذارید
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  // راه‌اندازی ارتباط با آدرس I2C پیش‌فرض (معمولا 0x3C)
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 
    Serial.println(F("نمایشگر پیدا نشد!"));
    for(;;); // قفل کردن مدار در صورت عدم شناسایی
  }
  
  display.clearDisplay(); // پاک کردن حافظه تصویر
  display.setTextSize(2);      // تنظیم سایز فونت (1 تا 3)
  display.setTextColor(SSD1306_WHITE); // تنظیم رنگ متن
  display.setCursor(0, 10);     // تعیین موقعیت شروع نوشتن (X, Y)
  display.println("AI Electronic"); // متن مورد نظر
  display.setTextSize(1);
  display.setCursor(0, 35);
  display.println("OLED SSD1306 Guide");
  display.display(); // ارسال اطلاعات به نمایشگر جهت نمایش واقعی
}

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

🛠️ راهنمای عیب‌یابی: چرا نمایشگر OLED روشن نمی‌شود؟ (حل مشکل تصویر ندادن)

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

۱. آدرس I2C اشتباه است!

تراشه‌های الکترونیکی در پروتکل I2C دارای یک آدرس اختصاصی هستند. آدرس اکثر ماژول‌های موجود در بازار 0x3C است، اما برخی مدل‌ها با آدرس 0x3D کار می‌کنند. در خط کد display.begin(SSD1306_SWITCHCAPVCC, 0x3C) آدرس را به 0x3D تغییر دهید و دوباره تست کنید. برای پیدا کردن آدرس دقیق، می‌توانید از کد اسکانیار I2C (I2C Scanner) استفاده کنید.

۲. فراموش کردن دستور display.display()

کتابخانه Adafruit به این صورت کار می‌کند که تمام دستورات متنی و گرافیکی را ابتدا در حافظه موقت (Buffer) میکروکنترلر ذخیره می‌کند. تا زمانی که در انتهای کدهای خود دستور display.display(); را ننویسید، هیچ اطلاعاتی به نمایشگر فرستاده نمی‌شود و صفحه سیاه می‌ماند.

۳. جابه‌جا بستن پایه‌های SDA و SCL

این یک خطای رایج در سیم‌کشی است. مطمئن شوید پایه SDA حتماً به A4 و SCL به A5 آردوینو وصل شده باشد. جابه‌جا بستن این دو پایه آسیبی به ماژول نمی‌زند اما ارتباط را کاملاً قطع می‌کند.

نتیجه‌گیری و راهنمای خرید

نمایشگر OLED مدل SSD1306 با ظاهر شیک، ابعاد مناسب و مصرف جریان فوق‌العاده کم، پروژه‌های الکترونیکی شما را از یک مدار آماتور به یک گجت حرفه‌ای و قابل عرضه تبدیل می‌کند.

اگر برای پروژه‌های اینترنت اشیا، ساعت‌های هوشمند یا مانیتورینگ سنسورهای خود به این قطعه نیاز دارید، هم‌اکنون می‌توانید [نمایشگر OLED 0.96 اینچ I2C با درایور SSD1306] را با کیفیت عالی و قیمت مناسب مستقیم از

فروشگاه ای الکترونیک خریداری کنید.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *