sketch_81_I2C-Bus_Scan

sketch_81_I2C-Bus_Scan
  /* Scan des I2C Busses - ermitteln der Adressen angeschlossener Geraete.
  Es wird mit zwei Bus-Takten gescannt: 100kHz und 400kHz.*/
   
  #include <Wire.h>
  
  void setup() 
  {  
   Serial.begin (9600);                       // Serial Monitor auf 9600 einstellen ! 
   int count = 0;                             // Anzahl der gefundenen I2C-Geraete 
   Wire.begin(D2,D1);                         // D2 (SDA) und D1 (SCL)  
   Serial.println();
   Serial.println ("I2C-Bus-Scan mit 100kHz");
   Wire.setClock(100000L);                 
   scan();                                    // Aufruf void scan
   Wire.setClock(400000L);                 
   Serial.println("I2C-Bus-Scan mit 400 kHz");
   scan();
  }
    
  void loop(){}                               // bleibt leer, nur einmalige Ausgabe
  
  void scan() 
  {
   int count = 0;
   for (int i = 0; i < 128; i++)              // alle moeglichen Adressen scannen
   {
    Wire.beginTransmission(i);                // Kommunikation mit Geraet(i) testen  
    if (Wire.endTransmission () == 0)         // wenn gefunden:
    { 
     Serial.print ("I2C-Adresse = ");
     Serial.print (" 0x");      
     Serial.println(i, HEX);
     Serial.println();
    }
    count++;    
    delay (20);
   }
  }