Escribo para comentar un problema que me está empezando a volver loco, pues está paralizando mi proyecto antes aún de que éste empiece...
Tengo un multiplexor i2c de Adafruit. Estoy tratando de probarlo con el código que aparece en esta página:
Además, estoy utilizando el mismo código que podéis ver en ese mismo link. Dicho código sirve para escanear los puertos del multiplexor y ver qué hay en cada uno.
Cuando utilizo el programa, la consola se queda en "TCAscanner ready!" y no hace nada más.
Utilizo un arduino UNO y un arduino lilypad USB, con idénticos resultados.
Bueno analicemos tu código.
Lo primero es que solo hará algo 1 vez. El código esté en el setup asi que lo energizas y lo hace y nada mas a menos que mi visión superficial esté fallando.
/**
* TCA9548 I2CScanner.pde -- I2C bus scanner for Arduino
*
* Based on code c. 2009, Tod E. Kurt, http://todbot.com/blog/
*
*/
#include "Wire.h"
extern "C" {
#include "utility/twi.h" // from Wire library, so we can do bus scanning
}
#define TCAADDR 0x70
void tcaselect(uint8_t i) {
if (i > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << i);
Wire.endTransmission();
}
// standard Arduino setup()
void setup()
{
while (!Serial);
delay(1000);
Wire.begin();
Serial.begin(115200);
Serial.println("\nTCAScanner ready!");
for (uint8_t t=0; t<8; t++) {
tcaselect(t);
Serial.print("TCA Port #"); Serial.println(t);
for (uint8_t addr = 0; addr<=127; addr++) {
if (addr == TCAADDR) continue;
uint8_t data;
if (! twi_writeTo(addr, &data, 0, 1, 1)) {
Serial.print("Found I2C 0x"); Serial.println(addr,HEX);
}
}
}
Serial.println("\ndone");
}
void loop()
{
}
luego de mostrarte TCAscanner Ready! debe ir a esta librería
extern "C" {
#include "utility/twi.h" // from Wire library, so we can do bus scanning
}
que debiste guardar en un archivo twi.h en la carpeta utility
lo tienes asi?