Esta shield es una expansora de puertos digitales que se comunica mediante I2C con el µControlador.
De esta forma se obtienen 8 puertos de entradas/salidas digitales usando solamente dos pines de Arduino.
Se usa el chip PCF8574, que presenta un direccionamiento de 3 bits, con lo que se pueden colocar hasta 8 de estas shields apiladas que contengan el mismo chip, logrando un máximo de 64 puertos. Existe una variante de este chip, el PCF8674A, cuya única diferencia es que tiene una dirección base diferente, por lo que se podrían combinar hasta 8 shields adicionales y tener asi un total de 16 shields con 128 puertos DIO en total.
El direccionamiento se logra con 3 jumpers (amarillos). El jumper rojo es para activar interrupciones por hardware en caso de entradas digitales. La placa mostrada tiene además un puerto I2C (verde) y uno RX/TX (amarillo).
El conexionado con el chip PCF8754 es muy simple, solo es necesario conectarlo con las lineas de comunicación I2C SDA y SCL de Arduino.
En cuanto a los pines digitales se mantuvo el diseño de lógica positiva (para ser compatibles con la electrónica de los sensores de FreeSensors), aunque hubiera sido para el chip PCF8574 mas natural trabajar con lógica negativa (ya que hace mas fácil los "sink" de corriente). En cambio en este diseño, para poder hacer "source" de corriente en todos los pines, se tuvo que colocar un transistor NPN en cada salida. A su vez, el hecho de colocar un transistor para la salida digital hizo que se tuviera que colocar en cada pin un jumper por hardware para poder elegir entre entrada digital y salida digital. La posición de estos jumpers debiera elegirse al momento de conectar los distintos sensores a la shield.
El archivo con el diseño se puede abrir con el programa Fritzing. Los archivos de PCB lado cobre y de carátula son archivos SVG (Scalar Vector Graphics) que pueden ser visualizados en el navegador web. Para editarlos e imprimirlos se puede usar el programa Inkscape. Para visualizar correctamente los textos dentro del SVG en Inkscape se deben tener instalados previamente los fonts DroidSans y OCR-A.
Listado de Materiales: