oled-i2c.py

RP2350 (genérico / placas basadas en RP2350) · Archivo : oled-i2c.py · Lenguaje : Python · Uso : Afficher texte et compteur sur un écran OLED I2C 0,96"

Una pantalla OLED SSD1306 de 0,96" (128x64) conectada por I2C muestra texto y un contador. El script primero escanea el bus para confirmar la presencia del módulo y luego usa el driver ssd1306.py incluido con MicroPython.

Hardware

Una placa genérica con microcontrolador RP2350 (doble Cortex-M33) programada en MicroPython. 1 módulo OLED SSD1306 I2C (4 pines: VCC, GND, SCL, SDA), dirección habitual 0x3C.

Cableado

SDA a GP4, SCL a GP5, VCC a 3V3, GND común. Las resistencias de pull-up suelen venir ya en el módulo.

Funcionamiento

I2C(0, ...) configura el controlador hardware; i2c.scan() lista las direcciones que responden. El driver construye la trama 128x64 en RAM y oled.show() la transfiere de golpe.

Ejecución

Graba la versión MicroPython « RP2350 » vía BOOTSEL (.uf2) y copia el script en la unidad. El pin del LED de usuario varía según el fabricante: consulta la documentación de la placa.

Variantes

Pasa a SPI para refrescos más rápidos, o muestra la temperatura interna combinando con el script ADC correspondiente.

oled-i2c.py

# OLED SSD1306 128x64 en I2C avec le pilote ssd1306.py de MicroPython.
from machine import I2C, Pin
import ssd1306
import time

# I2C0 : SDA = GP4, SCL = GP5 (broches arbitraires mais classiques).
i2c = I2C(0, sda=Pin(4), scl=Pin(5), freq=400000)

# Verifier la presence du module (adresse usuelle 0x3C) :
trouves = i2c.scan()
print("Peripheriques I2C :", [hex(a) for a in trouves])

oled = ssd1306.SSD1306_I2C(128, 64, i2c)
oled.fill(0)
oled.text("Bonjour !", 0, 0, 1)
oled.text("I2C 0x3C", 0, 10, 1)
oled.show()
time.sleep(2)

n = 0
while True:
    oled.fill(0)
    oled.text("Compteur", 0, 0, 1)
    oled.text(str(n), 0, 20, 1)
    oled.text("RP2 MicroPython", 0, 44, 1)
    oled.show()          # transfere l'ecran entier
    n += 1
    time.sleep(1)

← Volver a la ficha