/* Scan des I2C Busses - ermitteln der Adressen angeschlossener Geraete. Es wird mit zwei Bus-Takten gescannt: 100kHz und 400kHz Beachte: Je nach Ausfuhrung des Nano evtl "ATmega328P(Old Bootloader)" einstellen*/ #include <Wire.h> void setup() { Serial.begin (9600); // Serial Monitor auf 9600 einstellen ! int count = 0; // Anzahl der gefundenen I2C-Geraete Wire.begin(); 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); } }