PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wechselstrom digitalisieren



stfan1409
10.01.2017, 11:05
Hallo,
Ich bekomme von einem Sensor ein Ausgangssignal von 0-30mA AC. Nun habe ich einen Widerstand mit 50 Ohm angeschlossen und bekomme bei 30mA 1,5VAC. (bei 100 Ohm bricht der Strom ein) Nun möchte ich den Strom oder die Spannung digitalisieren. Am liebsten wäre mir ein fertiges IC, welches den Messwert über I2C, TWI....ausgibt, sodass ich es mit einem Mikrokontroller weiterverarbeiten kann. Die Auflösung sollte mindesten in 0,1mA Schritten sein, oder kleiner.
Hat jemand soetwas oder ähnliches mal gemacht? Freue mich über jeden Lösungsansatz.

Tobias

BMS
10.01.2017, 12:01
Hallo,
dafür gibt es sicherlich mehrere Varianten.

Z.B. könnte man einen RMS-to-DC-Converter (AD636,AD637, aber >20 Euro) verwenden und die Ausgangsspannung dann mit einem ADC messen.

Bei "niedrigen" Frequenzen kann man die Spannung auch mit dem Mikrocontroller abtasten und dann die Amplitude bestimmen (Goertzel-Algorithmus oder Fourier-Transformation/FFT).

Bestimmt gibt es auch analoge Lösungen mit Operationsverstärkern (denke da an aktive Gleichrichter) und ADC...

Welche Frequenz hat das Signal vom Sensor? Ist es überhaupt sinusförmig?

Viele Grüße,
Bernhard

stfan1409
10.01.2017, 13:44
Oh das habe ich vergessen zu schreiben.
Das Signal hat 50Hz Sinus.
Habe versucht es mit einem Atmel Mega Mikrokontroller zu messen. Es geht, aber der hat nur 10bit Auflösung und das reicht mir nicht. Das wäre auch bei den rms to dc Wandler so.

Gruß, Tobias

shedepe
10.01.2017, 14:25
Allerdings kann du den ADC eines Atmega mit bis zu 200 kHz betreiben. Damit kannst du den 50 Hz Sinus 4000-fach Überabtasten.
Wenn ich mich nicht verrechnet habe kommst du damit auf 16bit Auflösung statt 10bit Auflösung.
https://en.wikipedia.org/wiki/Oversampling

Ansonsten kannst du natürlich immernoch einen externen ADC mit z.B. 24bit Auflösung oder mehr einsetzen.

PS. Je nachdem welche größe der Spannung dich interessiert könntest du .z.B auch einen Messgleichrichter o.ä. verwenden.

avr_racer
10.01.2017, 14:47
Hallo,
Ich bekomme von einem Sensor ein Ausgangssignal
Tobias

Wie heißt denn der Sensor ?
0-30mA AC bei welcher Spannung ?


Falls du die Auflösung höher haben möchtest nimm nen LTC1286. 12bit hat er und recht einfach anzusteuern da du eh schon nen Mega nutzt.



Es geht, aber der hat nur 10bit Auflösung und das reicht mir nicht. Das wäre auch bei den rms to dc Wandler so.Tobias

Wenn du die Beschaltung vom MEGA zum LTC1286 überträgst sollte das mit jetzigen Infostand deutlich bessere Ergebnisse liefern.
Wie sieht denn deine Schaltung dazu aus?

BMS
10.01.2017, 17:15
Hallo,

in dem Fall würde ich das Signal nur etwas verstärken und dann dem integrierten/externen ADC zuführen.
Da bekannt ist, dass das Signal sinusförmig ist und f=50 Hz sind, genügt im einfachsten Fall die Bestimmung der Max.-/Min. Werte einer Reihe abgetasteter Spannungen des Sensors und die Differenz ist dann 2*Amplitude.

Wenn die 30mA bzw 1,5VAC auf den vollen Eingangsspannungs-Bereich des ADC verstärkt wird, kommt man mit 10 Bit aus. (30mA/0,1mA=300 mögliche Werte, es würden 9 Bit ausreichen...).
Für eine höhere Verlässlichkeit der Messergebnisse wird man dennoch präziser messen wollen, z.B. mit 12 Bit.
(Die genannte Überabtastung: pro zusätzlichem Bit mehr muss die Abtastrate ver4facht werden)

Viele Grüße,
Bernhard

White_Fox
10.01.2017, 20:09
Hallo,
Ich bekomme von einem Sensor ein Ausgangssignal von 0-30mA AC. Nun habe ich einen Widerstand mit 50 Ohm angeschlossen und bekomme bei 30mA 1,5VAC. (bei 100 Ohm bricht der Strom ein)

Liegt das nur daran daß ich saumüde bin, oder ist das tatsächlich ein Widerspruch?

Ansonsten sollte dein Ansinnen mit de 10-Bit-Wandler vom ATMega doch ohne Weiteres erschlagen werden können. Damit hast du eine Auflösung von 0,03mA, du willst ja aber nur 0,1mA. Ich würde da eher zu einem Vorverstärker raten, mit dem du den Messbereich des ADWs ordentlich ausschöpfst.
Bedenke auch daß dir extrem feine ADWs erstmal nur ein weitaus stärkeres Rauschen liefern-das mußt du erst behandeln.

Sisor
10.01.2017, 20:32
Allerdings kann du den ADC eines Atmega mit bis zu 200 kHz betreiben. Damit kannst du den 50 Hz Sinus 4000-fach Überabtasten.
Wenn ich mich nicht verrechnet habe kommst du damit auf 16bit Auflösung statt 10bit Auflösung.
Nyquist-Shannon-Abtasttheorem nicht vergessen: f_abtast > 2 f_max!

stfan1409
10.01.2017, 20:43
Hallo und vielen Dank für die Antworten.

Der Sensor ist ein Stromtrafo, deshalb bekomme ich die Wechselspannung von +/-1,5V / 50Hz (über dem 50 Ohm Widerstand).

Um die Wechselspannung mit dem AT Mega zu messen, habe ich den Analogeingang an einen Spannungteiler aus 2*470k gelegt. Der µC zeigt also bei 2,5V am Eingang 0 an(natürlich umgerechneter Wert).
Die Wechselspannung vom Sensor liegt an MASSE vom µC bzw. über einen 100nF Kondensator(in Reihe) an meinem Analogeingang.

Zu den 10Bit: die beziehen sich natürlich auf den gesamten Analogeingangsbereich von 5V bzw. +/-2,5V wobei das ja meine Spitzenspannung ist -> also 2,5V / Wurzel2 = 1,77Veff.

Zum Sensor/Stromtrafo ZMCT118F:
billiger Stromtrafo aus China, der aber erstaunlicherweise relativ linear ist.
Der Messbereich Wechselstrom 0-30A entspricht 0-30mA.
Besonders viele Daten habe ich nicht:
Ratio: 1000:1
Phase<=30
Linear range: 0-30A(Sampling resistor is 5ohm)
Linearity: 0.2%
Accuracy class: 0.5
Isolation voltage: 3000V

Zur Auflösung:
mal angenommen ich möchte ca. 5W bei 230V damit messen:
5W / 230V = 0,021739A durch den Sensor ~ 0,021739mA aus dem Sensor
bei 50 Ohm => fällt eine Spannung von 0,00109V AC am Widerstand ab.
Das entspricht einer Spitzenspannung von 0,00154V

Bei 12Bit: 5V / 4096=0,001221V als kleinste Stufe - wenn ich jetzt keinen Denkfehler gemacht habe müsste 12Bit ausreichend sein.

Die Idee mit dem LTC1286 finde ich gut (Reichelt 10€)
bei weiterer Suche habe ich noch den ADS 1115 IDGST gefunden - interessant, da kostet nur die Hälfte und hat 4 Eingänge.

Ich denke ich werde mir morgen mal das Datenblatt vom ADS 1115 IDGST durchlesen, ob der für mein Vorhaben passt.


Gruß,
Tobias

avr_racer
11.01.2017, 06:28
Hallo und vielen Dank für die Antworten.

Der Sensor ist ein Stromtrafo, deshalb bekomme ich die Wechselspannung von +/-1,5V / 50Hz (über dem 50 Ohm Widerstand).

Um die Wechselspannung mit dem AT Mega zu messen, habe ich den Analogeingang an einen Spannungteiler aus 2*470k gelegt. Der µC zeigt also bei 2,5V am Eingang 0 an(natürlich umgerechneter Wert).
Die Wechselspannung vom Sensor liegt an MASSE vom µC bzw. über einen 100nF Kondensator(in Reihe) an meinem Analogeingang.


Also normale Mitteneinkopplung.



Zur Auflösung:
mal angenommen ich möchte ca. 5W bei 230V damit messen:
5W / 230V = 0,021739A durch den Sensor ~ 0,021739mA aus dem Sensor
bei 50 Ohm => fällt eine Spannung von 0,00109V AC am Widerstand ab.
Das entspricht einer Spitzenspannung von 0,00154V


Vllt bring ein Spitzenwertgleichrichter dich hier weiter der richtet gleich und verstärkt um deinen Faktor X entsprechend. So das du hier 30A auf 3V auflösen kannst/könntest. Diese Spannung geht dann an den LTC.

Heißt bei 30A zu 30mA fliesen durch den Widerstand dann ~0,022A / 1000 = 0.000022A = 22µA.
Eine Frage habe ich noch du hast geschrieben bei 100 Ohm bricht dir die Spannung zusammen normalerweise sollte das nicht passieren oder hast du vllt 10 Ohm genommen ? Denn mit 100 Ohm, das war wahrscheinlich deine erste Idee, kommst du ja bei 30A auf 3V bei 30mA




Bei 12Bit: 5V / 4096=0,001221V als kleinste Stufe - wenn ich jetzt keinen Denkfehler gemacht habe müsste 12Bit ausreichend sein.

Die Idee mit dem LTC1286 finde ich gut (Reichelt 10€)
bei weiterer Suche habe ich noch den ADS 1115 IDGST gefunden - interessant, da kostet nur die Hälfte und hat 4 Eingänge.


Du brauchst doch keine 5V als AREF nehmen kannst auch 4,096V oder noch besser 3,072V. 4,096/4096 = 1mV Auflösung, bei 3,072 = 0,00075V / 750µV

Gott waren die mal wirklich so teuer ?? 0.o habe die mal bei Reichelt für 4€ erhalten. Da is der 16Bitter denn doch nicht schlecht nur mmmhh komisch

BMS
11.01.2017, 13:56
Hallo,
es geht auch günstiger z.B. mit dem MCP3201 (1 Kanal, 12 Bit, 50-100ksps, SPI, 2,20€).
Den gibt es auch mit 4/8 Kanälen als MCP3204/MCP3208.
Grüße, Bernhard

stfan1409
12.01.2017, 16:51
Hallo,
ich habe nun den ADS 1115 bestellt. (die I2C Schnittstelle hat mir gut gefallen :-))
Ich melde mich dann, wenn ich den eingebaut habe.

Gruß, Tobias

BMS
13.01.2017, 09:45
Hallo, der ADS1115 macht max. 860 Messungen pro Sekunde - reicht das wirklich :-k

Viele Grüße, Bernhard

stfan1409
11.04.2017, 20:24
Hallo und sorry,
dass ich mich nun erst melde! Ich bin zwischenzeitlich umgezogen und so lagen die Prioritäten wo anders. Aber ich habe nun das Projekt funktionsbereit und der erste Test läuft.
Vielen Dank an Bernhard: Du hast natürlich Recht, die 860 Messungen / Sekunde sind viel zu wenig.

Das neue Projekt habe ich hier vorgestellt:

https://www.roboternetz.de/community/threads/70472-Projekt-vorgestellt-Strommessung-im-Haushalt-bis-30A-mit-Arduino

Gruß, Tobias