Hipotéticamente hablando ¿Es posible diferenciar a través del bus I2C tres dispositivos con la misma dirección?
2)Mi problema es el siguiente, poseo tres sensores BH1750 que lo estoy configurando como "Continuously H-resolution mode"(el fin de esa configuración es de ubicar cada sensor en lugares diferentes para comparar cada dato en un determinado lugar), mi problema está que al configurarlo de ese modo adquiere la dirección 0x23 lo cual se me hace imposible diferenciar cada dispositivo por el bus I2C. ¿Se puede crear un programa con algún artifico que pueda diferenciar cada sensor?
No lo he usado nunca pero luego de leer la hoja de datos, he visto que si pones ADDR a GND trabaja en 0x23 y si lo dejas libre sin conectar lo hace a 0x5C, ya eso te da fácilmente 2 sensores.
Dos buenos enlaces
Ahora si quieres 3 si o si, hay dos caminos:
ya que puedes direccionar 2 BH1750 yo usaría 2 arduinos y pasaría la info entre ellos.
armo con integrados 4051 o 4052 (llaves analógicas) una especie de secuenciador, en el que activo la llave que comunica al Sensor1, luego lo mismo con el sensor2 y finalmente con el sensor3.
Entonces no hay manera de poder diferenciar cada dispositivo solo por un programa sí o sí tiene que ser ya sea por otro arduino o por un multiplexor. Gracias por la respuesta, mi duda fue resuelta.
No tienes forma de diferenciar los sensors porque por lo que leí no tienen tags o etiquetas que los identifiquen.
Con dos sensores sabes con cual estas trabajando porque uno puede estar con ADDR = LOW 0x23 y el otro con ADDR = HIGH 0x5C
Con tres sensores, también sabras a quien estas leyendo porque todos tendran dirección 0x23, pero previamente le diras al multiplexor, leo el sensor 1, luego el 2, luego el 3.
Mira el 4052, tiene 2 pines A y B que segun los pongas 00, 01, 10, 11 tienes hasta 4 sensores que puedes leer e identificar