/********* Based on Rui Santos Complete project details at https://randomnerdtutorials.com https://randomnerdtutorials.com/esp32-i2c-scanner-arduino/ ESP32 default I2C pins are: GPIO 22 (SCL) - GPIO 21 (SDA) https://wolles-elektronikkiste.de/i2c-scanner - Testet mit unterschiedlichen Datenraten Der I2C Bus besteht aus zwei Leitungen, meist als SDA/SCL bezeichnet. SDA überträgt Daten, SCL gibt Takt vor und bestimmt so die Datenrate. Datenraten: Standard Mode, Takt: 100 kHz - Fast: 400 kHz - Fast Plus: 1 MHz - High Speed: 3.4 MHz - Ultra Fast: 5 MHz (nur unidirektional) !!! Restart CPU in order to see the console *********/ #include #include //int I2C_Address_Find(); //bool I2C_Address_Exist(int I2C_Adress); I2C_Devices MyLCD; int I2C_Adress_LCD; bool Flag_I2C_Adress_LCD; void setup() { Serial.begin(115200); delay(500); // auf seriellen Monitor warten Serial.println("\n +++++++++++ MAIN ++++++++++++"); //I2C_Adress_LCD = MyLCD.I2C_Address_Find(); //Flag_I2C_Adress_LCD = MyLCD.I2C_Address_Exist(I2C_Adress_LCD); } void loop() { } /* bool I2C_Address_Exist(int I2C_Adress) { Wire.begin(); bool Flag_I2C_Adress; byte error, address; int nDevices; nDevices = 0; for(address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Flag_I2C_Adress = true; nDevices++; } else if (error==4) { Flag_I2C_Adress = false; } } if (nDevices == 0) { Flag_I2C_Adress = false; } else {Serial.println("Flag_I2C_Adress = " + String( Flag_I2C_Adress)); } return Flag_I2C_Adress; } int I2C_Address_Find() { // Finde I2C-Adresse, gib sie zurück, Rückgabewert 0xFFFF = unbek. Error, 0xAAAA = keine gefunden Wire.begin(); int IC2_Address; byte error, address; int nDevices; nDevices = 0; for(address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { IC2_Address = address; nDevices++; } else if (error==4) { IC2_Address = 0xFFFF; } } if (nDevices == 0) { IC2_Address = 0xAAAA; } else { Serial.println("IC2_Address = " + String(IC2_Address)); } return IC2_Address; } */