Hallo Gemeinde.
Bin wieder dabei, die Dinge, die ich mit Mega / Uno / Nano schon durch habe, auch am ESP32 mal zu testen. Und bin auch schon wieder an einem Punkt, wo es nicht klappt, wie gedacht. Ich messe Spannung am Pin 34. Die Werte die ich da auslese sollten doch 0-4095 bei 0-3,3 Volt sein, wenn die Betriebsspannung der CPU 3,3 Volt beträgt. Es ging mir nicht um Genauigkeit, sondern nur um klappt / oder nicht. Ich habe als ein Poti zwischen + und - 3,3V und die Mittelanzapfung am Pin 34. Dann habe ich das Poti hochgeschraubt bis ich an der Serialen Ausgabe 4095 bekommen habe. Dann schaue ich aufs Messgerät, mit dem ich die Spannung am Pin 34 im Auge habe und sehe da nicht 3,3 Volt, sondern nur 3,1 Volt. Ich habe die Spannung an ESP32 nochmal gemessen, die hat aber 3,3 Volt. Warum bekomme ich dann bei 3,1 Volt schon Vollgas "4095" beim Auslesen am Pin34 ??
Wünsche eine gute Nacht
Franz
Hier ist das Programm. Ich denke da kann man nichts falsch machen
int analogwert; // Vollgas ist 4096
void setup()
{
Serial.begin(115200); //starten des seriellen Monitors
}
void loop()
{
analogwert = analogRead(34); // Auslesen Pin. 34
Serial.println(analogwert); // Ausgabe des analogen Werts
delay(2000);
}
Die Referenzspannung könnte wegen der gesamten Umschalt-Mimik geringer als Vcc sein. Siehe adc_vref_to_gpio() zum Nachmessen der Referenzspannung an einem Pin von ADC2.
Hast Du schon mal die eingebaute 1,1V Referenz getestet? Unkalibriert kann die allerdings auch irgendwo zwischen 1,0V und 1,2V liegen.
Danke für die Antworten. Ich dachte, dass ich vielleicht irgendwas nicht weiß, was man beim ESP32 anders machen muss. Wäre ja gut möglich. Das mit der eingebauten Referenz schaue ich mir hier noch an, weil das ja mit den 200mV Fehlmessung auf jeden Fall keine Option ist.
Du mußt Dich eben im Meßbereich einschränken, nicht zu nahe am oberen und unteren Ende des Bereichs. Wenn man die dortige Nichtlinearität irgendwie rausrechnen kann, dann müßte das eigentlich schon lange irgendwo im Forum oder Web stehen.
Ja, diesen oberen und Unteren Bereich muss man wohl umgehen. Ich habe die Kurve, die diese Bereiche zeigt schon gefunden, aber ich dachte eigentlich da hat jemand übertrieben. Aber man muss ja nicht in diese Bereiche kommen. Ich kann auch externe ADC´s benutzen, oder nen guten Spannungsteiler nutzen, und, und, und. Im Moment gehts mir nur ums kennen lernen der ESP´s und ihrer Grenzen. Und dass ich weiß, wo man anders arbeiten muss, als mit den Uno´s, Mega´s, Nano´s.
Ich habe jetzt mal 1 Volt damit gemessen. Das Ergebnis ist von 1127 bis 1193!! Also schon eine gewaltige Spanne. Dann habe ich mal die 3,1 Volt für 4095 zugrunde gelegt. Und mit einem Tischrechner einen Mittelwert des Messergbnises von 1 Volt benutzt. Dann kommen rechnerisch 0,87 Volt raus. Mit dem oberen Ergebis der 1 Volt Messung kommt 0,903 Volt raus. Das eine Volt ist mit einem Labornetzteil erzeugt und ein Messgerät parallel zur Kontrolle.
Ich nehme mal einen anderen ESP32 mit USB Versorgung. Mal schauen ob da die Ergebnisse anders sind.
Also, Spannung ist sauber. Auch am Oszi ein sauberer Strich mit 3,3 Volt. Dann habe ich trotzdem noch die Versorgung auf ein Labornetzteil gehängt. Aber immer noch die selbe Trifft. Auch die 1 Volt, die ich messe, kommen von einem Labornetzteil. Aber ich gehe jetzt mit der Spannungsmessung mal auf einen anderen ESP32 mit USB Versorgung. Mal schauen was da rauskommt. Ist schon seltsam.
Deine Trifft ist nicht soooo weit, wie bei mir. 1051 - 1087, bei mir 1127 bis 1193. Aber jetzt habe ich erst mal Hunger. Dann mache ich das mit dem neuen ESP32 an USB.
Jetzt habe ich einen anderen ESP32. Am USB angesteckt, also über USB versorgt. Und das eine Volt wieder vom Labornetzteil. Die Werte von 1058 bis max 1159 Das ist Sch**** Bei 3,2 Volt war ich bei dem ESP32 auf 4095.
1 Volt von 1058 bis 1159
2 Volt von 2303 bis 2368
3 Volt von 3790 bis 3859
3,1 Volt von 3994 bis 4079
3,2 Volt 4095
Also Spannung messen wohl nur mit einem externen ADC
Wie wäre es, wenn Du die Spannung gleichzeitig mit dem ESP und einem anderen Arduino (Uno, Micro...) mißt? Dann könnte man sehen, ob und wieviel schlechter der ADC des ESP ist.
Naja, ich habe hier einen Uno, den ich aber dafür etwas optimiert habe, die Spannung einigermaßen genau zu messen. Der wäre da schon sehr im Vorteil. Über AREF mit einer Zehnerdiode auf 4,096 Volt Messspannung. Da könnte ich aber genauso auch ein Messgerät als Vergleich heranziehen. Ich schätze mal du meinst z.B. einen Uno genauso wie beim ESP32 ohne spezielle Änderungen. Einfach nur ADC Uno, vergleichen mit ADC ESP32 ? Da war der UNO aber wesentlich besser, wenn ich mich da recht erinnere.
Welcher Verdacht soll das bitte sein? Ich habe doch schon einen anderen ESP32 NUR AM USB mit etwa genauso großer Abweichnung. Und die Spannung die ich da messe kommt von einem Labornetzteil. ALSO NICHTS SEBSTGEBASTELTES. Und was das für Netzteile sind, das denke ich ist gut zu sehen auf meiner HP zu dem Thema.
Alles was den Meßaufbau von außen beeinflussen kann. Es gibt da so viele Möglichkeiten, daß man am besten einen redundanten Aufbau benutzt. Damit kann man zwar nicht die Quelle einer Störung lokalisieren, aber doch deren Auswirkung.