oled-i2c.py

Raspberry Pi Pico W · 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 Raspberry Pi Pico W (RP2040 + chip radio Wi-Fi de 2,4 GHz) con MicroPython instalado, alimentada por USB. 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

Instala la versión MicroPython « Pico W » (BOOTSEL + .uf2) y copia el script vía Thonny. Como el LED de usuario lo gestiona el chip de radio, los ejemplos de salida usan un LED externo.

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