//I2C-Scanner fuer TCA9548A //Code fuer Arduino //Author Retian //Version 1.0 #include //Prototype void scanneTCA(void); byte tcaI2cAdd; void setup() { Serial.begin(115200); Wire.begin(); Serial.println(F("I2C-Scanner fuer TCA9548A")); Serial.println(); } void loop() { bool tcaGefunden = false; Serial.print(F("Scanne TCA9548A-Adressen:")); for (byte tcaI2cAdd = 0x70; tcaI2cAdd < 0x78; tcaI2cAdd++) { Wire.beginTransmission(tcaI2cAdd); if (Wire.endTransmission() == 0) { tcaGefunden = true; Serial.print(F(" 0x")); Serial.print(tcaI2cAdd, HEX); Serial.println(F(" gefunden")); Serial.println(F("Scanne Kanaele:")); scanneTCA(tcaI2cAdd); } } if (!tcaGefunden) Serial.println(F("TCA9548A nicht gefunden")); Serial.println(); delay(10000); } void scanneTCA(byte tcaAdd) { bool adresseGefunden = false; for (byte channel = 0; channel < 8; channel++) { Wire.beginTransmission(tcaAdd); Wire.write(1 << channel); Wire.endTransmission(); for (byte add = 0; add < 128; add++) { if (add != tcaAdd) { Wire.beginTransmission(add); if (Wire.endTransmission() == 0) { adresseGefunden = true; Serial.print(F("Kanal ")); Serial.print(channel); Serial.print(F(": Adresse 0x")); Serial.print(add, HEX); Serial.println(F(" gefunden")); } } } } if (!adresseGefunden) Serial.println(F("Keine Adresse gefunden")); }