- قطعات و تجهیزات الکترونیکی
- مقاومت
- خازن
- سلف
- دیود
- آی سی - تراشه
- میکروکنترلر و پروسسور
- ترانزیستور
- ترایاک و تریستور
- LED و تجهیزات مرتبط
- سگمنت و ماتریس
- کریستال و اسیلاتور
- وریستور
- رله
- پین هدر سوكت کانکتور فیش
- کلید سوئیچ کیپد
- فیوز
- بازر پیزو و بلندگو
- آنتن
- ریموت کنترلر
- فیبر مدار چاپی - برد بورد
- سیم و کابل
- ترانس چوک فریت هسته
- پوگو پین - پین تست
- فن و محافظ فن
- هیت سینک و المان حرارتی
- المان سرد / گرم کننده
- لیزر
- اسپارک گپ
- پیچ و اسپیسر
- جعبه و کیس بردهای الکترونیکی
- برق ساختمان
- سنسور و ماژول ها
- ماژول LED و سگمنت
- ریموت و ماژول های ارتباطی RF
- ماژول GPS - GSM - GPRS
- ماژول پرینتر چاپگر
- ماژول اولتراسونیک - فاصله سنج
- ماژول بلوتوث Bluetooth
- ماژول پردازش تصویر و دوربین
- ماژول پزشکی
- ماژول حرکت و لرزش
- سایر ماژول های کاربردی
- ماژول تاچ و اثر انگشت
- ماژول تایمر و پالس
- ماژول شتاب سنج و ژیروسکوپ
- ماژول های ESP و اینترنت اشیا
- ماژول صوتی
- ماژول و تگ RFID
- ماژول و سوئیچ PIR
- ماژول و سنسور بخار سرد
- ماژول و سنسور گاز
- ماژول و قطعات الکترونیکی
- دیمرهای DC و AC
- ماژول و سنسور گاز
- کوره القایی ZVS
- ماژول مادون قرمز IR
- رباتیک و مکاترونیک
- ابزارآلات و تجهیزات
- تجهیزات تست و اندازه گیری
- مینی کامپیوتر Mini PC
- انواع نمایشگر LCD/TFT/OLED
- بردهای خانواده آردوینو Arduino
- پروگرامر و بردهای آموزشی، کاربردی
- منابع تغذیه، باتری و شارژر
- تجهیزات حفاظتی و کنترلی
- هوشمند سازی
- پرینترهای سه بعدی و لوازم جانبی
- تجهیزات برقی خودرو
- تجهیزات جانبی
آموزش کامل راهاندازی نمایشگر OLED مدل SSD1306 با آردوینو + حل مشکل تصویر ندادن
آموزش کامل راهاندازی نمایشگر OLED مدل SSD1306 با آردوینو + حل مشکل تصویر ندادن
نمایش دادهها، مقادیر سنسورها و وضعیت مدار، یکی از جذابترین بخشهای طراحی سیستمهای الکترونیکی است. نمایشگرهای السیدی کاراکتری قدیمی (مثل $16 \times 2$) به دلیل ابعاد بزرگ، مصرف جریان بالا و فونتهای محدود، دیگر جایی در گجتهای هوشمند امروزی ندارند. آموزش کامل راهاندازی نمایشگر OLED مدل SSD1306 با آردوینو + حل مشکل تصویر ندادن امروزه نمایشگرهای OLED (الایدی ارگانیک) به دلیل کنتراست فوقالعاده، زاویه دید وسیع، مصرف انرژی بسیار ناچیز و ابعاد مینیاتوری، انتخاب اول طراحان هستند.
در این مقاله کاربردی، ساختار داخلی، پایهها، تفاوت مدلهای پروتکل $I2C$ و $SPI$ در نمایشگرهای محبوب OLED SSD1306 را بررسی میکنیم و درآموزش کامل راهاندازی نمایشگر OLED مدل SSD1306 با آردوینو + حل مشکل تصویر ندادن. نهایت به شما آموزش میدهیم که چطور این نمایشگر را به برد آردوینو وصل کنید و کدهای آن را بدون خطا اجرا کنید.
نمایشگر OLED SSD1306 چیست و چرا به آن نیاز داریم؟
نمایشگرهای OLED موجود در بازار معمولاً در سایزهای ۰.۹۶ اینچ یا ۱.۳ اینچ عرضه میشوند. در این نمایشگرها، هر پیکسل خودش یک منبع نور کوچک است. برخلاف السیدیها که نیاز به نور پسزمینه (Backlight) دارند، در تکنولوژی OLED بخشهای مشکی تصویر کاملاً خاموش میشوند. این ویژگی دو مزیت بزرگ دارد:
- کنتراست بینظیر: رنگ مشکی در این نمایشگرها کاملاً عمیق و واقعی است.
- مصرف توان بسیار کم: از آنجا که پیکسلهای مشکی خاموش هستند، جریان بسیار کمی از مدار کشیده میشود که برای بردهای باتریخور و اینترنت اشیا ($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 | وظیفه پایه |
| GND | GND | اتصال به زمین مدار |
| VCC | 5V یا 3.3V | تغذیه مثبت مدار (ترجیحاً ۳.۳ ولت) |
| SCL | A5 | پایهی کلاک ارتباط I2C |
| SDA | A4 | پایهی داده ارتباط I2C |
(نکته: در بردهای آردوینو مگا، پایه SDA به ۲۰ و SCL به ۲۱ وصل میشود).
آموزش کدنویسی و راهاندازی با کتابخانه Adafruit
برای کار با درایور SSD1306، بهترین و پایدارترین کتابخانهها توسط شرکت Adafruit توسعه یافتهاند.
مراحل نصب کتابخانه در نرمافزار Arduino IDE:
- از منوی بالا به مسیر
Sketch -> Include Library -> Manage Librariesبروید. - در کادر جستجو عبارت Adafruit SSD1306 را سرچ کرده و آن را نصب کنید.
- همچنین عبارت 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] را با کیفیت عالی و قیمت مناسب مستقیم از
فروشگاه ای الکترونیک خریداری کنید.