Display OLED SSD1306 de 128×64 (I2C)
Pantallita OLED de 128 × 64 puntos que se encienden solos (no tiene luz de fondo). Habla con la ESP32 por I2C (solo 2 cables de datos: SCL y SDA). El driver ssd1306.py NO viene en el firmware: copia el archivo a la placa antes. Dibujas en la memoria (texto, puntos, rectángulos) y solo aparece en la pantalla con oled.show(). Atención: el orden de los pines cambia de un fabricante a otro (VCC y GND intercambiados).
Distribución de pines
| Pin | Conectar a | Observación |
|---|---|---|
| GND | GND | comprueba el orden impreso en TU módulo |
| VCC | 3V3 | en algunos módulos el VCC va antes del GND |
| SCL | GPIO22 (conexión usada en el ejemplo) | reloj del I2C |
| SDA | GPIO21 (conexión usada en el ejemplo) | datos del I2C |
La IA que recuerda tu vida y vive en tu ordenador
- Memoria a largo plazo con la fuente de cada respuesta
- Funciona sin conexión: tus datos se quedan en tu PC
- Lee PDF, diapositivas, fotos y grabaciones de reuniones
Plan Esencial gratis para siempre
Ejemplo en MicroPython
# ANTES: copia ssd1306.py (micropython-lib) a la placa — no viene en el firmware.
from machine import Pin, I2C
import ssd1306
import time
# conexión usada aquí (común en la DevKit): SCL en el GPIO22 y SDA en el GPIO21
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
print(i2c.scan()) # el OLED responde en 60 (0x3C)
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # dirección 0x3C
oled.fill(0) # borra todo (en la memoria)
oled.text("Hola, ESP32!", 0, 0) # la fuente 8x8 no tiene tildes
oled.rect(0, 16, 128, 48, 1) # marco
oled.show() # ahora sí aparece en la pantalla
n = 0
while True:
oled.fill_rect(8, 32, 112, 8, 0) # borra solo la línea del contador
oled.text("contador: %d" % n, 8, 32)
oled.show()
n += 1
time.sleep(1)
Especificaciones
| Elemento | Valor | Fuente |
|---|---|---|
| Resolución | 128 × 64 puntos | Catálogo de componentes de PyPlaca |
| Dirección I2C | 0x3C (alternativa 0x3D) | Valores típicos de hoja de datos |
| Orden de los pines | GND, VCC, SCL, SDA — varía según el fabricante (variante con VCC y GND intercambiados) | Valores típicos de hoja de datos |
| Driver | ssd1306.py — copiar a la placa | Valores típicos de hoja de datos; micropython-lib: micropython/drivers/display/ssd1306/ssd1306.py |
| Alimentación | 3,3 V en el simulador | Catálogo de componentes de PyPlaca — En verificación: rango de VCC del módulo (¿acepta 5 V?) |
| Pull-up en SDA/SCL | hay módulos con y sin las resistencias (propiedad de la pieza); sin pull-up el I2C no funciona | Catálogo de componentes de PyPlaca — En verificación: comprobar en el módulo del laboratorio |
| Color de la pantalla | blanca en el simulador | En verificación: hay módulos azules y amarillo + azul — ¿cuál es el del laboratorio? |
Los valores con "En verificación" todavía se comprobarán en las piezas del laboratorio.