====== [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).