El PCF8574 es un expansor de entradas y salidas digitales por bus I2C fabricado por Philips. Puede conectarse a un procesador como Arduino para controlar más dispositivos empleando con menos pines debido a que Arduino posee también bus I2C.
El PCF8574 incorpora 8 pines cuasidireccionales basados en salidas CMOS en configuración drenador abierto. Esto significa que pueden ser empleados tanto como entradas como salidas.
La corriente máxima que puede suministrar cada pin, cuando actúa como salida, es de:
0.1.Por tanto, la configuración normal es como sink. Todas las salidas disponen de Latches, es decir, mantienen el estado por sí mismas sin necesidad de acciones desde Arduino. Únicamente debernos actuar cuando queramos modificar el estado de unas de las salidas.
La comunicación se realiza a través del bus I2C. En él cada dispositivo se distingue por una dirección. El integrado dispone de 3 pines para completar su dirección I2C, lo que da 8 integrados posibles conectados al mismo bus I2C. Por tanto, es posible controlar 64 dispositivos usando únicamente los 2 pines del bus I2C: SCL y SDA.
0x20 a 0x27 en el PCF8574 y de 0x38 a 0x3F en el PCF8574A. Es decir, podemos poner en el mismo bus 8 PCF8574 y 8 PCF8574A.
También dispone de una línea de interrupción (INT) que puede ser empleada para detectar una variación en uno de sus pines. Conectada a un pin de interrupciones de Arduino podemos detectar la recepción de datos sin necesidad de monitorizar constantemente por el estado de las entradas.
La tensión de alimentación del PCF8574 es entre 2.5V y 6V. Por otro lado su consumo en stand-by es muy bajo, inferior a 10 µA.
Podemos emplear el PCF8574 para ampliar el número de entradas y salidas digitales disponibles, y controlar 8 dispositivos (o hasta 64 si usamos varios módulos) únicamente con 2 pines. Esto es especialmente útil en modelos de Arduino con menor número de pines, como el Attiny85 empleado en placas Digispark.
Al conectar las cargas a cada uno de los 8 pines tendremos en cuenta ciertas consideraciones. Como hemos dicho cada pin cuasibidireccional tiene configuración de drenador abierto. A modo resumen algo simplificado, dentro de cada pin tenemos un transistor CMOS junto con una débil resistencia de pull-up, que impone una intensidad de corriente de 100 uA cuando el transistor está activado.
