/* 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);
}
}