LCD de 16×2 con módulo I2C (PCF8574)
Display de 16 columnas × 2 líneas con luz de fondo y el módulo I2C (PCF8574) soldado detrás: en lugar de 6 cables o más, solo GND, VCC, SDA y SCL. Cada carácter es una cuadrícula de 5 × 8 puntos; puedes crear hasta 8 caracteres propios. Los drivers lcd_api.py e i2c_lcd.py NO vienen en el firmware: copia los dos a la placa. Si la pantalla se ilumina pero no aparece nada, gira el trimpot de contraste (azul, detrás).
Distribución de pines
| Pin | Conectar a | Observación |
|---|---|---|
| GND | GND | |
| VCC | VIN (5 V) | el LCD necesita 5 V |
| SDA | GPIO21 (conexión usada en el ejemplo) | datos del I2C |
| SCL | GPIO22 (conexión usada en el ejemplo) | reloj del I2C |
Del programa al semestre planificado
- Plan de enseñanza y calendario montados solos
- Diario de clases listo para pegar en el SIGA
- Diapositivas y listas de ejercicios con solucionario
Versión Community gratis · Windows
Ejemplo en MicroPython
# ANTES: copia lcd_api.py e i2c_lcd.py (dhylands/python_lcd) a la placa.
from machine import Pin, I2C
from i2c_lcd import I2cLcd
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()) # 39 (0x27) o 63 (0x3F)
lcd = I2cLcd(i2c, 0x27, 2, 16) # dirección, líneas, columnas
lcd.putstr("Hola, ESP32!")
# carácter propio en el código 0: un corazón (8 filas de 5 puntos)
lcd.custom_char(0, bytearray([0x00, 0x0A, 0x1F, 0x1F, 0x0E, 0x04, 0x00, 0x00]))
t = 25
while True:
lcd.move_to(0, 1) # columna 0, línea 1 (la de abajo)
lcd.putstr("Temp: %d" % t + chr(223) + "C " + chr(0)) # 223 = símbolo de grado
t += 1
time.sleep(1)
Especificaciones
| Elemento | Valor | Fuente |
|---|---|---|
| Tamaño | 16 columnas × 2 líneas | Catálogo de componentes de PyPlaca |
| Alimentación | 5 V | Valores típicos de hoja de datos |
| Con 3,3 V | el módulo responde por I2C, pero el cristal se queda sin contraste (aviso lcd-sem-5v) | Catálogo de componentes de PyPlaca (PCF8574: TI SCPS068; HD44780U: Hitachi ADE-207-272) — En verificación: comprobar en el LCD del laboratorio |
| Dirección I2C | 0x27 o 0x3F (depende del chip del módulo) | Valores típicos de hoja de datos |
| Contraste | trimpot en el módulo: mal ajustado = pantalla "vacía" | Valores típicos de hoja de datos — En verificación: rango del trimpot que muestra los caracteres |
| Caracteres | 5 × 8 puntos; los códigos 0–7 son los tuyos (custom_char); 223 = ° | Hoja de datos HD44780U (Hitachi), tabla 4 — ROM A00 |
| Drivers | lcd_api.py + i2c_lcd.py — copiar a la placa | Github.com/dhylands/python_lcd (lcd/lcd_api.py y lcd/i2c_lcd.py) |
| Pull-up en SDA/SCL | el módulo los trae; con VCC en 5 V, ¿tiran a 5 V? | Catálogo de componentes de PyPlaca — En verificación: medir en el módulo del laboratorio |
Los valores con "En verificación" todavía se comprobarán en las piezas del laboratorio.