====== [I2C] Código Arduino para localizar direcciones I2C ======
* [[https://proyectoarduino.com/bus-i2c/|Arduino y el bus I2C]]
* **Comprobado**. Este código puede utilizarse para identificar la dirección I2C de cada dispositivo conectado a ese bus. Muy útil cuando la desconocemos y necesitamos emplearla en nuestros programas. Bastará conectar a los pines ''SDA'' y ''SCL'' del Arduino los homólogos del dispositivo y cargar este programa en el Arduino: Por el terminal serie nos aparecerá su dirección I2C.
#include
void setup() {
// Habilitación de comunicaciones
Serial.begin (9600); // Habilitamos puerto serie a 9600 baudios
while (!Serial) {}; // Esperamos a que el puerto serie se conecte
Wire.begin(); // Habilitamos bus I2C
delay (2000); // Espera prudencial para encender dispositivos I2C
// Búsqueda de dispositivos I2C
Serial.println ();
Serial.println ("Escaneando direcciones I2C...");
byte contador = 0; // Reseteamos el contador de dispositivos conectados
// Bucle de búsqueda
for (byte direccion = 1; direccion < 120; direccion++){
// Petición de transmisión a esa dirección
Wire.beginTransmission (direccion);
if (Wire.endTransmission () == 0){
// Existe un dispositivo con esa dirección
Serial.print ("Encontrada dirección: ");
Serial.print (direccion,DEC);
Serial.print (" (0x");
Serial.print (direccion,HEX);
Serial.println (")");
contador++; // Actualizamos numero dispositivos encontrados
} // Final de dispositivo encontrado
} // Final del bucle de búsqueda de dispositivos
Serial.println ("Búsqueda finalizada.");
Serial.print ("Encontrados ");
Serial.print (contador,DEC);
Serial.println (" dispositivo(s).");
} // Final del setup
void loop() {} // Final del loop
* Ejemplo de salida para el módulo de color GY-33
Escaneando direcciones I2C...
Encontrada dirección: 41 (0x29)
Búsqueda finalizada.
Encontrados 1 dispositivo(s).
* Ejemplo de salida para el módulo de color GY-33 y un expansor PCF8574
Escaneando direcciones I2C...
Encontrada dirección: 32 (0x20)
Encontrada dirección: 41 (0x29)
Búsqueda finalizada.
Encontrados 2 dispositivo(s).