mikrocontroller.net

Forum: Projekte & Code Wirkleistungsmessgerät


Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ein einfaches Wirkleistungsmessgerät für 230V Verbraucher ohne
Netztrennung mit 3 stelliger 7-Segment Anzeige für Verbraucher bis
500W.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Projekt!

Nur ist mir folgendes nicht ganz klar. Wenn ich nun einen
AC-Verbraucher anschließe, dessen Stromaufnahme und Klemmenspannung
messe und beide Größen miteinander multipliziere, so erhalte ich doch
zunächstmal die Scheinleistung. Diese müßte mit cos(Phi) multipliziert
werden, um die Wirkleistung zu erhalten. Hast du das einfach
vernachlässigt (d. h. cos(Phi)=1)?

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, stimmt. Das kann man natürlich vernachlässigen, wenn man von
überwiegend ohmschen Verbrauchern ausgeht wie es bei dir wohl der Fall
ist. Es wäre aber sehr interessant, dieses Projekt zu erweitern, so das
S, P, Q sowie cos(Phi) gemessen wird. Was hälst du davon?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht ganz:
Ueff*Ieff=Pwirk
u(t)*i(t)=Pschein
Ich multipliziere Strom und Spannung und bilde daraus den Mittelwert
und das ist die Wirkleistung.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte mir schon überlegt Ueff, Ieff, Pschein, Pwirk und Pblind
anzeigen zu lassen, aber das wird von der Rechenleistung her etwas
knapp, immerhin müssen dann 30000 mal pro Sekunde je zwei long Zahlen
multipliziert und dividiert werden.
Es reicht ja Ueff, Ieff und Pwirk in Echtzeit zu berechnen, der Rest
lässt sich daraus ableiten.

Autor: Martin #### (martin-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich multipliziere Strom und Spannung und bilde daraus den >Mittelwert

Ich stehe wohl momentan auf dem Schlauch, ich verstehe nicht wie
Mittelwert aus Strom und Spannung Wirkleistung ergeben soll ?

Es interesiert mich in sofern das ich demnächst vor habe
Sromverbrauchmässer zu bauen.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
p(t)=u(t)*i(t) Alle Werte sind Momentanwerte.
Um die mittlere Leistung zu bekommen muss man noch den Mittelwert
bilden.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin jetzt sehr verwirrt:

> Ueff*Ieff=Pwirk
> u(t)*i(t)=Pschein

in meinem ET-Buch steht:

Pschein=Ueff*Ieff
Pwirk=Ueff*Ieff*cos(Phi)
Pblind=Ueff*Ieff*sin(Phi)

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens
Such mal weiter, irgendwo findest du sicher die Angabe, dass dies nur
für sinusförmige Größe gilt.

Für alle anderen gilt
Pwirk=1/t*Summe(u(t)*i(t)), wobei Summe gleich dem Integral von t1 bis
t2 mit t=t2-t1 ist

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, jetzt ist der Cent gefallen. Du sampelst also sehr oft pro
Sekunde sowohl Spannung als auch Strom und berechnest zu jedem
Zeitpunkt die Momentanleistung die dann aufsummiert wird. Anschließend
noch den Mittelwert gebildet und habe fertig, richtig?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Daher ist bei mir die Kurvenform beliebig. Von Gleichspannung bis
hin zu den unförmigsten Kurven mit einigen 100Hz ist alles möglich.

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

hab mir Dein Wirkleistungsmessgerät grad mal schnell nachgebaut und es
funktioniert recht gut.
Hast du eigentlich Trenntrafos benutzt? Wie bekommst du die 5Volt?
Ich habe die 5 Volt von einem Loborneztgerät genommen aber irgendwie
kam  es immer wieder zu Spannungsspitzen und der AVR samt OP sind
gestorben. möchte es nun mit einem Spannungteiler und Spannungsregler
direkt an den 230V probieren.
Was ich noch probieren wollte ist das Berechenen von Frequenz und
Phasenverschiebung, sollte ja auch noch ohne größeres Problem möglich
sein.

Gruß Georg

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir läuft der AVR mit 8MHz, wenn du noch zusätzliche Sachen
berechnest, dann sollte der AVR mit 16 oder 20MHz laufen (ADC Teiler
entsprechend einstellen.)
Die 5V stammen aus einem kleinen Hilfstrafo der etwa 8-10V erzeugt, aus
denen mit einem 7805 die 5V erzeugt werden. Benötigt werden max. 100mA.

Ein Kondensatornetzteil funktioniert nicht, da die Schaltung nicht auf
Masse bezogen ist, sondern die Masse auf etwa 0,5V liegt.

Spannungsspitzen sollten eigentlich nict auftreten, wenn die 5V
Spannung vom Stromnetz galvanisch getrennt ist.

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Benedikt,
mal ne dumme Frage:
Kann es sein, dass du demnächst auch ins 3.Semester ET in Aschaffenburg
kommst?.

Gruß Georg

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe so ein Leistungsmessgerät von Conrad.
Nach diesem Gerät braucht mein Router sagen wir mal 13 Watt
Meine USV 9 Watt
Der NAS-Server 18 Watt
und alle zusammen 49 Watt.
Stecke ich mein Notebooknetzteil noch dazu, dann sinkt die Leistung auf
43 Watt.

Die Werte stimmen nur ganz grob. Ich habe sie nur genommen, um zu
verdeutlichen, das da irgend etwas nicht stimmen können sollte.

Können sich induktive und kapazitive Lasten so ergänzen, dass sie
zusammen weniger Leistung brauchen, als die einzelnen Geräte?

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die induktiven und kapazitiven Blindleistungen können sich aufheben.
Dann bleibt nur noch die Wirkleistung übrig. Stichpunkt:
Blindleistungskompensation. Wenn eine Firma viele induktive Verbraucher
hat und die Blindleistung sehr groß ist, kann das
Energieversorgungsunternehmen verlangen, dass die induktive
Blindleistung mit Kondensatorenbänken kompensiert wird. Eine totale
Kompensation wird nicht verlangt, sondern nur einen cos phi= ~0.9.
Damit wird das Netz nicht so stark belastet.


Gruß Elektrikser

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann induktive mit Kapazitiven Lasten kompensieren, aber ein
Wirkleistungsmessgerät sollte bei einem Trafo im Leerlauf nahezu Null
anzeigen.

Ich habe auch eine USV die mit einem gekauften Messerät angeblich 30W
im ausgeschalteten Zustand verbraucht ! Mit meinem
Wirkleistungsmessgerät sind es gerade mal 2-3W.
Wenn ich eine Master Slave Steckdose anschließe, geht diese an wenn
der PC aus ist, und aus wenn der PC an ist !!!


@Georg
Könnte gut möglich sein...

Autor: Georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt

Ist ja mal echt cool.. Ich denke du weist wer ich bin. So viele heißen
ja nicht Georg. Da verbindet uns ja ein Hobby. Und du sagst nix wie ich
neulich zwischen den Vorlesungen geeagelt hab..

Hab übrigens noch die Frequenzmessung hinbekommen und
Phasenverschiebung wollt ich auch noch pobieren bin aber net dazu
gekommen. Dürfte ohne Probleme auch mit 8Mhz gehen.

Gruß Georg

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
/*
Ich habe auch eine USV die mit einem gekauften Messerät angeblich 30W
im ausgeschalteten Zustand verbraucht ! Mit meinem
Wirkleistungsmessgerät sind es gerade mal 2-3W.
*/

Benedikt, dann kann man also die gekauften wirklich teilweise als
Schrott bezeichnen, oder?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Georg
Stand ich nicht daneben und habe gefragt was das wird (das war glaube
ich irgendein Lufdruck oder Höhenmesser) ?

@Jens
Zumindest die für 10-20€ von Conrad, Reichelt, Pollin, Aldi und Co
kann man vergessen.

Autor: Michael Herling (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

ich habe auch Deine Schaltung nachgebaut, jedoch bisher erfolglos: Ich 
bekomme keinen stabilen Wert angezeigt, mir scheint als ob die Eingänge 
"schweben" d.h. die Anzeige zeigt wahllos die verschiedensten Werte an. 
Könntest Du bitte mal den Schaltplan prüfen, ob ich die 5V 
Spannungsversorgung richtig "eingebaut" habe? Muß es vielleicht einen 
Bezug zum N-Leiter geben???

Grüße

Michael
P.S.: Mit der neusten WIN AVR Version müssen Änderungen berücksichtigt 
werden:
//SIGNAL(SIG_ADC)
ISR(ADC_vect)

und

//INTERRUPT(SIG_OUTPUT_COMPARE0A)  //LED Multiplex
ISR(SIG_OUTPUT_COMPARE0A)

Außerdem wird die ignal.h als zu alt "bemeckert"

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schaltung sieht gut aus. Eigentlich müsste es funktionieren. Was 
passiert wenn die Schaltung nur über Trafo versorgt wird (also keine 
Messsignal anliegt). Dann sollte an den ADC Eingänge etwa 0,5V anliegen.

Autor: Michael Herling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

auch ohne Netzspannung passiert das Selbe. Ich hatte nämlich vor 
Eintreffen des Shunts (nußte ich bestellen) bereits die Schaltung nur 
mit 5V versorgt. Da sah ich das schon. Ich wollte nur abwarten, bis 
alles komplett angeschlossen war.
Könnte das vielleicht mit den Fuse-Bits zu tun haben? Aber ich wüsste 
nicht welches.
Die Änderungen im Quellcode sind OK? Oder habe ich dort einen Fehler 
gemacht? Ich habe signal.h auskommentiert, da der Compiler auch dieses 
bemeckert hat.
Könntest Du mir vielleicht sicherheitshalber Deine funktionierende .hex 
Datei zusenden, damit ich diese Fehlerquelle ausschließen kann?

Grüße
Michael

Autor: Benedikt K. (benedikt) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist die Hex Datei. Ich bin mir nicht sicher, aber ich denke ich 
habe nichts mehr nachträglich verändert.

Autor: Michael Herling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!

Werde ich morgen testen.

Grüße

Michael

Autor: Michael Herling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

Fehler gefunden: habe bei mir R17 und R19 vertauscht bzw. PB0 und PB2 
(=> 1er und 100er Stelle vertauscht...). Jetzt funktionierts bis auf 
Vorzeichen und der Dezimalpunkt ist auf der 10er Stelle eingeschaltet. 
Aber egal.

Grüße

Michael

Autor: Michael Herling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.S.: Danke nochmal für Deine freundliche Hilfe!

Grüße
Michael

Autor: falscher Hase (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Wolfram Quehl (quehl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Benedikt,

mehrere Fragen:

könnte man nicht durch Verwendung der Analogen Differenzeingänge die 
externen Operationsverstärker vermeiden? Evtl. Kalibrierungen könnten 
auch per Software gemacht werden.

So, wie ich das Programm interpretiere (kann kein C), erfolgt Spannungs- 
und Strommessung zeitversetzt. Eine Kompensation habe ich im Programm 
nicht gesehen. (ginge ja auch nur bei Sinuseingängen). Wie ist der 
dadurch entstandene Fehler zu beurteilen? in Watt oder %? und wie groß?

Das Summieren der Einzelwerte kann nicht über eine feste Anzahl gemacht 
werden, sondern von Nulldurchgang bis zum nächsten Nulldurchgang. Sonst 
ergibt sich in der Summe eine Teilschwingung, wenn die Frequenz nicht 
zum Teiler paßt.
Möglicherweise sind die Fehler bei 50 Hz klein, so daß sie praktisch 
nicht auffallen. Eine Kalibrierung mit einer 60W Glühlampe halte ich 
aber auch für etwas gewagt. Die 60W müssen ja nicht 60W sein, eine 
extrapolation führt zu höheren Fehlern, der Fehler überträgt sich auf 
alle Folgemessungen, die o.g. Fehler werden vertuscht und können bei 
anderen Stromaufnahmen zu Fehlern führen trotz Kalibrierung.


Programmaufbau: ich weiß jetzt nicht, inwieweit das durch C verursacht 
wird.

Die Regel EVA (Eingabe, Verarbeitung, Ausgabe) wird hier nicht 
eingehalten. Die Anzeige wird mit der Messung gemischt und erst gibst Du 
an, was mit dem Ergebnis passiert und dann wird erst gemessen. Und 
berechnet wird dann zwischendurch.
Ich würde das besser finden, die folgenden Blöcke zu programmieren.
Messen, Berechnung, Ausgabe auf Anzeige, Wiederholung dieser 3 Blöcke. 
Du hast da 5 sek. genommen, ich hätte das ohne Wartezeit wiederholt.
Wenn jemand wie ich die Anzeige nicht auf LEDs sondern auf RS232 oder 
wie andere auf LCD haben wollen, dann kann das leichter umprogrammiert 
werden. Ggf. auch als Unterprogramm, das dann ausgetauscht werden kann.
Grundsätzlich sollten Messungen nicht durch Berechnungen oder Ausgabe 
gestört werden. Dies kann ich nicht so ohne weiteres erkennen.

mfg
Wolfram

einer, der das Ganze in Assembler programmieren will mit galvanischer 
Stromtrennung.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfram Quehl wrote:

> könnte man nicht durch Verwendung der Analogen Differenzeingänge die
> externen Operationsverstärker vermeiden? Evtl. Kalibrierungen könnten
> auch per Software gemacht werden.

Wenn man einen µC mit differentiellen Eingängen verwendet, sollte es 
gehen. Allerdings muss der AVR dann mit +/-2,5V betrieben werden, und N 
ist dann GND, damit der AVR positive und negative Spannungen messen 
kann.

> So, wie ich das Programm interpretiere (kann kein C), erfolgt Spannungs-
> und Strommessung zeitversetzt. Eine Kompensation habe ich im Programm
> nicht gesehen. (ginge ja auch nur bei Sinuseingängen). Wie ist der
> dadurch entstandene Fehler zu beurteilen? in Watt oder %? und wie groß?

Die Samplerate beträgt etwa 9,6kHz. Pro Sinuswelle werden also rund 200 
Messwerte erstellt. Der erzeugte Phasenfehler liegt bei rund 1,8°. Das 
dürfte das Ergebnis nicht viel allzusehr beeinflussen, vor allem da die 
gesamte Genauigkeit durch den ADC mit nur 10bit sowiso nicht allzu hoch 
ist. Das ganze Gerät darf man also nicht mit einem teueren 
Profimessgerät vergleichen.

> Das Summieren der Einzelwerte kann nicht über eine feste Anzahl gemacht
> werden, sondern von Nulldurchgang bis zum nächsten Nulldurchgang. Sonst
> ergibt sich in der Summe eine Teilschwingung, wenn die Frequenz nicht
> zum Teiler paßt.

Ich verwende keine feste Messzeit, sondern glätte die momentanen 
Leistungswerte mit einem sehr einfachen Tiefpassfilter.

> Eine Kalibrierung mit einer 60W Glühlampe halte ich
> aber auch für etwas gewagt. Die 60W müssen ja nicht 60W sein, eine
> extrapolation führt zu höheren Fehlern, der Fehler überträgt sich auf
> alle Folgemessungen, die o.g. Fehler werden vertuscht und können bei
> anderen Stromaufnahmen zu Fehlern führen trotz Kalibrierung.

Ich habe ja auch nirgends geschrieben, dass eine 60W Glühlampe auch 60W 
haben muss:
"Anschließend wird ein ohmscher Verbraucher angeschlossen (z.B. 25-100W 
Glühlampe) und deren Spannung und Strom gemessen."

Die Lampe dient also nur als ohmsche Last, deren genaue Leistung über 
Strom und Spannung gemessen wird, und dieser errechnete Wert wird als 
Referenz verwendet. Die Genauigkeit wird also hauptsächlich durch das 
verwendete Strom und Spannunsgmessgerät bestimmt.

> Die Regel EVA (Eingabe, Verarbeitung, Ausgabe) wird hier nicht
> eingehalten. Die Anzeige wird mit der Messung gemischt und erst gibst Du
> an, was mit dem Ergebnis passiert und dann wird erst gemessen. Und
> berechnet wird dann zwischendurch.
> Ich würde das besser finden, die folgenden Blöcke zu programmieren.
> Messen, Berechnung, Ausgabe auf Anzeige, Wiederholung dieser 3 Blöcke.

Es macht nur wenig Sinn, die Ausgaberoutine 9600 mal pro Sekunde 
aufzurufen. Bei µC ist es auch häufig üblich, dass die Datenerfassung im 
Hintergrund per Interrupt läuft.

> Du hast da 5 sek. genommen, ich hätte das ohne Wartezeit wiederholt.

1. sind es keine 5 Sekunden, sondern 1/5 Sekunde.
2. Es ist schwachsinnig ununterbrochen das Ergebnis auszugeben. Wenn 
z.B. die hinterste Stelle des Messwerts wackelt kann kein Mensch die 
Anzeige mehr lesen wenn die Anzeige z.B. 1000x pro Sekunde aktualisiert 
wird.

> Grundsätzlich sollten Messungen nicht durch Berechnungen oder Ausgabe
> gestört werden.

Das werden sie ja auch nicht, dafür gibt es ja Interrupts. Daher werden 
die aufwendigen Zahl zu Ziffer Umrechnungen auch in einer Endlosschleife 
gemacht, während die Messungen höchste Priorität haben.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe Cracks,
ich wollte mir das Wirkleistungsmessgerät nachbauen und bin auf folgende 
Probleme gestossen.

1. Uref an Pin (21)AREF ist laut Datenblatt 2,56V und nicht ca.1V. Ich 
habe das Programm main.hex auf den Mega8 geladen, kann aber gar keine 
Uref messen.

2. Wenn ich den Mega8 mit Bascom configuriere, erhalte ich 2,6V als 
Uref, was nahe genug an 2,56V ist.

3. Da ich kein C programmieren kann wäre ich an einer Version in Bascom 
interessiert wenn es sowas gibt.

4. Wie kann ich unter Windows das file "main" compilieren. Da steh ich 
auf dem Schlauch.

vielen Dank erst mal
Gruß
Markus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus wrote:

> 1. Uref an Pin (21)AREF ist laut Datenblatt 2,56V und nicht ca.1V. Ich
> habe das Programm main.hex auf den Mega8 geladen, kann aber gar keine
> Uref messen.

Nein, der mega48 kann auch 1,1V.

> 2. Wenn ich den Mega8 mit Bascom configuriere, erhalte ich 2,6V als
> Uref, was nahe genug an 2,56V ist.

Ja, das sind die üblichen Toleranzen, daher ist das Poti R9 vorhanden, 
um den Nullpunkt abzugleichen, und R5 um die Verstärkung einzustellen.

> 4. Wie kann ich unter Windows das file "main" compilieren. Da steh ich
> auf dem Schlauch.

Mit WinAVR.

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab eine Frage hierzu: Und zwar möchte ich die Schaltung eigentlich 
mal eben auf die Schnelle nachbauen, habe aber leider keinen 
SingleSupply OPAMP da. Ich bin der Meinung, dass man eigentlich keinen 
OPAmp braucht. Lieg ich da falsch?

Mein Vorschlag:

AVR an stabilen 5V betreiben (die 5V müssen nur Kurzzeitstabil sein, 
d.h. für die Dauer einer kompletten Messung ab Anschalten bis 
Ausschalten des AVRs müssen sie komplett stabil bleiben), relativ 
niederohmig (insgesamt 500 Ohm oder so?) daraus eine Virtuelle Masse 
bilden, welche ungefähr = 0,5 * Vref(ADC) ist. Diese virtuelle Masse 
wird nun statt des Ausgangs des OPAmps mit N verbunden, zusätzlich geht 
sie an einen weiteren ADC Eingang. Nach dem Einschalten wird nun ne 
Sekunde gewartet, damit alle Spanungen sicher stehen und eine 
Referenzmessung gegen unsere Virtuelle Masse gemacht, der Messwert hier 
wird statt der 512 in Benedikts Code vom ADC Messwert im Interrupt 
abgezogen.

Kann das funktionieren, wird es funktionieren und was sagt ihr zur 
Genauigkeit im Vergleich? Meine Meinung: Wartet man vor der 
Referenzmessung, bis alle Bauteile Betriebstemperatur haben, so sollte 
der Offsetfehler wirklich 0 sein, die restlichen Fehler sind dabei 
gleich der Originalschaltung, von daher sollte die Gesamtgenauigkeit 
sogar besser sein. Stimmt das?

Matze

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das sollte theoretisch funktionieren.

Da ja eigentlich kein Strom fließt, sollte es reichen die 
Referenzspannung per Spannungsteiler aus den 5V zu erzeugen, (die 5V 
müssen dann halt entsprechend genau sein), und die virtuelle Masse mit 
ein paar Kondensatoren etwas puffern.

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur mal so mein Status, falls das noch jemand nachbauen möchte:

Es HAT eben funktioniert, ich bin allerdings nichtmal bis zum Abgleich 
gekommen. Ich habe mir allerdings eben vermutlich den ADC zerschossen, 
vielleicht auch nur irgendwas anderes, das ganze wird Weihnachten weiter 
untersucht... Ja, kein Spaß, ich ziehe morgen früh um nach Hamburg/Wedel 
und lasse meine Bastelsachen zu Hause. Weihnachten bin ich dann mal 
wieder 2 Wochen hier, dann wird weiter gebastelt :-)

Ansonsten war der Auto-Offset sehr zuverlässig. Ohne angeschlossene Last 
(aber mit 230V an) sprang nur die Nachkommastelle zwischen 0 und 1. Eine 
Spannungsänderung um 0,1V lässt dabei die Leistung (ohne angeschlossene 
Last) scheinbar um ~10 W steigen. Darum sei nochmals betont, dass die 
Spannung des µCs hierfür stabilisiert sein muss!
Codeänderungen:
globale Variable unsigned int offset = 0;
Anfang main ändern in: ADMUX=(1<<REFS0)|(1<<REFS1)|2;  //interne 1,2V 
Referenz, v_gnd mux
(virtuelle Masse an ADC2)

quick & dirty vor dem sei(); einfügen:
  int temp = 0;
  int temp2;
  for(;temp < 30000;temp++)
    for(temp2 = 0; temp2 < 200; temp2++)
      asm("nop");
  ADCSRA=128+64+16+8+6;
  while(ADCSRA & (1 << ADSC));
    offset = ADC;
  ADMUX=(1 << REFS0) | (1 << REFS1);
  ADCSRA=128+64+16+8+6;

in der ADC Isr:
iq=ADC-offset und uq=ADC-offset (vorher stand da 512 statt offset)

außerdem: Alte Interruptdefinitionen durch ISR(ADC_vect) und 
ISR(TIMER0_COMPA_vect) ersetzen, dann lässt es sich auch mit aktuellem 
WinAVR compilieren. (EDIT: Der Timerinterrupt sollte den ADC Interrupt 
zulassen (höhere Genauigkeit des Ergebnisses) - weiß grad nicht genau, 
wie man das anstellt, steht aber im GCC Tutorial hier. Also diesen Teil 
NICHT einfach durch ISR(...) ersetzen.)

Wie zuverlässig nun der Betrieb ist und warum ich nun ein Problem 
habe... Ich weiß es nicht und kann dazu auch erstmal nichts sagen.

Unterm Strich mal gesagt:

Diese Schaltung ist superbillig aufzubauen und übertrifft in ihrer 
Leistungsfähigkeit locker die 20€ Baumarktgeräte. Für eine noch höhere 
Genauigkeit wäre es z.B. einfach möglich, einen zweiten Stromshunt 
einzubauen. Dazu am besten ein kleines Relais zur Trennung: 
Standardmäßig ist der niederohmigere Shunt gewählt, wird nun erkannt, 
dass der Strom dauerhaft (z.B. uint16 incrementieren falls kleiner 
Grenzwert, auf 0 setzen falls >= Grenzwert, bei erreichen einer Schwelle 
umschalten) unter einer einprogrammierten Grenze liegt, so schaltet das 
Relais auf den anderen Shunt um. Dabei bekommt jeder Shunt sein eigenes 
Poti zur feineinstellung und muss einzeln kalibriert werden. Dadurch 
kann die Stromauflösung stark erhöht werden, um z.B. die Standby und 
Kleinleistungsbereiche (< 40 W gäbe schon eine Verzwanzigfachte 
Auflösung) etwas genauer abzubilden.

Dennoch hat auch die derzeitige Version trotz der "geringen" Auflösung 
im Kleinleistungsbereich bzw. der daraus resultierenden "hohen" 
Gesamtabweichung (ich würde vermuten: ungefähr +/- 2 W) den enormen 
Vorteil gegenüber den Kaufvarianten, dass man einfach weiß: Was da steht 
ist die Wirkleistung, ungefähr soviel braucht mein Gerät.

Matze

Autor: sum (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hatte sowas auch mal gebaut in letzter Zeit und bin zu dieser 
Schaltung gekommen, sehr ähnlich der von Benedikt, aber ohne OPs.

Funktioniert auch, wie Zuverlässig kann ich aber nicht sagen, da ich es 
noch nicht ausgiebig getestet habe.

Grüße,
 Clemens

Autor: Matthias Larisch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, es geht auf Weihnachten zu, ich habe wieder meinen Bastelkeller 
unter meinen Füßen und natürlich meinen Ansatz von ein paar Posts höher 
durchgeführt:

Mangels der passenden Widerstände habe ich eigentlich fast alle 
verändert. Meine ungefähren Werte (Achtung, bitte vor dem Nachbau 
nochmal grob nachrechnen, ich gebe hier nur ungefähre Dimensionen an).
Spannungsteiler von ~200k gegen L und ~250R gegen N (230*sqrt(2) am 
Eingang dürfen zu max. 0,55 V am Ausgang führen. Besser ~0,1 V Reserve 
lassen).
Spannungsteiler 220R von 5V zu 21R nach GND. Die Spannung kommt an N 
(Virtuelle Masse, für optimalen Messbereich möglichst nah an Vref/2=0,55 
V bringen.)
Meinen Stromshunt hab ich so geschickt auf die Platine gelötet, dass ich 
den Aufdruck leider nicht mehr lesen kann. War irgendwas zwischen 0,18 
und 0,33 Ohm. Im Endeffekt ist das fast egal, halt so berechnen, dass 
der gewünschte Imax noch keinen Schaden anrichtet und man bei 
Vollausschlag max. 0,55 V bekommt (lieber für etwas mehr dimensionieren, 
wird dann ja per Poti abgeglichen).

Diese Schaltung passt zu der Codeänderung ein paar Zeilen höher, damit 
habe ich eben diverse Geräte durchgemessen.

Einige Interessante Messergebnisse:
Schaltnetzteile Laptop/MP3 Player/Handy: ~1 Watt Standby
Schaltnetzteile Siemens Gigaset: ~0 (NULL) Watt Standby.
Siemens Gigaset Basisstation (ohne Telefon dran, einfach nur 
eingesteckt): ~1 Watt.

Standard-Billig-Uhrenradio: 2 Watt.
Etwas älterer Grundig-Fernseher Standby: 17 Watt. Betrieb: 50 Watt.
Ältere PCs (Duron 1,3 GHz, Athlon XP 2000+): ~90-130 Watt (je nach 
Lastzustand, ohne Monitor)
Neuer Billig-PC (AMD X2 3800+ EE, 2 GB Ram, Integrierte Grafik, 2 
Festplatten): ~60 Watt.
Neue 19" TFTs: 20 Watt (Betrieb, Standby hab ich nur 2x neuer TFT + 2x 
PC (neu+alt) mit 13 Watt gesamt)

Okay, das gehört nicht in den Thread, man sieht aber, dass sich neue PCs 
lohnen :-)
BTW, vergessen, 17" Röhre LG Flatron 795 FT Plus Stdby (oder auch vorne 
aus, ist exakt identisch) 3,3 Watt, Betrieb ~70-80 Watt.

Also: Benedikt, Super Schaltung! Für alle, die noch weniger Bauteile 
haben wollen nehmt meine Verbesserung g. Wie immer: Achtung mit 230V, 
keine Haftung!

Kleine Kuriosität: Ich hatte Probleme, wenn ich N und L vertauscht hab, 
dann hat sich irgendwie die Masse verschoben. Lag vielleicht irgendwie 
an meiner 5V Versorgung (auch wenn die eigentlich galvanisch getrennt 
ist - kA.), also wenn Mist rauskommt, einfach mal den Stecker drehen.
Und zu meinen ehemaligen Problemen:
Ich hatte die Spannungsteiler etwas daneben dimensioniert, sodass ich 
Bereichsüberschreitungen hatte. Jetzt wundert mich eher, dass es anfangs 
ging und nicht gleich nicht ging (denn die Kurve lag sicher zu 10% 
über/unterhalb der zulässigen ADC Grenzen).

Viel Spaß beim Nachbau und durchs Haus rennen & nachmessen :-)

Autor: Morpheus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Das Projekt ist genau das was ich suche.
Mein Problem ist die virtuelle Masse.
Ich möchte gerne ein PIC16-Controller für dieses Projekt verwenden, aber 
ich verstehe nicht genau, wie das mit der virtuellen Masse funktioniert.
Wie ich es im Source verstehe setze ich Konfiguration des ATMEGA48 auf 
eine interne Referenz-Spannung von 1,1V (REFS1 und REFS0).
"Internal 1.1V Voltage Reference with external capacitor at AREF pin"
Habe ich die Konfiguration so verstanden, das ich am OP (Pin 3) eine 
Referenzspannung von 1,1V habe oder sie soll ich das verstehen?
Wie kann ich dies mit einem PIC-Controller erstellen?
Kann ich evtl. als Referenzspannung am PIC (VREF+) eine Spannung von 
1,1V anlegen, oder steckt noch was anderes in dieser Konfiguration beim 
ATMEGA48 dahinter?


Eine weitere Frage ist die Umrechnung.

"peff=(pq/256)/64;      //Wirkleistung in Watt aus Mittelwert berechnen"

Wie sind die Teiler 256 und 64 enstanden bzw. wie kommt man darauf?

Vielen Dank im Voraus.

Viele Grüße
Morpheus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morpheus schrieb:
> Wie ich es im Source verstehe setze ich Konfiguration des ATMEGA48 auf
> eine interne Referenz-Spannung von 1,1V (REFS1 und REFS0).

Ja.

> "Internal 1.1V Voltage Reference with external capacitor at AREF pin"
> Habe ich die Konfiguration so verstanden, das ich am OP (Pin 3) eine
> Referenzspannung von 1,1V habe oder sie soll ich das verstehen?

Ja. Die Hälfte davon wird als virtuelle Masse verwendet.

> Wie kann ich dies mit einem PIC-Controller erstellen?
> Kann ich evtl. als Referenzspannung am PIC (VREF+) eine Spannung von
> 1,1V anlegen,

Ja. Wobei du nachschauen müsstest, ob der PIC eine derart niedrige 
Referenzsspannung verarbeiten kann. Teilweise muss die Referenzspannung 
z.B. mindestens 3V betragen.
Da man die Referenzsspannungserzeugung dann etwas niederohmiger 
dimensionieren kann, kann man sich auch den Opamp sparen und stattdessen 
nur einen Spannungsteiler verwenden.

> Eine weitere Frage ist die Umrechnung.
>
> "peff=(pq/256)/64;      //Wirkleistung in Watt aus Mittelwert berechnen"
>
> Wie sind die Teiler 256 und 64 enstanden bzw. wie kommt man darauf?

Das ganze ist Teil der Umrechnung von ADC Wert nach 0,1W Auflösung:
Der Spannungs ADC misst mit etwa 1Volt Auflösung (Messbereich +/-512V). 
Der Strom ADC wird auf eine Auflösung von etwa 12,5mA eingestellt 
(Messbereich +/-6,4A). Das entspricht in etwa der Mitte der 
Potieinstellung von R5.
Da die Spannungs und Stromwerte multipliziert werden, entspricht ein 
Wert von 1 daher einer Leistung von 12,5mW. Durch die Filterung wird der 
Wert um den Faktor 2048 vergrößert. Man hat nun eine Auflösung von 
6,1µW. Um auf eine Auflösung von 0,1W zu kommen, wird der Wert nun durch 
die 16384 geteilt und man erhält 100mW Schritte.
Wenn man den Spannungsteiler oder den Stromshunt anders dimensioniert um 
einen anderen Wertebereich zu erreichen, dann muss man an diesem Faktor 
drehen, um wieder eine passende Anzeige zu erhalten.
Der Abgleich geschieht hier nur in 2er Potenzen, da dies einfacher zu 
rechnen ist. Der genaue Abgleich geschieht über R5. Da Spannung und 
Strom multipliziert werden, ist es egal ob man Spannung oder Strom 
abgleicht um die richtige Leistung zu erhalten.

Autor: Morpheus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

danke erstmal für die schnelle und ausführliche Antwort.

> Ja. Wobei du nachschauen müsstest, ob der PIC eine derart niedrige
> Referenzsspannung verarbeiten kann. Teilweise muss die Referenzspannung
> z.B. mindestens 3V betragen.

Ich habe festgestellt, das der PIC nur min. 2 V als Referenzspannung 
erkennt.
Kann ich die 1,1 V Spannung für den Opamp um 2V erhöhen, damit der PIC 
diese Referenzspannung erkennt. Muss ich dann bestimmte Werte 
entsprechend dimensionieren bzw. ändern oder evtl. etwas anderes ändern?

> Da man die Referenzsspannungserzeugung dann etwas niederohmiger
> dimensionieren kann, kann man sich auch den Opamp sparen und stattdessen
> nur einen Spannungsteiler verwenden.
Meinst du Spannungsteiler, um Sinusspannung zu "verschieben" bzw. zu 
erhöhen, sodass diese nicht negativ ist.

Sorry für die komischen Fragen.

Danke dir im Voraus.

Viele Grüße
Morpheus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morpheus schrieb:

> Ich habe festgestellt, das der PIC nur min. 2 V als Referenzspannung
> erkennt.
> Kann ich die 1,1 V Spannung für den Opamp um 2V erhöhen, damit der PIC
> diese Referenzspannung erkennt. Muss ich dann bestimmte Werte
> entsprechend dimensionieren bzw. ändern oder evtl. etwas anderes ändern?

Das einfachste dürfte es sein, den Spannungsteiler entsprechend 
anzupassen, also R3 zu verdoppeln.
Der Stromshunt sollte ausreichen, R5 steht dann allerdings ziemlich weit 
am Anschlag, aber das ist egal solange der Bereich noch zum Abgleich 
ausreicht.

> Meinst du Spannungsteiler, um Sinusspannung zu "verschieben" bzw. zu
> erhöhen, sodass diese nicht negativ ist.

Ja.
Eine Möglichkeit wäre z.B. ein Spannungsteiler aus 1,5k und 1k um die 2V 
Referenzsspannung zu erzeugen. An die Referenzsspannung noch ein paar 
Kondensatoren (100nF + 47µF) gegen GND zur Stabilisierung der Spannung, 
und als 1k Widerstand dasPoti gegen GND um den Nullpunkt einzustellen 
(alternativ kann man das natürlich auch per Software machen, und hier 
dann Festwiderstände einsetzen. Auch diesen virtuellen Nullpunkt kann 
man dann nochmal mit ein paar Kondensatoren gegen GND stabilisieren.

Autor: Morpheus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

danke für die Antwort.
Ich habe mal in den Anhang meine Schaltung drangehangen mit den 
Änderungen, die du vorgeschlagen hast.

Leider funktioniert das "Hochsetzen" der Spannung auf den Nullpunkt 
nicht.
Die Sinusspannung "verschiebt" sich nicht.
Was mache ich falsch? Habe ich etwas falsch verstanden.

Danke im Voraus.

Gruß
Morpheus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es sollte eigentlich funktionieren. Mess mal die Gleichspannung an N_IN, 
da sollten 2V gegenüber der Schaltungsmasse anliegen.

Autor: Morpheus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

Ich habe Gleichspannung an N_IN gemessen. Dort liegen immer 0 V an. Wenn 
ich den Spannungsteiler einzeln messe, ohne ihn an N_IN anzulegen messe 
ich aber 2 V Gleichspannung. Sobald ich den Spannungsteiler an N_IN 
anlege, werden die 2V direkt zu 0V. Dadurch sehe ich keine Verschiebung 
der Sinusspannung.
Woran kann das liegen?

Gruß
Morpheus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann schließt du irgendwo Schaltungsmasse und N_IN (oder N_OUT) kurz.

Autor: Morpheus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

danke. Tja ... der zu viel mißt, mißt Mist.
Naja, ich habe nun 2 V Gleichspannung an N_IN anliegen.

Ich habe jedoch jetzt ein anderes Problem.
Ich habe dein Code übernommen und entsprechend angepasst.
Die Berechnungen habe ich auf jeden Fall gelassen.

Ich erhalte für Peff nie einen konstanten Wert. Die Werte schwanken 
zwischen negativen und positiven Werten.

"pq=(signed long) pq-pq/2048+(signed long)uq*iq;"
In dieser Formel berechnest du ja die Leistung und benutzt ein Filter.
Du hast geschrieben das der Wert durch den Filter um 2048 vergrößert 
wird.
Meine Frage wäre nur was hast du für ein Filter genommen?
Muss ich danach nicht meine berechnete Leistung mit 2048 multiplitieren?

Weshalb erhalte ich immer unterschiedliche Effektiv Leistungswerte 
(Peff) und nicht kostante? Hast du evtl. eine Idee?

Danke dir im Voraus.

Gruß
Morpheus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morpheus schrieb:

> Ich erhalte für Peff nie einen konstanten Wert. Die Werte schwanken
> zwischen negativen und positiven Werten.

In welchem Bereich schwanken die Werte?
Da das Filter alles andere als ideal ist, werden die 50Hz nicht zu 100% 
rausgefiltert, aber die Schankungen sollten minimalst sein (die letzte 
Stelle wackelt ein kleinwenig).
>
> "pq=(signed long) pq-pq/2048+(signed long)uq*iq;"
> In dieser Formel berechnest du ja die Leistung und benutzt ein Filter.
> Du hast geschrieben das der Wert durch den Filter um 2048 vergrößert
> wird.
> Meine Frage wäre nur was hast du für ein Filter genommen?

Diese eine Zeile hat es in sich, denn hier passieren sehr viele Sachen 
auf einmal:
uq*iq: Hier wird die momentane Leistung berechnet.
Diese wird zu der mittleren Leistung pq hinzuaddiert, allerdings nicht 
komplett, sondern nur 1/2048 davon. Da Fließkommaberechnungen aber 
langsam sind, wird der Wert einfach addiert. Der Wert ist also um den 
Faktor 2048 zu groß, daher wird pq wieder durch 2048 geteilt um das zu 
kompensieren.
Das Filter entspricht in etwa einem RC Glied, die Werte ändern sich also 
mit einer e-Funktion.

> Weshalb erhalte ich immer unterschiedliche Effektiv Leistungswerte
> (Peff) und nicht kostante? Hast du evtl. eine Idee?

Eventuell irgendwo ein Überlauf? Was passiert wenn du anstelle der ADC 
Werte konstante Werte einsetzt? Kommen dann die richtigen Werte raus? 
Probier das mal mit verschiedenen Werten, verschiedenen positiv/negativ 
Kombinationen usw.
Wenn beide gleiches Vorzeichen haben, müssen positive Werte rauskommen, 
ansonsten negative.

Autor: Morpheus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

>In welchem Bereich schwanken die Werte?
>Da das Filter alles andere als ideal ist, werden die 50Hz nicht zu 100%
>rausgefiltert, aber die Schankungen sollten minimalst sein (die letzte
>Stelle wackelt ein kleinwenig).

Ich hatte ein Problem mit den Variablentypen.

Ich stelle im Moment fest, das die Werte mit oder ohne Verbraucher 
gleich bleiben.
Ist es richtig das die Gleichspannung an R7 (Strom-Messung) und die 
Gleichspannung an C2 (Spannungs-Messung) ca. 2V ist. Die 2V wären der 
Offset um die virtuelle Masse zu erstellen.
Ich stelle jedoch fest das der AD-Wandler unterschiedliche Werte 
wandelt.
Habe ich im Moment ein Denkfehler? Ich dachte der AD-Wandler misst die
Gleichspannung?
Ich nehme im Moment die 5V aus einem Entwicklungsboard und verbinde auch 
die Masse miteinander. Habe ich hier schon ein Problem?

Sorry das ich zu viele Fragen habe.
Danke dir im Voraus.

Gruß
Morpheus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die ADCs haben beide einen Wertebereich von 0-1023. Durch das Offset 
liegt der Ruhepegel in der Mitte vom Messbereich, also bei 512. Daher 
wird in der Software vom ADC Wert ein Wert von 512 abgezogen, um auch 
negative Werte zu erhalten, so dass man einen Wertebereich von -512 bis 
+511 erhält und im Ruhezustand 0.

Autor: Morpheus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Benedikt,

Sorry für die späte Antwort.
Danke erstmal für deine Antwort.

Ich hatte ein Denkfehler.

Ich habe eine kurze Frage.
Ich wollte auch die aktuelle Strom und Spannung darstellen bzw.
speichern.

Da ich eine Wechselspannung messe, muss ich den Mittelwert berechnen.
Ich habe zuerst eine bestimmte Anzahl von Werten addiert und daraus den 
Mittelwert bestimmt. Danach habe ich den effektiv Wert der Spannung 
berechnet.
Dies wollte ich auch für den Strom machen, aber der Strom verändert sich 
bei unterschiedlichen Verbrauchern nicht.

Hier meine Berechnungen:

iq = (signed int16) (adc_value - offset);
current += (float) iq;
zaehler++;
..
..
voltage += (float) uq * (float) uq;
..
..
if (zaehler==500)
{
  current_act = current/500;
  voltage_act /=2601.0; // Voltage=ADC VALUE * (5 Volts)/(0xFF) * (5 
Volts)/(0xFF) = ADC VALUE/2601
  voltage_act = sqrt(voltage_act/(500));

}

Ich habe nur hier die Berechnungen angegeben.
Die Frage ist. ist meine Denkweise richtig.
Um den aktuellen Strom zu bestimmen ermittele ich den Mittelwert aus 
einer bestimmten Anzahl von Stromwerten (digital).
Um den aktuellen Spannung zu bestimmen wandel ich den digitalen Wert in 
ein Spannungswert um und berechne den Mittelwert. Danach berechne ich 
den Effektivwert.

Danke im Voraus für deine Geduld.

Viele Grüße
Morpheus

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Morpheus schrieb:

> Da ich eine Wechselspannung messe, muss ich den Mittelwert berechnen.
> Ich habe zuerst eine bestimmte Anzahl von Werten addiert und daraus den
> Mittelwert bestimmt. Danach habe ich den effektiv Wert der Spannung
> berechnet.

Nicht ganz:
Du musst die einzelnen Werte quadrieren, den Mittelwert bilden und dann 
die Wurzel daraus ziehen. Nur so erhält man den Effektivwert.
Bei der Spannung machst du das richtig, wieso machst du das bei dem 
Strom anders?

Und wieso rechnest du eigentlich mit Fließkommazahlen? Damit gewinnt man 
hier garnichts.
Eine 32bit Zahl sollte hier ausreichen: Der maximal erreichbare Wert 
liegt bei 500 Mittelwerten und 10bit Auflösung bei 500*512²=131072000. 
Das passt problemlos in 32bit.
Außerdem ist die aufwendige Berechnung im Interrupt vermutlich viel zu 
langsam um mit >10kHz ausgeführt zu werden, selbst mit einer 
Ganzzahlenwurzel über 32bit wird das eng, somit gehen einige Interrupts 
und somit Werte verloren, da der Interrupt in dem 500. Takt zu lange 
braucht. Lösung: Kopier in dem 500. Takt die Werte in eine Variable, 
setze ein Flag und berechne die Wurzel in Ruhe in der main Schleife. 
Währenddessen kann im Interrupt schon der nächste Mittelwert gemessen 
werden. Vermutlich benötigst du auch mehr Werte als 500 damit die Werte 
bei 50Hz stabil sind, am besten wählst du die Anzahl so, dass du ein 
Vielfaches an ganzen Perioden misst).

Autor: Jürgen Hems (misteret)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Wieso sind denn hier Spannungen bis +- 500V messbar?

Dies wird ja durch den Teiler R2/R3 bestimmt, also

U_ein = 470/(470 + 440k) * 500V = 0,533 V.

Liegt das daran, dass die Referenzspannung 1,1 V beträgt und eine 
virtuelle negative Masse vorhanden ist? Sodass die Referenzspannung 
sozusagen halbiert wird und maximal Spannungen bis +- 0,55 V messbar 
sind?


An der Genauigkeit dürfte sich eigentlich nichts ändern, egal ob 5V oder 
1,1V die Referenz oder?


Danke vielmals!

Autor: yoshi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Hab mir auch ein Leistungsmessgerät gebaut. Angezeigt werden Wirk- und 
Scheinleistung sowie cos(phi), U_eff und I_eff.
Abgetastet werden 2 Perioden mit jeweils 64 Samples à 12bit.
Controller: c8051f007
Display: Nokia 3310 ;-)

Viele Grüsse,
yoshi

Autor: Gregor B. (gregor54321)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo yoshi! Ich wäre an deiner Hard + Software interessiert! Schreib 
mir doch gern mal ne Nachricht!
Grüße, Gregor

Autor: yoshi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo gregor54321:
wie komme ich an deine email adresse ohne mich anzumelden? :)

Autor: Schaltungswächter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat schon mal jemand versucht den Nullpunkt durch Mittelwertbildung 
automatisch nachzujustieren?

Ich meine, die Anhebung auf halbe Ref. ist ja erstmal nur wichtig für 
den Arbeitspunkt der ADC's, der Nullpunkt kann errechnet werden. Wenn er 
nicht ganz mittig ist, stört das nur den Maximalwert welcher dann etwas 
geringer wäre. Ich würde die OPV's lieber zur Verstärkung des 
Stromsignals benutzen und dafür den Shunt geringer wählen, oder mit 
Stromwandler komplett potentialfrei machen.

Thema Stromwandler. Eine Netzfilterspule falsch'rum betreiben, d.h. 
durch den Ringkern den Stromleiter hindurch stecken und an den 50+50 
Windungen das Signal abnehmen - sollte dann auch für kleine Ströme 
empfindlicher werden.

Autor: yoshi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Schaltungswächter:

.. das wäre in der Tat eine gute Überlegung, die man verfolgen sollte. 
Ein sozusagen sich selbst kalibrierendes Messgerät, natürlich sind das 
nur Offsetkorrekturen.
Ich werde es bei Gelegenheit mal implementieren.

gruss,
yoshi

Autor: Schaltungswächter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal Thema Stromwandler:

Stromwandler werden im Kurzschluss betrieben und brauchen eine Bürde.
Alles klar. Herkömmlich Stromwandler haben 2000 und mehr Windungen und 
eine Bürde von beispielsweise 100 Ohm.

Meine Idee ist nun einen Wandler mit weniger Windungen zu bauen und die 
Bürde auf NULL Ohm zu "limitieren".

Wie? Der Wandler liegt einseitig an Masse oder "Mittenspannung 2,5V" und 
die andere Seite am invertierenden Eingang eines OPV dessen Ausgang mit 
(z.B.) 2,2KOhm auch an den Wandler geht und das Stromsignal direkt 
verstärkt als Spannung liefert.

Offset kann man rausrechnen oder den OPV mit Kondensator an den ADC 
koppeln.

Habe ich was übersehen?

Autor: Schaltungswächter (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal als Vorschlag:

Der Stromwandler besteht aus einer Netzdrossel auf einem Ringkern.
Primär ist der Leiter mit dem zu messenden Strom z.B. 2 mal durch den 
Ring geführt, sekundär 2 mal 50Wdg der originalen Wicklung in Reihe 
geschalten.

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@yoshi:
Wäre es möglich mehr über dein Gerät zu erfahren? Das sieht ja ganz nett 
zum Nachbauen aus.

Autor: Arno H. (arno_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe ich das richtig, dass du den virtuellen Nullpunkt der 
OPV-Eingänge als 0-Ohm-Bürde benutzen willst?

Arno

Autor: Schaltungswächter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, sollte gehen wenn der OPV auf Vu 1 kompensiert ist.
Der Messbereich ist nur noch abhängig vom Gegenkopplungswiderstand.

Autor: Schaltungswächter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ha! Stimmt.
Vielleicht doch noch einen Kondensator dazu, wegen Offsetausgleich.
Die Spule hat kaum 40 Ohm - geht nicht.

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hier mal als Vorschlag

Der misst bis 50mA....

Autor: Schaltungswächter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Primär oder Sekundär?

Nein, Spass beiseite, muss ich morgen probieren...
Ich habe eine Spule mit einer anderen Stromübersetzung.

Autor: yoshi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Abdul K.:

Kannst du gerne, was wäre interessant? Schema, Layout, Code?
Als kleine Abschreckung: Es ist ein Silabs Controller :)

Autor: Schaltungswächter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yoshi schrieb:
> was wäre interessant?

Schema und Code, ja das wäre super.

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist an einem Silabs Controller abschreckend? Finde ich besser als 
AVR. Sagen wir es mal so: Dein Design sieht auf dem ersten Blick 
interessant aus. Der erste Eindruck zählt!

Welchen Dynamikbereich erreichst du damit? Denke max. ist 3KW. Was ist 
das Minimum?

Autor: yoshi (Gast)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
.. Silabs ist nun leider mal nicht so verbreitet in diesem Forum, aber 
ich verwende die oft.

Das Schema ist im Grosse und Ganzen eine Kopie von Benedikts. Es wurde 
jedoch einige Anpassungen bezüglich den ADC levels gemacht. Ich verwende 
eine Ref von 2.4V und der Arbeitspunkt liegt daher bei 1.2V. Zudem 
verwende ich noch anderen OPs (SN10502), solche die man bei TI sampeln 
konnte (wie auch der Step-down ;-)).

Der Code ist leider noch sehr unfertig und wurde an einem Abend 
programmiert, also entschuldigt Unsauberheiten und gerine Dokumentation.
Vielleicht bringt es ja jemandem trotzdem etwas.

Gruss

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yohshi, danke für die komplette Projektdatei!! Eigentlich hat mich nur 
dein Algorithmus interessiert. Kannst du den nochmal ausführen bzw. 
gibts eine Referenz dafür im Internet?

Autor: Schaltungswächter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
von Benedikt (TE)

Wirkleistungsmessgerät

Mit dieser Schaltung lässt sich der wirkliche Leistungsverbrauch von 
Verbrauchern messen.

!!!Vorsicht: Die Schaltung besitzt keine Netztrennung !!!

Um eine hohe Genauigkeit zu erreichen, wurde die Messignalaufbereitung 
möglichst einfach gehalten und auf Verstärker komplett verzichtet,
da diese Offsetfehler verursachen. Ebenso hat die Schaltung keine 
Netztrennung.
Die Schaltung ist sowohl für Wechsel als auch für Gleichspannungen 
geeignet. Die Frequenz muss für gute Ergebnisse unter 1kHz liegen.
Der einzige Operationsverstärker in der Schaltung dient zur Erzeugung 
einer virtuellen Masse um negative Spannungen zu messen zu können.
Für diesen Operationsverstärker wurde daher ein driftarmer Typ 
verwendet. Mit einem LM358 funktioniert die Schaltung auch,
die Ergebnisse sind nur nicht so temperaturstabil.
Der AVR misst abwechselnd Strom und Spannung je rund 10000 mal pro 
Sekunde, multipliziert die Werte und bildet daraus den Mittelwert.
Da beide Werte sowohl positiv als auch negativ sein können, kann auch 
ein negative Leistung herauskommen.

Der Spannungsteiler R2/R3 ist so dimensioniert, dass bei 230V der 
Messbereich möglichst gut ausgenutzt wird.
Maximal können etwa +/-500Vss gemessen werden. Der Stromshunt ist auf 
etwa 3Aeff und der Messbereich auf +/-5A ausgelegt.
Durch ein anderes Teilerverhältnis und einen anderen Stromshunt kann man 
das Messgerät auch auf andere Messbereiche anpassen.

Der Ableich ist einfach:
Zuerst wird eine Wechselspannung zwischen L und N angelegt (über 
Trenntrafo !) und mit R9 die Anzeige auf 00.0 eingestellt.
Anschließend wird ein ohmscher Verbraucher angeschlossen (z.B. 25-100W 
Glühlampe) und deren Spannung und Strom gemessen.
R5 wird nun so eingestellt, bis sie berechnete Leistung auf der Anzeige 
erscheint.
Sollte der Messwert außerhalb des Einstellbereichs liegen, kann man auch 
im Programm den Teilerfaktor anpassen:
peff=(pq/256)/64;

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha. Danke, schon vergessen gehabt :-)

Autor: RoBe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich wurde freundlicher weise von Abdul K. auf diesen Thread 
aufmerksam gemacht, da ich zur Zeit fast das Gleiche bauen will.

Der unterschied zu diesem Projekt ist allerdings das ich auf meinem 
Modul
keinen Mikrocontroller verbauen soll. Dieser soll extern über zB. SPI 
verbunden werden.

Nun habe ich mir das Projekt man angegugt und muss quasi nur die ADCs
nachrüsten. Dazu habe ich mal bei reichelt geschaut und den LTC2400 
gefunden.
Dieser kann über SPI angesteuert werden.

Nun stellt sich mir die Frage:
Kann ich meine ADCs ohne weiteres dran anschließen. Uref kann 01,V to 
VCC sein. Analaog input range ist von -0,12V bis 1,12V.

Weitere Frage:
Wenn ich eine Spannung von U=230V an dem Spannungsteiler anschließe, 
erhalte ich an den ADC-Eingängen gerade mal 0,25V. Ist das nicht zu 
wenig?

Frage zu den Bauteilen:
Welche Bauteile wurden verwendet? Suche mir gerade die Sachen zusammen.
Um welchen Trafo handelt es sich z.B. ? Und worauf muss ich bei den OPs 
achten?

Danke schon mal im voraus.

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der LTC2400 ist sehr langsam. Mit dem kannst du also nicht per Fuß 
vektoriell messen.

Autor: RoBe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, gibt es eine schnellere Alternative?

Autor: llop (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
> Mit dem kannst du also nicht per Fuß
> vektoriell messen.

Dann versuchs per Hand

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Ja, Fahrrad.

Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir einmal von Microchip den MCP3911 oder MCP3901 an. Diese ADC's 
sind genau dafür konstruiert.

Autor: RoBe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fritz schrieb:
> Schau Dir einmal von Microchip den MCP3911 oder MCP3901 an. Diese ADC's
> sind genau dafür konstruiert.

Danke. Jetzt muss ich nur noch zugugen wo ich den möglichst die nächsten 
Tage als Privatperson bekomme. Bei reichelt und conrad gibt es diese 
leider nicht.

Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sprich mich mal per mail an:
f.seuhs<at>gmx.at
MfG Fritz

Autor: blacksix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo yoshi,

finde dein projekt prima, kannst du mir mehr info´s senden,
stückliste , layaout etc. möchte dieses nachbauen
danke
blacksix

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätte mal 3 kleine Fragen zu diesem Projekt:

1.) welchen Shunt habt ihr verwendet?
2.) welche Belastbarkeit sollte man für das Poti R5 rechnen?
3.) sind die beiden Widerstände von R2 parallel oder in Serie 
geschaltet?

Viele Grüße:
Bernhard

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.