Análisis de Experto
Experto verificado
Análisis general del producto
He utilizado este módulo PCF8575 durante varias semanas en montajes con Arduino UNO R3, Arduino Nano y placas compatibles de 3,3 V para ampliar el numero de entradas y salidas digitales sin consumir una gran cantidad de pines del microcontrolador. Su planteamiento es sencillo: la comunicacion se realiza mediante el bus I2C, utilizando unicamente las lineas SDA y SCL, mientras que el integrado proporciona 16 canales digitales adicionales.
La principal ventaja es que permite resolver de forma limpia la falta de pines en proyectos con muchos pulsadores, indicadores luminosos, sensores digitales o pequeños actuadores. No sustituye a un microcontrolador adicional ni ofrece entradas analogicas, PWM o interfaces independientes, pero como expansion digital resulta practico y economico. El PCF8575 trabaja con una alimentacion comprendida entre 2,5 y 5,5 V, por lo que se adapta tanto a sistemas de 5 V como a numerosas placas de 3,3 V.
En una instalacion de domotica lo he empleado para leer varios interruptores de pared y controlar indicadores LED, dejando libres los pines del Arduino para una pantalla y un sensor de temperatura. Tambien encaja bien en paneles de control, teclados matriciales sencillos y prototipos donde el numero de señales digitales crece rapidamente.
Calidad de construccion y materiales
La placa tiene el formato compacto habitual de los modulos para prototipado y se integra con facilidad en una protoboard mediante cables Dupont. Los puntos de conexion estan claramente agrupados: alimentacion, bus I2C, lineas de direccion y los 16 canales de entrada y salida. En este tipo de modulo conviene revisar visualmente las soldaduras antes de instalarlo, especialmente si se va a utilizar en un montaje permanente o sometido a vibraciones.
El diseño no esta pensado para cargas de potencia. Sus pines son adecuados para señales logicas, LED con su resistencia correspondiente, pulsadores y sensores sencillos, pero no para alimentar directamente motores, tiras LED, solenoides o reles de consumo elevado. Para esas cargas utilizaria un transistor, un MOSFET o un modulo de reles con su etapa de proteccion.
Un detalle importante es que las entradas y salidas del PCF8575 son de tipo cuasi bidireccional. Al emplearlas como entrada, normalmente hay que escribir un nivel alto en el canal para permitir que la señal externa sea leida correctamente. En botones conectados a masa, una resistencia de polarizacion ayuda a evitar estados flotantes y lecturas inestables.
Compatibilidad y rendimiento
La conexion basica es directa: VCC y GND a la alimentacion, SDA y SCL al bus I2C de la placa principal y, opcionalmente, la salida de interrupcion a un pin capaz de gestionar interrupciones. En un Arduino UNO R3, el cableado es especialmente sencillo porque las lineas I2C estan disponibles en los pines correspondientes del bus. En placas como ESP8266 o ESP32 hay que comprobar los pines configurados para SDA y SCL, ya que pueden variar segun la tarjeta y el entorno de desarrollo.
La direccion I2C inicial suele ser 0x20 y puede modificarse mediante las entradas de direccion A0, A1 y A2. Esto permite utilizar varias unidades en el mismo bus, con hasta ocho direcciones dentro del rango habitual, siempre que no existan conflictos con otros perifericos. Antes de programar, recomiendo ejecutar un escaner I2C: ahorra tiempo y permite confirmar tanto el cableado como la direccion real del modulo.
En mis pruebas, la velocidad normal de 100 kHz ha sido suficiente para botones, indicadores y sensores de respuesta lenta. El integrado admite el modo rapido de I2C hasta 400 kHz, aunque no esperaria la misma respuesta que ofrecen los GPIO nativos cuando se necesita conmutar muchas salidas a gran velocidad. Cada acceso implica una transaccion por el bus y, en la practica, las 16 lineas se gestionan como dos grupos de ocho bits. Para animaciones muy rapidas, control de motores o señales temporizadas con precision, prefiero utilizar pines directos o un expansor mas especializado.
Tambien hay que prestar atencion a la nomenclatura de los canales. El integrado organiza sus puertos como P00-P07 y P10-P17, mientras que algunas bibliotecas los presentan como una numeracion consecutiva. Confirmar el mapeado antes de conectar los perifericos evita que el programa accione un canal distinto al esperado.
Puntos fuertes y aspectos mejorables
Puntos fuertes:
- Añade 16 E/S digitales usando solo dos lineas del microcontrolador.
- Compatible con alimentaciones de 3,3 y 5 V dentro de su rango de trabajo.
- Permite configurar individualmente los canales para leer entradas o controlar salidas.
- Admite varias unidades en el mismo bus mediante direccionamiento por hardware.
- Es una solucion sencilla para prototipos con muchos botones, LED o señales digitales.
Aspectos mejorables:
- No ofrece entradas analogicas ni PWM independiente.
- La arquitectura cuasi bidireccional exige comprender bien la gestion de niveles altos y bajos.
- La respuesta es mas lenta y depende mas del trafico I2C que la de un GPIO nativo.
- No es apropiado para accionar cargas de potencia sin una etapa electronica adicional.
- La compatibilidad practica depende de la biblioteca y del mapeado de nombres de los pines.
Como alternativa generica, un expansor basado en MCP23017 puede resultar mas comodo cuando se necesitan registros de direccion de entrada y salida mas convencionales. Para instalaciones donde la distancia del cableado sea mayor o se requiera mas velocidad, valoraria SPI, aunque implica utilizar mas señales del microcontrolador.
Veredicto del experto
El PCF8575 es una ampliacion digital muy util para proyectos Arduino en los que faltan pines, especialmente cuando las señales son lentas y sencillas. Su mejor escenario es un panel con pulsadores, LED, finales de carrera, sensores digitales y pequeños dispositivos de control.
Lo recomiendo para prototipos y automatizaciones ligeras, siempre que se respeten los limites electricos de las salidas y se configure correctamente el bus I2C. Antes de cerrar el montaje, comprobaria la direccion con un escaner, documentaria el nombre de cada canal y añadiria resistencias o transistores cuando la carga lo requiera. Con esas precauciones, ofrece una forma ordenada y flexible de ampliar un Arduino sin cambiar de plataforma.








