🛠 Afficher sur un OLED I2C SSD1306 et déboguer le bus

RP2040 (placa genérica / chip) · intermediaire · Schéma : IMG-rp2040-generic-intermediaire-1-rp2040-i2c-oled-ssd1306.svg — module OLED 0,96 pouces SSD1306 relié en I2C à une carte RP2040 générique : VCC 3V3, GND, SDA sur GP4, SCL sur GP5, écran affichant température et texte

Objetivos

Montar una pantalla autónoma en tu placa RP2040: el I2C del RP2040 (2 controladores, mapeables en cualquier GPIO — hoja de datos) controlado por MicroPython, con el clásico módulo OLED SSD1306 128×64. Aprenderás principalmente a escanear un bus I2C — la habilidad que salva cuando no se sabe si el módulo está muerto, mal conectado, o en la dirección 0x3C o 0x3D.

Material

Código completo

# scan_i2c.py — d'abord, trouver le module
from machine import I2C, Pin
i2c = I2C(0, sda=Pin(4), scl=Pin(5), freq=400000)
print('adresses vues:', i2c.scan)     # attendu: [60] soit 0x3C

# oled_demo.py — afficher température interne + texte
import ssd1306, time
from machine import Temp

oled = ssd1306.I2C(128, 64, device=i2c)  # adresse 0x3C détectée
try:
    temp = Temp                        # capteur interne (MicroPython >= 1.22)
except NameError:
    from machine import ADC
    _a = ADC(4)                          # fallback : canal ADC4 interne
    def read_T:
        mv = _a.read_u16 * 3.3 / 65535
        return 27.0 - (mv - 0.706) / 0.001721
else:
    def read_T:
        return temp.temperature

oled.text('RP2040 generique', 0, 0, 1)
oled.text('I2C 400 kHz OK', 0, 10, 1)
while True:
    oled.text('T: %6.2f C' % read_T, 0, 30, 1)
    oled.show
    time.sleep_ms(500)

Verificación esperada

i2c.scan devuelve [60] (0x3C en decimal — la otra dirección posible del SSD1306 es 0x3D, puente jumper en el módulo). La pantalla muestra las líneas de texto y la temperatura del sensor interno del RP2040 que sube cuando pones el dedo sobre el chip. Desconecta el SDA: scan devuelve [] — el bus está vivo, el driver también.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales