Ohne negativer Versorgungsspannung kommst du sogar bei "rail-to-rail" OP's nie genau auf Null auf Ausgängen. ;)
Druckbare Version
Ohne negativer Versorgungsspannung kommst du sogar bei "rail-to-rail" OP's nie genau auf Null auf Ausgängen. ;)
Die Eingangsschaltungen sind bei den beiden Vorschlägen nicht identisch: Bei der Schaltung von Lötstelle... hat der OP eine Rückkopplung in beide Richtungen - damit ist er inv. Eingang eine virtuelle Masse. Bei der anderen Schaltung geht der OP am Eingang bei der einen Halbwelle in die Sättigung.
Einen extra analogen Integrator braucht man eigentlich nicht, dass kann sehr gut der µC machen. Per Tiefpass lassen sich die Oberwellen (200 Hz, 300 Hz usw.) gut unterdrücken und es reichen dann einige wenige Samples des AD-wandler um die 100 Hz und ggf. einen Rest 50 Hz zu unterdrücken. Im einfachsten Fall einfach 2 Werte mit 5 ms Abstand mitteln, und schon ist man die 100 Hz weitgehend los. Wenn die Spannung unsymmetrisch ist, und man noch ein bisschen 50 Hz Rest hat, dann halt 4 Werte mit 5 ms Abstand, oder viele Werte über ein 20 ms Intervall.
Mein Favorit wäre sowieso die Software lösung.
Softwarelösung war ja auch mein Favorit, aber leider bin ich nicht soooo ein Sofware überflieger, als das ich das alleine in Bascom lösen könnte mit der ACV Messung.
Ich nehme immer gerne Sofwareschnipsel von anderen und modifiziere die dann so, das ich das gewünschte Ergebnis erhalte (besser gut kopiert als schlecht kreiert). wenn es hier jemanden gibt der mir so einen Bascom Codeschnpsel geben könnte, nehme ich den gerne an
@Picture: Das man auch mit Rail to Rail nict exakt auf 0V runterkommt ist mir bekannt, aber einen "virtuellen Reststrom" bin ich bereit zu akzeptieren. Das kann aber auch die Software noch wieder eleminieren. Für einen "normalen" OP müsste ich dann ja wieder mit z.B einen DC-DC Wandler eine neg. Spannung erzeugen.
Aber Danke für deinen Hinweis.
Gruß
Neutro
Die kleine Ausgangsspannung (laut DB um 15 mV), kann man natürlich bei "0" am Eingang messen und danach immer einfach softwaremässig abziehen.
Übrigens, für unipolare Spannung eignet sich ein analoger Integrator nicht, weil der Kondensator dann periodisch entleert werden muss. ;)
@picture: Der OP geht nicht am Eingang in die Sättigung, sondern schon als ganzes, bzw. mit der Spannung am Ausgang. Im linearen Bereich, sorgt der OP Dafür das die Spannung an den beiden Eingängen gleich ist - damit kann man dann relativ einfach den Eingangswiderstand von der Schaltung von Löststelle ... berechnen, bzw. sehen, das man da einen gewöhnlichen konstanten Eingangswidestand hat.
Bei der Schaltung wo der OP in die Sättigung geht, gilt dann nicht mehr das die Spannungen an beiden Eingängen gleich ist. Damit muss man den Eingangswiderstand für beide Polaritäten getrennt berechnen und bekommt auch was anderes heraus. In der Regel kann man annehmen das der Eingang hochohmig ist - das muss aber auch nicht für jede OP gelten. Mit so einem OP (z.B: OP07) geht die Schaltung dann gar nicht. Man hat also keinen konstanten Eingangswiderstand.
Code für die Softwarelösung hab ich in C, und auch noch eine Version in ASM für den wesentlichen Teil (AD Interruppt). Die ASM-Version sollte sich ggf. auch mit relativ wenig Änderungen in BASCOM als Inline ASM einbinden lassen.
hhhmmmmmmmm - mache ich da jetzt einen Denkfehler?
-Der Sensor gibt 2,5V bei 0A raus - d.h. wenn die Sinusspannung negativ wird, also unter 2,5V ist, kann ich softwaremäßig die Werte ingnorieren. Schon die Gleichrichtung gespart.
-Sinus 50Hz / 1 sec. = 20ms
-wenn ich z.b. 25 Messungen in 20ms mache wären das alle 800µs eine Messung.
-Nun kann man ganz einfach den absoluten Mittelwert ausrechnen.
So schwer ist die Softwarelösung wirklich nicht. Am einfachsten wohl noch die Nachbildung der Gleichrichtung in Software:
Beim AVR bekommt man mit frei laufendem ADC etwa alle 100 µS einen Wert. Die genaue Zeit hängt vom Takt und der Einstellung des Teilers ab. Danach richtet sich die Zahl der Samples für 20 ms, ggf. auch ein Vielfaches davon, wenn man so viel Zeit hat. Für 20 ms braucht man so rund 200 Werte.
Vom AD Wert wird die Lage des Nullpunktes (vermutlich irgendwo bei 500 - 520) abgezogen, und dann mit ABS(...) der Betrag gebildet. Die Werte werden dann aufsummiert, und am Ende noch geteilt. Auch in BASCOM sollte die Rechenzeit ausreichen um das Aufsummieren auch in der Zeit zwischen den Samples zu schaffen, wenn man mit ganzen Zahlen rechnet. Es reicht sogar aus um auch noch den Mittelwert noch einmal zu berechnen - für die nächste Messung.
Der eigentlich einzigen Nachteile der Softwarelösung sind die Rechenzeit während der Messung (da bleibt ggf. kaum was über) und der Code von vielleicht 500 Bytes für die Lösung mit dem Betrag. Dafür spart man sich die Gleichrichterschaltung und man kann eine höhere Auflösung (durch Oversampling) bekommen, durchaus im Bereich 12 Bit. Auch mit dem Gleichrichter sollte man für ein genaues Ergebnis ein vielfaches von 10 ms oder 20 ms mitteln - viel einfacher wird also auch da die Software nicht.
hallo
Wenn 2,5V 0A sind , und du willst ein Wechselstrom messen täte ich einfach viele messungen in eine for schleife machen und alle werte in ein variablen array speichern danach mit min und max funktion von Bascom die spitzenwerte raussuchen , danach der grösste wert - kleinster wert = Sptizenstrom , dann der adc wert auf die ampere skalieren und mit wurzel 2 Dividieren und dann hast du ein effektivwert , in der for schleife muss natürlich ein wait , oder du machst es in einen timer isr die messungen . in Bascom sollte ungefähr so aussehen
For A = 1 To Tastmessungen
W(a) = Getadc(0) 'analogwert lesen und in W array speichern
Next A
Max(w(1) , M1 , Idx) 'aus W array Maximum wert raussuchen und speichern
Maxi = M1 'Maximum wert in Variable maxi speichern
Min(w(1) , M1 , Idx) 'aus W array Minimum wert raussuchen und speichern
Mini = M1 'Minimum wert in Variable Mini speichern
Spitzenstrom = Maxi-Mini
jetzt deine variable skalieren und dann
Effektiv= Spitzenstrom /(2)*(1.41)