MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Einen Tiefpass am Ausgang hatte ich ja schon in Erwägung gezogen, um die Welligkeit zu entfernen. Vielleicht werde ich auch einen Integrator nehmen, muss ich mal gucken wenn ich die Schaltung am Wochenende Zeichnen werde.
Als OP hatte ich einen AD8604 angepeilt, weil das ein Rail to Rail Typ ist den ich auch zu hause habe.
Link: http://www.analog.com/static/importe..._8602_8604.pdf
Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
(Mark Twain)
Ohne negativer Versorgungsspannung kommst du sogar bei "rail-to-rail" OP's nie genau auf Null auf Ausgängen.![]()
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
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.
Geändert von PICture (10.02.2012 um 12:19 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
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
Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
(Mark Twain)
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.![]()
Geändert von PICture (10.02.2012 um 12:45 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
@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.
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)
Geändert von Carlos76 (12.02.2012 um 01:24 Uhr)
Hallo Carlos,
vielen Dank für deine Antwort, ich werde das mal ausprobieren sobald die ich Zeit dazu habe. Den Stromverlauf müsste ich eigentlich mit meinem Frequenzgenerator simulieren können.
Leider fehlt mir bei den Umgang mit Arrays immer noch der Durchblick, obwohl ich die grundsätzliche Funktion schon verstehe.
Wie muss ich denn in deinem Beispiel die Variablen deklarieren?
Dim A as Byte
Dim Tastmessungen as Byte
Tastmessungen =20 '20 Messungen sollen gemacht werden
dim W (20)as Single
Dim Maxi as Single
Dim Mini as single
Dim spitzenstrom as single
Dim Effektiv as Single ( wobei ich die Berechnung ja auf mehrere Zeilen aufteilen muss)
Als Wait würde sich dann ja ein Wert von ca. 1ms oder kleiner anbieten.
Das Programm an sich würde ich wohl in ein Unterprogramm verpacken was aus der Haupschleife heraus angesprochen wird, denn es sollen ja noch andere Sachen gemacht werden.
MFG
Neutro
Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
(Mark Twain)
Lesezeichen