I2C-Scanner zum Testen der HuskyLens-Verbindung hinzugefuegt
This commit is contained in:
parent
27c24fd24d
commit
112e9b39b9
1 changed files with 90 additions and 0 deletions
90
I2C_Scanner_ESP32.ino
Normal file
90
I2C_Scanner_ESP32.ino
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
/*
|
||||
* 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 <Wire.h>
|
||||
|
||||
#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);
|
||||
}
|
||||
Loading…
Reference in a new issue