Consulta de comandos de la librería Wire

B. Días y Felicidades para todos.
Aquí les dejo un trabajo que hice con el comunicador de I2C PCF8574 con Arduino por si alguno le sirve.

Bien Ahora la consulta.

No logro leer un pin determinado del PCF8574 con los comandos de la librería Wire.

Lo que yo hago es Leer la cadena completa y con un ciclo “FOR” consulto por una posición determinada; pero no logro leer solo en una posición determinada. ¿hay algún comando de la librería que me lo permita? yo no lo he encontrado.

Gracias

Ejemplo de Lectura:
Wire.beginTransmission(0x20);
Wire.requestFrom((int)0x20,1);
uint8_t Cadena = Wire.read();
Wire.endTransmission();

Cadena => 00011101

Posicion => que hay en el pin 4???

uint8_t Cadena = Wire.read(4); // Esto me da error en el Compilador

No tiene nada que ver el problema que tienes con Wire. Lo que haces mal es la lectura del bit correspondiente.

Primero: read no acepta parametros. Lee un byte del bufer I2C.

Segundo: asumo que la operación de lectura del expansor está bien (no me acuerdo ahora), y que en cadena tienes el byte donde cada bit te indica el estado de un pin.

Entonces puedes usar la macro bitRead(x, n). Siendo x la variable de la que quieres leer el bit, y n el bit.

Por ejemplo:

uint8_t bit4 = bitRead(Cadena, 4);

Hola Victor

Muchas gracias voy a modificarlo de acuerdo a lo que me has escrito.