Das mit dem WiFi abstellen hat keine Änderung gebracht. Aber ich habe jetzt mal das delay() nach der Messung rausgeschmissen und durch Millis ersetzt.
#include <ArduinoOTA.h>
unsigned long AktuelleMillizeit = 0;
const int delayTimeM1 = 1000; // Pausezeit 1 Sekunde
unsigned long VorherMillesM1 = 0; // Millis beim Start der Pause
int analogwert; // Vollgas ist 4096
const byte Spannungspin = 34;
void setup()
{
Serial.begin(115200); //starten des seriellen Monitors
pinMode(Spannungspin, INPUT);
WiFi.mode(WIFI_STA);
}
void loop()
{
AktuelleMillizeit = millis();
if (millis() - VorherMillesM1 >= delayTimeM1) // Jede Sekunde eine Messung
{
VorherMillesM1 = AktuelleMillizeit; // Die Sekunde neu Starten
analogwert = analogRead(Spannungspin); // Auslesen Pin. 34
Serial.println(analogwert); // Ausgabe des analogen Werts
}
}
Da habe ich als weitester Ausreisser von 3010 bis 3041 bei anliegenden 2,5 Volt. Die Messung liegt trotzdem ziemlich daneben, denn wenn ich mit den Werten rechne, habe ich 2,42 bis 2,45 Volt bei 3,3 Volt Betriebsspannung. Das Ergebnis kann man also immer noch in der Pfeife rauchen, aber ist wenigstens nicht mehr so weit gestreut. Warum das delay() stört, ist mir nicht wirklich klar, weil es ja erst nach der Messung gestoppt hat. Aber gut, jetzt ist es raus und der Wert ist besser, warum auch immer. Zufall?