متوسط⏱ 16 دقیقه مطالعه

I2C پروتکلی است که با تنها دو سیم (SDA برای داده و SCL برای ساعت) امکان اتصال چندین قطعه هم‌زمان به دو پایهٔ ثابت را می‌دهد. هر قطعه یک آدرس منحصربه‌فرد دارد. این پروتکل برای نمایشگرها، سنسورهای دقیق (شتاب‌سنج، فشارسنج) و ماژول‌های ساعت واقعی (RTC) بسیار محبوب است.

اتصال نمایشگر OLED با I2C به ESP32

اسکن آدرس دستگاه‌های I2C

PYTHON
from machine import Pin, I2C

i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
devices = i2c.scan()
print("دستگاه‌های یافت‌شده:", [hex(d) for d in devices])
💡 نکته

اگر لیست خالی برگشت، اتصالات SDA/SCL و تغذیه ماژول را بررسی کنید؛ همچنین برخی ماژول‌ها به مقاومت Pull-up خارجی نیاز دارند.

راه‌اندازی نمایشگر OLED (SSD1306)

برای استفاده از نمایشگر OLED به کتابخانهٔ ssd1306.py نیاز داریم (از طریق Thonny یا mip قابل نصب است).

PYTHON
from machine import Pin, I2C
import ssd1306

i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)

oled.fill(0)
oled.text("Hello, ESP32!", 10, 10)
oled.text("آکادمی میکروپایتون", 0, 30)
oled.show()
نمایشگر OLED با I2C روی ESP32 باز کردن در Wokwi ↗

این یک شبیه‌سازی واقعی و قابل اجراست؛ روی دکمه پخش (▶) در Wokwi بزنید تا کد روی برد مجازی ESP32 اجرا شود.

🛠️ کارگاه عملی

کارگاه عملی: با استفاده از حلقهٔ while و oled.fill(0) + oled.show()، یک شمارندهٔ زنده روی صفحه OLED نمایش دهید.

❓ چند سیم داده/ساعت برای پروتکل I2C نیاز است؟
طراحی و توسعه: امین شیخ نجدیglcd.ir