شِفر (کود) و ویدئو آردوینو برای نمایشگر OLED SSD1306 با اندازه 128 x 64

شِفر (کود) و ویدئو آردوینو برای نمایشگر OLED SSD1306 با اندازه 128 x 64

در این آموزش، نحوه استفاده از نمایشگر SSD1306 OLED 128 x 64 با آردوینو را بررسی خواهیم کرد. SSD1306 یک نمایشگر چندمنظوره است که به شما امکان می‌دهد متن، گرافیک و اشکال مختلف را به‌راحتی نمایش دهید. تا پایان این مقاله قادر خواهید بود نمایشگر را راه‌اندازی کرده و کدی را اجرا کنید که قابلیت‌های آن را نشان می‌دهد.

SSD1306 OLED displaying text

ما شما را در انجام اتصالات سخت‌افزاری لازم راهنمایی کرده و نمونه‌کدهایی ارائه می‌دهیم تا شناسه‌های کلیدی مورد استفاده در برنامه را بهتر درک کنید. برای توضیحی تصویری‌تر حتماً ویدیوی مرتبط را تماشا کنید (در ویدیو در 00:00).

سخت‌افزار توضیح داده شده

اجزای اصلی این پروژه برد آردوینو و ماجیول نمایشگر OLED مدل SSD1306 هستند. نمایشگر SSD1306 از پروتکل ارتباطی I2C استفاده می‌کند که با نیاز داشتن تنها دو خط داده سیم‌کشی را ساده می‌کند: SDA برای داده و SCL برای سیگنال ساعت. این نمایشگر در ولتاژهای بین 3.3V و 5V کار می‌کند، که آن را با اکثر بردهای آردوینو سازگار می‌سازد.

علاوه بر نمایشگر، به سیم‌های جامپر نیاز خواهید داشت تا ماجیول را به آردوینو وصل کنید. اتصالات شامل VCC برای تغذیه، GND برای زمین، SDA به پایهٔ دادهٔ آردوینو و SCL به پایهٔ کلاک هستند. این تنظیم امکان ارتباط آسان بین آردوینو و نمایشگر OLED را فراهم می‌کند.

جزئیات مشخصات فنی

تولیدکنندهآدافروت
شماره قطعهSSD1306
ولتاژ منطقی/ورودی-خروجی3.3 ولت تا 5 ولت
ولتاژ تغذیه3.3 ولت - 5 ولت
رزولوشن صفحه نمایش128 در 64 پیکسل
آدرس I2C0x3C
رابطآی2سی
بستهماجیول

  • از سیم‌کشی صحیح اطمینان حاصل کنید: VCC به 3.3V یا 5V، GND به زمین، SDA به A4، SCL به A5 (برای Arduino Uno).
  • نمایشگر به مقاومت‌های pull-up روی خطوط SDA و SCL نیاز دارد، در صورتی که این مقاومت‌ها قبلاً تعبیه نشده باشند.
  • اطمینان حاصل کنید که آدرس I2C در شِفر (کود) به‌درستی تنظیم شده است؛ معمولاً برای این نمایشگر 0x3C است.
  • برای یکپارچه‌سازی آسان از یک کتابخانهٔ مناسب مانند Adafruit_SSD1306 استفاده کنید.
  • قبل از ترسیم گرافیک‌های جدید، صفحه‌نمایش را پاک کنید تا از ایجاد آثار هم‌پوشانی جلوگیری شود.

دستورالعمل‌های سیم‌کشی

Arduino wiring for SSD1306 OLED
Arduino wiring for SSD1306 OLED

برای سیم‌کشی نمایشگر OLED مدل SSD1306 به آردوینو خود، مراحل زیر را دنبال کنید:

پایه VCC نمایشگر OLED را به پایه 5V (یا 3.3V) روی آردوینو متصل کنید. سپس پایه GND نمایشگر را به پایه زمین روی آردوینو متصل کنید. برای ارتباط I2C، پایه SDA نمایشگر را به پایه A4 آردوینو و پایه SCL را به پایه A5 متصل کنید. این تنظیمات به آردوینو امکان می‌دهد از طریق پروتکل I2C با نمایشگر OLED ارتباط برقرار کند.

اطمینان حاصل کنید که همهٔ اتصالات محکم هستند و دوباره بررسی کنید که از ولتاژ صحیح برای مدل نمایشگر خاص خود استفاده می‌کنید. اگر از مدل دیگری از آردوینو استفاده می‌کنید، پایه‌های SDA و SCL ممکن است متفاوت باشند (مثلاً در آردوینو مگا، SDA روی پایه 20 و SCL روی پایه 21 قرار دارد).

نمونه‌های شِفر (کود) و راهنمای گام‌به‌گام

در شِفر (کود)، نمایشگر را مقداردهی اولیه کرده و پارامترهایی مانند آدرس I2C و ابعاد را تنظیم می‌کنیم. یکی از شناسه‌های کلیدی عبارت است ازdisplay، که نمایانگر نمونه‌ای از نمایشگر SSD1306 است. در اینجا قطعه‌ای از تابع setup آمده است:

void setup() {                
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C
}

در این قطعه،display.beginتابع نمایشگر را با آدرس I2C مشخص مقداردهی اولیه می‌کند. ضروری است آدرس را با نمایشگر خود تطابق دهید تا ارتباط صحیح برقرار شود.

سپس، در تابع loop، ازdisplay.clearDisplay()روشی برای پاک کردن صفحه نمایش قبل از رسم محتوای جدید. می‌توانیم اندازه و موقعیت متن را با استفاده ازsetTextSizeوsetCursorروش‌ها:

void loop() {
  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(2,1); // set cursor at top left corner
  display.println("Robojax"); // display text
}

در اینجا متن "Robojax" در مختصات (2,1) روی صفحه نمایش نشان داده می‌شود. این امکان قرارگیری دقیق متن روی نمایشگر OLED را فراهم می‌کند.

در نهایت، برای رندر کردن تغییرات روی نمایشگر، آن را فراخوانی می‌کنیمdisplay.display(). این تابع همهٔ دستورات ذخیره‌شده در بافر را به نمایشگر ارسال می‌کند تا محتوای آن را به‌روزرسانی کند:

display.display();

این باید آخرین خط در تابع loop شما باشد تا مطمئن شوید که تمام دستورات رسم اجرا می‌شوند. اگر این مرحله را فراموش کنید، هیچ چیزی روی نمایشگر ظاهر نخواهد شد.

فراموش نکنید که شِفر (کود) کامل برای مراجعه‌ی شما در پایین مقاله بارگذاری شده است.

نمایش / چه انتظاری داشته باشید

پس از آپلود شِفر (کود) روی آردوینو، باید متن Robojax روی صفحه OLED نمایش داده شود. شِفر (کود) همچنین اسکرول کردن متن و رسم خطوط، اشکال و دیگر گرافیک‌ها را روی نمایشگر نشان می‌دهد. مراقب خطاهای رایج باشید، مانند سیم‌کشی نادرست یا آدرس‌های I2C ناهماهنگ که می‌توانند مانع عملکرد صحیح نمایشگر شوند (در ویدیو، در 10:00).

برچسب‌های زمانی ویدیو

  • 00:00- مقدمه‌ای بر نمایشگر OLED SSD1306
  • 02:30- سیم‌کشی نمایشگر
  • 05:00- مرور شِفر (کود)
  • ساعت 08:00- نمایش قابلیت‌های نمایشگر
  • 10:00- مشکلات رایج و عیب‌یابی

تصاویر

SSD1306 OLED screen 128x32 module
SSD1306 OLED screen 128x32 module
SSD1306 OLED displaying text
SSD1306 OLED displaying text
SSD1306 OLED displaying text
SSD1306 OLED displaying text
Arduino wiring for SSD1306 OLED
Arduino wiring for SSD1306 OLED
38-This is the Arduino code for the PCA9685 16-channel 12-bit servo controller.
زبان: C++
39-This is Arduino code for an SSD1306 OLED 128 x 64 display without custom methods.
زبان: C++
40-This is the Arduino code for the SSD1306 OLED 128 x 64 display without custom methods.
زبان: C++
کپی شد!

فایل‌ها📁

هیچ فایلی موجود نیست.