Guten Tag, als erstes entschuldige ich wegen meine verstöße gegen die D. Rechtschreibung bin etwas neu :D Ich habe ein Sensor mit analogen Output, ein GPS NEO m6 Sensor und den ESP32 Devkit mit Wlan. Alle drei Sachen sollen vereint werden. Die GPS Koordinaten (per UART) sollen zum ESP32DevKit gehen und zu meinem Server geschickt werden. Das funktioniert problemlos! Sobald ich aber am ESP32 den ADC nutzen möchte spinnt alles bezüglich time(millis) dann sind 50ms paar Sekunden. Werde stimmen nicht überein. Offenbar haben viele das Problem das die ADC beim nutzen des Wlans nicht funktionieren... dann dachte ich mit ok ich benutze ein ATMEGA8 der misst für mich und sendet die Sensordaten seriell naja ich nutze bereits 2 Serielle Ausgänge(GPS und Copmuter UART) und laut Pinout gibt es kein drittes. Jetzt bin ich hilflos und hoffe das mir jemand helfen kann weil die Frust langsam kommt. Mein Idee ist, der ATMEGA8 misst 5 Sekunden macht sein Mittelwert und sendet es seriell. Meine Frage wie empfange ich die Daten am ESP32 DevKit in eine Funktion ohne Zeitkritische Probleme zu bekommen. Bin offen für Vorschläge.
Genadi schrieb: > und sendet es seriell. Dann musst du auch seriell empfangen! Alternativ: Warum nicht I2C/TWI?
Hallo, es gibt 3 Serielle in der Hardware, hier mal als Hinweis: https://github.com/G6EJD/ESP32-Using-Hardware-Serial-Ports/blob/master/ESP32_Using_Serial2.ino Die beiden ADC des ESP32 sind jeweils auf eine Pingruppe gemappt. Einer der ADC wird recht stark vom WLAN gestört, da macht messen nur Sinn wenn man während der Messung das WLAN abschaltet. Der andere geht auch so brauchbar. Vielleicht findest Du hier einen Ansatz: https://github.com/espressif/arduino-esp32/issues/102 Für Dein millis() Problem habe ich im Moment keine Erklärung ohne den Sketch zu kennen, ist mir zumindest so noch nicht begegnet. Gruß aus Berlin Michael
:
Bearbeitet durch User
Beim ESP8266 gab es das Problem, dass er spinnt oder gar ganz ausfällt, wenn man den ADC ununterbrochen benutzt. Der WLAN Stack braucht den ADC nämlich auch ab und zu, um seine Sendeleistung zu steuern. Inwiefern der ESP32 davon betroffen ist, weiß ich nicht. Du kannst ja mal versuchen, das Programm so umzuschreiben, dass es den ADC nur noch in gewissen Intervallen benutzt, anstatt fortlaufend. Vielleicht erledigt sich dann auch dein Timer-Problem. Die I²C Schnittstelle ist extrem unkritisch, was das Timing angeht. Es gibt auch A/D Wandler mit I²C Anschluss, zum Beispiel den PCF8591.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.