Hallo, ich möchte den Effektivwert eines Wechselstroms potentialfrei im 230V-Netz messen. Dazu habe ich mir den Hallsensor ACS712 für einen Strombereich von -20A bis +20A herausgesucht. Der Ausgang liefert eine zum Strom proportionale Spannung im Bereich von 0 bis 5V. Der ESP32 verfügt über einen AD-Wandler mit einer Auflösung von 12 Bit. Der Spannungsbereich des ADC bewegt sich zwischen 0 bis 1V und kann auf bis zu 3,3V erhöht werden. Im Datenblatt des ACS712 ist eine Schaltung mit einem Spannungsteiler aufgeführt, um die Ausgangsspannung auf einen kleineren Bereich herunterzuteilen. Dabei ergaben sich für mich folgende Fragen: 1. In der im Anhang aus dem Datenblatt angehängten Schaltung sind zwei Widerstände R_f = 2kOhm und R_1 = 10KOhm als Spannungsteiler enthalten. Es ergibt sich also eine neue Ausgangsspannung für den ADC von U_adc = U_out * R_1 / (R_1 + R_f) = 5V * 10kOhm / (2kOhm + 10kOhm) = 4,167V Im Datenblatt ist die Rede von einer heruntergeteilten Spannung von 3,3V. Warum sind die Widerstände dann so gewählt, dass sich maximal 4,167V ergibt? 2. Ich nehme an, dass die Diode und der Kondensator nach dem Spannungsteiler zur Gleichrichtung und Glättung gedacht sind? Wenn ja, wäre dann 10nF für den Kondensator ein guter Wert? 3. Der ACS712 hat eine Empfindlichkeit von 100mV/A. Angenommen ich teile die Ausgangsspannung von 0 bis 5V auf 0 bis 1V für den ADC herunter, dann müsste sich doch folgende Auflösung ergeben: 1V / 2^12 = 1V / 4096 = 0,000244V = 0,244mV (Auflösung ADC) 100mV/A / 5 = 20mV/A (Neue Empfindlichkeit nach Spannungsteiler) 0,244mV * 1A / 20MV = 0,0122A = 12,2mA (Auflösung Strom) Da ich mindestens eine Auflösung von 50mA brauche, würde ich theoretisch im Rahmen liegen. Kann das jemand bestätigen? Vielen Dank im Voraus Johannes
:
Bearbeitet durch User
Hi, ja ich kann bestätigen, dass das NICHT stimmt und gebe dir hier nur kurze hinweise ... der null wert des gewählten stromwandlers liegt theoretisch/ideal in der mitte des adc, daher hättest du auch nur 6bit zur verfügung, davon kannst du wahrscheinlich nochmals 2 bit vergessen, weil die adc ref spannung entsprechend verrauscht ist und der fehler des adc berücksichtigt werden muss ohne vorverstärkung kommst du nie in die richtung 50ma stabil zu messen wichtig ist die adc ref bzgl. grösse und qualität, also nicht den stromwandler hub weiter verschlechtern durch teilung sondern die adc ref runter setzen und gute stabiltät+geringes rauschen garantieren die schaltung kannst du so in die tonne geben, wenn du diese auflösung haben willst. dk4ug p.s. der attiny85 wäre besser geeignet, weil interne 1.1ref und verstärker x20 vorhanden
apollo2mond schrieb: > der null wert des gewählten stromwandlers liegt theoretisch/ideal in der > mitte des adc, daher hättest du auch nur 6bit zur verfügung Stimmt, daran hatte ich gar nicht gedacht, also ist 2,5V = 0A. Aber dann habe ich doch trotzdem noch eine Auflösung von 12 Bit? Es ändert sich doch dann der Spannungsbereich, aber nicht die Auflösung des ADC. Wenn man wieder von der heruntergeteilten Spannung ausgeht, ergibt sich: 0,5V / 2^12 = 0,5V / 4096 = 0,000122V = 0,122mV Die Auflösung wird besser? Das kann irgendwie nicht sein. Wo ist mein Denkfehler? apollo2mond schrieb: > ohne vorverstärkung kommst du nie in die richtung 50ma stabil zu messen Was soll ich vorverstärken, um eine höhere Auflösung zu erzielen? apollo2mond schrieb: > wichtig ist die adc ref bzgl. grösse und qualität, also nicht den > stromwandler hub weiter verschlechtern durch teilung sondern die adc ref > runter setzen Ein hilfreicher Hinweis, aber ich verstehe es nicht. Ich bin auf den ESP32 angewiesen, meine Referenzspannung für den ADC ist somit meine 5V Versorgungsspannung. Ich sollte also meine Referenzspannung des ADC heruntersetzen. Sind Spannungsbereich des ADC und Referenzspannung des ADC nicht zwei völlig verschiedene Dinge? Ich möchte ja den Spannungsbereich des ACS217 an den des ADC anpassen, da ich diesen nicht auf 5V erhöhen kann.
Johannes B. schrieb: > Hallsensor ACS712 Platinchen bestellen, sind beim Chinamann billiger als einzelne ICs und dann den Lötkolben an! Zur AC-Stromsimulation nutze ich einen Trafo 12V 100VA, eigentlich die komplette Halogenlampe, am Stelltrafo. Wie apollo2mond schon schrieb, das wird so einfach nichts: Ohne Strom hast Du am Ausgang des ACS712 die halbe Betriebsspannung, also 2,5V. Bei positivem Strom steigt sie um 100mV/A an, bei negativem Strom geht sie runter. Du hast Wechselstrom, da wird sie also um die 2,5V herum wechseln. Mit der Diode hast Du einen Gleichrichter, damit sollte der Spitzenstrom als Spannung am Kondensator abgebildet werden. Es wird nur die positive Halbwelle gleichgerichtet, damit liegt Dein vom ADC zu messendes Signal zwischen 2,5V (= 0 Ampere) und 4,5V bei 20A Spitze entsprechend 14A effektiv. Nun rechne neu ... die Auflösung wird nicht sehr toll. Eine ähnliche Schaltung habe ich neulich aufgebaut, da geht es mir aber nur darum, zu erkennen, ob mehr als 3,5A fließen oder nicht. Eine Messung mit Wertausgabe hätte ich mich mit dieser Schaltung von vornherein nicht getraut.
Johannes B. schrieb: > Stimmt, daran hatte ich gar nicht gedacht, also ist 2,5V = 0A. Du bekommst am Ausgang eine dem Strom proportionale Wechselspannung. Es wäre einen Versuch wert, mit einem Kondensator in Reihe die 2,5V DC-offset zu entfernen und das Wechselsignal aktiv gleichzurichten (OP-Schaltung).
hi, ich würde mich auch/erstmal mit dem esp32 tiefer beschäftigen bzgl. ... When VDD_A is 3.3V: 0dB attenuaton (ADC_ATTEN_0db) gives full-scale voltage 1.1V 2.5dB attenuation (ADC_ATTEN_2_5db) gives full-scale voltage 1.5V 6dB attenuation (ADC_ATTEN_6db) gives full-scale voltage 2.2V 11dB attenuation (ADC_ATTEN_11db) gives full-scale voltage 3.9V das problem hier ist die doku selbst weil unvollständig und nicht immer klar bzw. eindeutig. da musst du auch weiter im internet nach infos rumsuchen. dann sollte überhaupt mal klar sein was die themen sind - min/max messbereich - auflösung/genauigkeit - dc/ac und wenn ac/max frequenz der sensor selbst hat auch einen erheblich rauschwert am ausgang. im internet wurde schon viel über die probleme mit dem sensor berichtet bzgl. ghost values ohne last und best minimum oder so ... und wiederholbarkeit der messwerte. dran bleiben!
Also die Diode würde ich weglassen, damit handelst du dir nur Unliniaritäten ein. Der AD-Wandler im ESP32 ist doch schnell genug. Ich würde empfehlen mit z.B. 10kHz zu Samplen und die Werte zu berechnen. Damit bekommst du dann auch einen Effektivwert und nicht nur die gleichgerichteten Spitzen.
[q] der null wert des gewählten stromwandlers liegt theoretisch/ideal in der mitte des adc, daher hättest du auch nur 6bit zur verfügung, [/q] sicher ? ich tendiere da eher auf 11 Bit pro Polarität wobei dann 1-2 Bits flakern werden, ausser du bekommst die Analoge Schaltung sehr gut hin ...
Hi Kleiner Hinweis: Am Anfang des aktuellen Datenblatt von Allegro steht "Not for New Design" ... Recommended Substitutions: For existing customer transition, and for new customers or new applications, use ACS723. MfG Spess
apollo2mond schrieb: > der null wert des gewählten stromwandlers liegt theoretisch/ideal in der > mitte des adc, daher hättest du auch nur 6bit zur verfügung soundso schrieb: > ich tendiere da eher auf 11 Bit pro Polarität wobei dann 1-2 Bits > flakern werden, ausser du bekommst die Analoge Schaltung sehr gut hin Sehe ich auch so, weil das letzte Bit das Vorzeichen kodiert. Was sich halbiert ist die Anzahl der Werte, also von 2^12 = 4096 auf 2^11 = 2048. apollo2mond schrieb: > also nicht den > stromwandler hub weiter verschlechtern durch teilung Ich verstehe nach wie vor nicht so ganz, wieso ein Spannungsteiler den Ausgangswert verschlechtert. Mir ist bewusst, dass die Widerstände durch Rauschen zu einer Verschlechterung des Signals beitragen. Das dürfte doch aber bei entsprechender Güte vernachlässigbar klein sein. Der Spannungsteiler an sich verkleinert doch lediglich die Spannung, verändert doch aber nicht die Signalform? Manfred schrieb: > Du hast Wechselstrom, da wird sie also um die 2,5V herum wechseln. Mit > der Diode hast Du einen Gleichrichter, damit sollte der Spitzenstrom als > Spannung am Kondensator abgebildet werden. Es wird nur die positive > Halbwelle gleichgerichtet, damit liegt Dein vom ADC zu messendes Signal > zwischen 2,5V (= 0 Ampere) und 4,5V bei 20A Spitze entsprechend 14A > effektiv. Ich hatte es gar nicht auf dem Schirm, dass dann natürlich auch meine Spannung am Ausgang dann um die 2,5V herum schwankt. Dann verstehe ich jetzt auch den Sinn der Diode und des Kondensators. Manfred schrieb: > Du bekommst am Ausgang eine dem Strom proportionale Wechselspannung. Das heißt also, ich habe am Ausgang des ACS712 eine sinusförmige Spannung mit einer Frequenz 50Hz/60Hz bei Netzspannung. temp schrieb: > Also die Diode würde ich weglassen, damit handelst du dir nur > Unliniaritäten ein. Der AD-Wandler im ESP32 ist doch schnell genug. Ich > würde empfehlen mit z.B. 10kHz zu Samplen und die Werte zu berechnen. > Damit bekommst du dann auch einen Effektivwert und nicht nur die > gleichgerichteten Spitzen. Dann wird es wohl das Vernünfigste sein, Diode und Kondensator wegzulassen und stattdessen den Peak des sinusförmigen Ausgangs zu erkennen und darüber den Effektivwert zu berechnen. Wenn ich mir das Ganze nun erneut durch den Kopf gehen lassen, komme ich auf folgende neue Auflösung für die Strommessung: ESP32: Auflösung ADC: 12 Bit Messbereich ADC: 0 bis 3,3V (Annahme) ACS712: Mit 2,5V = 0A und einer Empfindlichkeit von 100mV/A ergibt sich ein Messbereich von 0,5V bis 4,5V. Diesen teile ich herunter auf den Bereich meines ADC, also bei 3,3V circa um den Faktor 1,5. Damit ergibt sich ein neuer Bereich nach dem Spannungsteiler von 0,33V bis 3V. Doch sinkt dadurch nun meine Messgenauigkeit? Nach meinem bisherigen Verständnis verkleinere ich dadurch nur die Amplitude meiner sinusförmigen Spannung. Jetzt kann man die Auflösung neu berechnen: 100mV/A / 1,5 = 66,67mV/A (Empfindlichkeit nach dem Spannungsteiler) 3,3V / 2^11 = 3.3V / 2048 = 0,00161V = 1,61mV (ADC Auflösung der Spannung) 66,67mV = 1 A 1,61mV = x A x = 1,61mV * 1A / 66,67mV = 0,024A = 24 mA Das wäre für meine gewünschten 50mA ausreichend. Oder habe ich immer noch eine Art Denkfehler drin? spess53 schrieb: > Kleiner Hinweis: Am Anfang des aktuellen Datenblatt von Allegro steht > > "Not for New Design" Es gibt für den ACS712 auch ein fertiges Modul. Auf diesem ist aber nichts weiter als der ACS712-Chip und zwei Kondensatoren enthalten, die in der von mir verlinkten Schaltung aus dem Datenblatt auch bereits vorhanden sind.
[q] der null wert des gewählten stromwandlers liegt theoretisch/ideal in der mitte des adc, daher hättest du auch nur 6bit zur verfügung, [/q] sicher ? ich tendiere da eher auf 11 Bit pro Polarität wobei dann 1-2 Bits flakern werden, ausser du bekommst die Analoge Schaltung sehr gut hin ... was ich schrieb, das stimmt so nicht wirklich, weil der esp32 mit 3.3v interner referenz arbeitet und der sensor mit 2.5+-v am output, daher der nullwert liegt erstmal asymetrisch! ...wenn nicht verschoben durch vorteiler. aber 11bit pro polarität schliesse ich sicher aus, oder ich fresse einen besen. dazu bräuchtest du wohl eher einen adc mit bipolar input mode. keep going
Johannes B. schrieb: > ich möchte den Effektivwert eines Wechselstroms Was immer hier schon diskutiert wurde, den Effektivwert misst so eine Schaltung nicht, sondern den Spitzenwert des Stroms. Daraus kann man den Effektivwert schätzen, wenn man Sinusform voraussetzt, eine echte Effektivwertmessung, z.B. bei Phasenanschnitt, wäre VIEL aufwendiger. Georg
... Empfindlichkeit von 100mV/A wenn du die ausgangsspannung teilst, dann doch auch die 100mV/A daher verringert sich dann der spannungshub pro ampere
Effektivwert/Spitzenwert ... ich habe das teil auch in benutzung aber ohne gleichrichter ... und messe/suche nur den positiven/negativen spitzenwert und berechne den effektivwert bei sinus/50hz netzspannung
Georg schrieb: > Was immer hier schon diskutiert wurde, den Effektivwert misst so eine > Schaltung nicht, sondern den Spitzenwert des Stroms. Das habe ich mittlerweile verstanden. Diode und Kondensator deshalb weglassen und aus der sinusförmigen Spannung mit entsprechender Abtastung die Spitzenwerte erkennen und daraus den Effektivwert mit dem ESP32 berechnen. apollo2mond schrieb: > wenn du die ausgangsspannung teilst, dann doch auch die 100mV/A > daher verringert sich dann der spannungshub pro ampere Ich weiß jetzt, wie du das meinst. Johannes B. schrieb: > 100mV/A / 1,5 = 66,67mV/A (Empfindlichkeit nach dem Spannungsteiler) Dementsprechend habe ich einen kleineren Spannungsbereich und werde ungenauer.
:
Bearbeitet durch User
... noch was zum gleichrichter der macht für mich nur "sinn", wenn die frequenz zu hoch für den adc ist, daher besser den spitzwert einer halbwelle messen, bei 50hz also tonne!
apollo2mond schrieb: > ... noch was zum gleichrichter der macht für mich nur "sinn", wenn die > frequenz zu hoch für den adc ist, daher besser den spitzwert einer > halbwelle messen, bei 50hz also tonne! Ich habe keine Ahnung wozu dieser Gleichrichter nun wirklich gut sein soll, aber mir war vorher einfach nicht bewusst, dass das Ausgangssignal, da es ja proportional zum Strom ist, auch sinusförmig ist und sich mit 50Hz problemlos mit dem ESP32 abtasten lässt. Damit hat sich die Frage für mich erübrigt. Ich hätte zu Beginn erwähnen sollen, dass es sich um Netzspannung handelt. Bleibt noch die Frage, wie hoch ich letztendlich den Strom mit dem ESP32 auflösen kann? Ich werde das am besten mal praktisch ausprobieren. Vielen Dank für die hilfreichen Antworten, das hat mir einiges klar gemacht.
Johannes B. schrieb: > Ich werde das am besten mal praktisch ausprobieren. Genau das habe ich vor ein paar Wochen getan: Vorne Wechselstrom und hinter der Gleichrichterdiode die Gleichspannung aufgenommen. Wie gesagt: Du könntest mal probieren, den Ausgang des ACS über einen Elko, Hausnummer über den Daumen 10µF, an die Diode zu koppeln. Dann sollte sich die Spitzenspannung ergeben, aber die 2,5V DC weg sein = 0..2 Volt. Ist theoretisch, habe ich nicht probiert!
Manfred schrieb: > hinter der Gleichrichterdiode die Gleichspannung aufgenommen. Anhang! Die Versorgungsspannung betrug 5,2 Volt.
>
... Wie gesagt: Du könntest mal probieren, den Ausgang des ACS über
einen
Elko, Hausnummer über den Daumen 10µF, an die Diode zu koppeln. Dann
sollte sich die Spitzenspannung ergeben, aber die 2,5V DC weg sein =
0..2 Volt.
dann treibst du aber den input mit der negativen halbwelle unter gnd?!
wenn der analog pin keine schutzschaltung hat, dann ist er vielleicht
gleich tot oder die clipping diode muss den strom ableiten der
hoffentlich begrenzt wird sonst wird es auch ungesund.
leider ist die hw doku des esp32 bescheiden und schweigt zu vielen
fragen.
also diese idee ist für mich "ungesund" für den esp32!
besser pegelkonverter mit verstärkung vorschalten um den nullpunkt
zuverschieben und um mehr empfindlichkeit zu erreichen.
sprich 1-2 op's spendieren
trotz alledem die accuracy bleibt bei dem ansatz "grausam" die
resolution lässt sich oft relative leicht verbessern.
der absolute fehler blieb bei dem kleinen diskus hier immer gleich nur
der relative bezogen auf den messbereich hat sich durch den teiler
weiter delatiert.
... ungesund komando zurück, ich dachte an direkt ankoppeln ohne diode und so!
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.