/* * I2C-Scanner fuer ESP32 * ----------------------- * Zweck: Pruefen, ob die HUSKYLENS 2 (oder ein anderes I2C-Geraet) * ueberhaupt am I2C-Bus antwortet. * * Warum dieser Test? * Wenn im Hauptprogramm staendig "HuskyLens 2 nicht gefunden" erscheint, * liegt das FAST IMMER an der Hardware (Verkabelung / Stromversorgung), * nicht am Programm. Dieser Scanner trennt beide Faelle sauber: * * -> Scanner findet 0x32 = Verkabelung/Strom OK, Fehler liegt im Programm. * -> Scanner findet NICHTS = Verkabelung, Pins, Masse oder Stromversorgung * pruefen (siehe Checkliste unten). * * Die HUSKYLENS 2 meldet sich im I2C-Modus auf der Adresse 0x32. * * Wichtig bei der HUSKYLENS 2: * - Sie braucht mehr Strom, als die I2C-Pins des ESP32 liefern koennen! * -> Kamera zusaetzlich ueber ihren eigenen USB-C-Anschluss mit Strom * versorgen (Netzteil/Powerbank). * - Gemeinsame Masse (GND) zwischen ESP32 und Kamera nicht vergessen. * - Im Kamera-Menue muss "Protocol Type" auf I2C stehen (ist Standard). * * Anschluss (Standard ESP32-WROOM / DevKit): * SDA -> GPIO 21 * SCL -> GPIO 22 * GND -> GND * (Bei ESP32-S3 / -C3 ggf. andere Pins! Dann I2C_SDA / I2C_SCL unten anpassen.) * * Nach dem Hochladen: Seriellen Monitor mit 115200 Baud oeffnen. */ #include #define I2C_SDA 21 // ggf. an euer Board anpassen #define I2C_SCL 22 // ggf. an euer Board anpassen void setup() { Serial.begin(115200); delay(500); Wire.begin(I2C_SDA, I2C_SCL); Serial.println("================================="); Serial.println(" I2C-Scanner fuer ESP32"); Serial.println("================================="); Serial.println("Gesucht wird u.a. die HUSKYLENS 2 auf Adresse 0x32."); Serial.println(); } void loop() { byte gefunden = 0; Serial.println("Scanne I2C-Bus ..."); for (byte adresse = 1; adresse < 127; adresse++) { Wire.beginTransmission(adresse); byte fehler = Wire.endTransmission(); if (fehler == 0) { gefunden++; Serial.print(" -> Geraet gefunden auf Adresse 0x"); if (adresse < 16) Serial.print("0"); Serial.print(adresse, HEX); if (adresse == 0x32) { Serial.print(" <== das ist die HUSKYLENS 2!"); } Serial.println(); } } if (gefunden == 0) { Serial.println(" Kein I2C-Geraet gefunden!"); Serial.println(" Bitte pruefen:"); Serial.println(" 1. HUSKYLENS 2 ueber eigenen USB-C mit Strom versorgt?"); Serial.println(" 2. SDA/SCL richtig verbunden (nicht vertauscht)?"); Serial.println(" 3. Gemeinsame Masse (GND) zwischen ESP32 und Kamera?"); Serial.println(" 4. Richtige Pins fuer euer ESP32-Board eingestellt?"); Serial.println(" 5. Am Kamera-Menue Protocol Type = I2C?"); } else { Serial.print(" Fertig. "); Serial.print(gefunden); Serial.println(" Geraet(e) gefunden."); } Serial.println(); delay(3000); }