Ampliar entradas digitales con I2C
Cuando el número de GPIO de la Raspberry Pi Pico no basta, puedes ampliar entradas digitales con expansores I2C. Estos integrados entregan 8, 16 o más pines configurables sin sacrificar recursos del microcontrolador.
Expansores populares Chip Bits Voltaje Características MCP23017 16 1,8–5,5 V Dos bancos de 8 bits, interrupciones configurables, pull-ups internos. PCF8575 16 2,5–5,5 V Entradas/salidas quasi-bidireccionales, ideal para lectura de botones. TCA9555 16 2,3–5,5 V Interrupciones separadas, compatible con 400 kHz. SX1509 16 2,5–3,6 V PWM por pin, debounce interno y lógica de interrupciones avanzada. Conexión básica Conecta SDA y SCL al bus I2C de la Pico (GPIO 4 y 5 por defecto) con pull-ups de 4,7 kΩ. Alimenta el expansor con 3,3 V o el voltaje requerido. Configura las direcciones mediante pines A0-A2. Conecta pines de interrupción (INTA/INTB) a GPIO disponibles para detectar cambios sin sondeo constante. Ejemplo con MCP23017 en MicroPython from machine import I2C, Pin from mcp23017 import MCP23017 i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=400000) exp = MCP23017(i2c, address=0x20) exp.setup(0, MCP23017.IN, pullup=True) exp.setup(1, MCP23017.IN, pullup=True) while True: estado0 = exp.input(0) estado1 = exp.input(1) # Procesa botones En C/C++ utiliza la librería hardware/i2c.h y escribe a los registros IODIRA, GPPUA y GPIOA.