ACS714 Messung Strom mit Hall Sensor - Frage an den Elektroniker

Begonnen von ext23, 13 März 2017, 19:13:35

Vorheriges Thema - Nächstes Thema

ext23

Nabend,

ich stehe hier gerade etwas auf dem Schlauch. Ich hab den Hall Sensor ACS714 und der gibt bei 0A VCC/2 aus. Pro A dann jeweils +/-185mA.
Nun schwankt VCC ja durchaus zwischen in meinem Fall 4,5V und 5,5V. Das bringt dann einen nicht unerheblichen Fehler in die Messung.

Wie kann ich das denn am besten umgehen? Meine Gedanken waren jetzt:
1. VCC messen (mein ADC ist leider schon belegt, die 10Bit vom AVR sind misst und generell finde ich das nicht sonderlich gut)
2. Einen OPV als Subtrahierer vorschalten mit 1:2, aber auch irgendwie nicht optimal
3. Per Tastendruck nach dem Einschalten meines Messsystems den aktuellen Wert für 0A speichern (Brücke setzen)

Kann man das nicht anders irgendwie schlau lösen? Ich stehe da echt auf dem Schlauch.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Pf@nne

Moin Daniel,

spendiere dem Sensor doch einen kleinen 3V3-Regler, der Sensor zieht ja keinen Strom.

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

ext23

Ich habe ja ein 5V DCDC Wandler in der Schaltung aber die sind auch zu ungenau. Also selbst die etwas besseren DCDC Wandler haben nur eine Genauigkeit von +/-3%, das entspricht dann immer noch einen 300mV Rahmen. Ich denke mal bei Linearreglern scheint es ähnlich zu sein. Schau ich mir aber nochmal an.

/Daniel

HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Otto123

Hallo Daniel,

woher genau nimmst Du eine Abhängigkeit der Messgenauigkeit von VCC?

Ich kenne den Baustein nicht, aber ich habe das Datenblatt jetzt dreimal gelesen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ext23

Die Messgenauigkeit in Abhängigkeit von VCC des ACS habe ich mal außer acht gelassen, die gibt es auch, steht auch im Datenblatt. Das wäre dann das nächste Problem aber eins nach dem anderen. Die ist aber auch nicht so extrem.

Mein Problem ist im Moment wirklich nur das ich ohne die genaue Kenntnis von VCC schwer den Messwert auslesen kann. Ich wollte eigentlich im 5mA Bereich genau messen, im Moment liege ich bei 50mA ... Mache ich einen genauen Abgleich geht das auch mit 5mA solange beim nächsten Anschalten VCC weiterhin 5V hat und nicht 5,04V...

Aber ich sehe schon, ich komm wohl nicht drum rum einen zusätzlichen ADC zu benutzen um VCC dann zu messen. Ich hab nur ein 4 Kanal ADC und leider sind schon alle 4 belegt, 2 mal Spannung, 2 mal Strom.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Otto123

 ???
Ich verstehe Dein Problem nicht.
Der Baustein misst Strom und der 05B-T  liefert pro Ampere 185 mV am Ausgang. Der 20A-T liefert 100 mV pro Ampere.

Du musst also Viout messen, was anderes macht doch keinen Sinn?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ext23

Vielleicht ist es ja kein Problem, ich erkläre nochmal:

Habe ich idealerweise 5,00V als VCC, kommen aus dem Sensor bei 0A genau 2,5V, bei 1A dann reichlich 2,685V.

Jetzt schwankt aber VCC, einen Tag später sind es also nicht mehr 5,00V sondern 5,1V. Heißt bei 0A kommen jetzt 2,55V aus dem Sensor, bei 1A dann 2,735V.

Ohne VCC zu kennen, kann ich also auch mit der Spannung nichts anfangen. Klar kann ich mit reichlich 5V rechnen, aber das wird je nach Schwankungen recht ungenau.

Ich muss das Ergebnis vom ADC ja irgendwie interpretieren im µC. Sicher sagt mir der ADC richtig, dass jetzt 2,55V rein kommen, aber wie interpretiere ich das? Sind das jetzt 0A (weil VCC gerade 5,1V ist) oder eventuell doch 0,27A (weil VCC gerade 5,00V ist).

Problem verstanden? Ich sag ja, vermutlich ist es kein Problem und ich habe nur ein Knoten inner Birne.

Irgendwie glaube ich aber das ich ohne einen Operationsverstärker und einer Referenzspannungsquelle nicht auskomme.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Otto123

Ok verstanden, er liefert als null Punkt VCC/2  :-[  8)
Du musst einfach Application 3 auf Seite 15 nehmen. -> https://www.pololu.com/file/0J196/ACS714.pdf
Damit misst Du die Differenz zur halben VCC und hast den Einfluss von VCC eleminiert. Zusätzlich kannst Du den Bereich noch an Deinen ADC anpassen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Pf@nne

Zitat von: ext23 am 13 März 2017, 21:08:57
Habe ich idealerweise 5,00V als VCC, kommen aus dem Sensor bei 0A genau 2,5V, bei 1A dann reichlich 2,685V.
Jetzt schwankt aber VCC, einen Tag später sind es also nicht mehr 5,00V sondern 5,1V. Heißt bei 0A kommen jetzt 2,55V aus dem Sensor, bei 1A dann 2,735V.

Was du brauchst ist ein Algorithmus der dir die "Nulllinie" berechnet.
Das kannst du nach einigen Perioden gut ermitteln, ist im Grunde eine Art Autokalibrierung die du dann alle x Minuten durchführen solltest.

FHEM auf: DS415+ (Master), Raspberry Pi 2

Pf@nne

Oder schalte einfach einen Kondensator in Reihe, der eliminiert dir den DC-Offset und du hast dann eine reine Wechselspannung.
FHEM auf: DS415+ (Master), Raspberry Pi 2

ext23

@Otto123: OK, das was ich meinte mit dem OPV. Interessant übrigens, mein Datenblatt hat nur 5 Seiten ;-) Aber stimmt das Beispiel ist ja noch einfacher, so mach ich es! Mal schauen ob ich noch ein paar 1% Widerstände habe.

@Pf@nne: Gute Idee, das klappt aber nur bei AC, ich wollt nur DC messen ;-)

Danke!

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Otto123

Zitat von: Pf@nne am 13 März 2017, 21:47:56
Oder schalte einfach einen Kondensator in Reihe, der eliminiert dir den DC-Offset und du hast dann eine reine Wechselspannung.
Wir wissen doch nicht mal was und wo er messen will? Stand irgendwo was von Wechselstrom?  :-[

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ext23

Bah jetzt klappt es, scheisse, naja, gut das wir drüber gesprochen haben. Das war jetzt wirklich ein Totalausfall meinerseits...

Danke nochmal für das wach rütteln.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

@Otto123: Darf ich dich nochmal belästigen.

So wie die schaltung in Beispiel 3 ist läuft das ja nicht, also das Problem am Ausgang bleibt ja gleich. Jetzt habe ich ein Teilungsverhältnis von 2:1, so das also VCC/2 verglichen wird mit dem Ausgang des ACS. Fließt kein Strom, habe ich fast 0V am Ausgang. Für positive Ström alles ok, geht es jetzt ins negative wird es eng ohne eine negative Spannungsversorgung am OPV (Die wollte ich mir eigentlich sparen). Kann man da gleich ein Offset rauf setzen von einer Referenzspannungsquelle?

Ich habe es jetzt wie im Anhang.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Otto123

#14
Hi,

also Dein Bild im Anhang finde ich falsch, so misst Du VCC und nicht den Ausgang des ACS714. Das Bild 3 im Datasheet ist schon richtig gezeichnet.
Ja das geht so nur für positive Ströme.
Über welche Ströme reden wir denn? Wie ist dein praktischer Messbereich?
Könnte dein ADC denn negative Spannungen?
Welchen Spannungsbereich kann Dein ADC? die "typischen" 1,024 Volt?
Was hast Du für einen ADC? Hat der einen Offset Eingang?

Bei 5 Ampere liefert der ACS ja nur knapp 1 Volt, klar könntest Du einfach beim Differenzverstärker einen Offset einbauen und das ganze in Richtung positiv verschieben.
Aber um das praktisch zumachen bräuchte ich ein paar Werte.

Gedanke im Nachgang: Bestenfalls hat Dein ADC auch die Vref auf der VCC, beide mit der gleichen VCC versorgt und alles ist gut.
Also so wie hier -> http://www.sysrun.de/tag/acs714/

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ext23

Das Bild ist falsch? Mhh also Vin1 ist mein VCC und Vin2 ist das was vom ACS kommt. Ich hab doch nur Vin1 und Vin2 geändert weil sonst ein negatives Signal aus dem OPV kommt.

Der ACS gibt VCC/2 +/-925mV aus, also ein Bereich von ca 1,5V bis 3,5V. Mein Analog Digitalwandler kann von -5V bis +5V Eingangspegel umgehen.

Bei 0A kommen im idealfall ja 0V aus dem OPV. Wenn jetzt aber 1,5V vom ACS kommen, müssten ja knapp -1V aus dem OPV kommen, was ja nicht geht weil ich keine negative Spannung anliegen habe.

Das Offset muss aber eine saubere Referenzspannungsquelle sein, sonst habe ich ja wieder das Problem das ich den Nullpunkt nicht kenne.

Also also was man in 12 Jahren die mein Studium her ist so alles vergessen kann...

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)