Am Ende möchte ich jeweils 2 Werte vom einem Arduino Mega an 6x ESP32 übermitteln.
I2C Mega zu Mega habe ich ohne Problem hinbekommen, aber bei ESP32 scheitere ich mit Ausdauer. Ein Levelshifter ist verbaut, Mega bzw. ESP3Ich versuche einen Arduino Mega (hat alle Sensoren) & 6 ESP32 WROOM-32 per I2C zu verbinden, am Ende möchte ich jeweils 2 Werte vom Mega an einen ESP32 übermitteln.
Zwischen 2 Arduino´s habe ich den Datenaustausch mit wire bzw. mit&ohne I2C_Anything.h ans laufen gekriegt, zu den ESP32 bzw. testweise auch nur 2 ESP32 untereinander will es nichts funktionieren.
Zum Testen sind jetzt 2 ESP32 an Gpio D21 & D22 verbunden, beide mit 4,7k Pullup an 3,3V.
Aber egal was ich versuche mit den ESP32 funktioniert es nicht. Sind die nicht zu Wire kompatibel ?
Hardware: Arduino Mega bzw. 6x ESP32-Wroom + Levelshifter
Software: Arduino IDE 2.1.0
Nö, ich habe aus der verlinkten Doku " slaveWrite" zitiert. Einfach mal rein schauen.
Anderseits warum braucht der TO 6 ESP32 als Slave an einem MEGA? Das wäre schon interessant zu wissen. Evtl. geht er von falschen Voraussetzungen aus.
Das ist ja wie 6 Porsche an einem Polo
Ich würde eher die 6 ESP per WLAN verbinden und wenn nötig den MEGA als Slave an einen davon ran hängen.
Wie groß sind die Entfernungen zwischen dem MEGA und den ESP32?
Das klingt nach KFZ, also elektrisch verseuchte Umgebung.
Warum kann das nicht ein ESP32 erledigen bzw. gleich der MEGA mit?
12:05:33.092 -> A6 0 BB 1 rxWert_1: 166 rxWert_2: 443
12:05:34.096 -> BC 0 4 0 rxWert_1: 188 rxWert_2: 4
12:05:35.099 -> B 1 F5 2 rxWert_1: 267 rxWert_2: 757
12:05:36.102 -> AC 0 2E 0 rxWert_1: 172 rxWert_2: 46
Keine gute Idee, PullUp müssen sein. Bei mir siehst Du keine, weil der originale Mega2560 je 10 kΩ auf dem Board hat.
Ist Deine Hardware irgendwie anders?
Als ich meine ESP32 vor ein paar Jahren kaufte, hat ein freundlicher Herr von Espressif dies so gesagt. Daher nutze ich zum Testen, also für kurze Zeit, keine Levelshifter. Ich tue dies als erwachsener Mensch in eigener Verantwortung. Da die Aussage von Espressif aber nicht in den Datenblättern zu finden ist, empfehle ich, sich an die Datenblätter zu halten und Levelshifter zu verwenden.