PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Messverstärker IC für Strommessung?



ssalbach
02.07.2006, 12:56
Kennt jemand ein geieignetes IC?
Der Shunt der verbaut ist bringt 0,33 mv pro A
Bis 130A müsste ich messen können.

uwegw
02.07.2006, 13:44
Welche Spannung soll denn bei Maximalstrom herauskommen? Wie genau muss das ganze sein?

askazo
02.07.2006, 13:56
Für Ströme in der Größenordnung ist die CMS-Reihe von Sensitec (http://www.sensitec.de/downloads/assets/db_cms2000final_de.pdf) sehr zu empfehlen, wenn die 130A nicht dauerhaft fließen. Dann brauchst Du auch keinen Shunt mehr.

Ansonsten nimmst Du einfach einen Instrumentenverstärker mit vorgeschaltetem Spannungsteiler.

askazo

shaun
02.07.2006, 14:22
Wozu den Spannungsteiler? Wenn es möglich wäre, den Verstärker ohne Masseunterschied direkt an den Shunt zu setzen, bräuchte man auch keinen Instrumentenverstärker, ergo keinen Gedanken an identische Widerstände zur optimalen Gleichtaktunterdrückung zu verschwenden. Sol, nur Gleichstrom gemessen werden? Dann reicht unter der o.g. Annahme ein OP mit geringer Eingangsoffsetspannung, ein OP07 hat schlimmstenfalls 75mV, also ungefähr +/-0,25A Fehler, wenn das zuviel ist, musst Du entweder den Offset kompensieren oder einen besseren OP suchen (OP27 ist IMHO noch etwas besser, aber das darfst Du selbst rausfinden). Als Instrumentenverstärker, also wenn doch etwas Massepotenzialdifferenz vorhanden, könntest Du u.a. einen INA116 nehmen, den habe ich gerade verbaut, aber es gibt natürlich auch noch hunderte andere. Allerdings muss auch dann die Masse des Shunts in der Nähe der Verstärkermasse liegen, wenn es zuviel wird, wird der vorgenannte Spannungsteiler pro Eingang fällig, allerdings vestärkst Du den Fehler dann mit dem Teilungsverhältnis des Spannungsteilers :(

Manf
02.07.2006, 14:28
Wenn Du bei der Messung mit dem Shunt bleibst, dann wäre es ja gut, einen OPV mir kleinem Offset über Temperatur und Zeit zu wählen.
Hierfür ist der OP07 eine preiswerte Lösung.
Manfred

http://www.analog.com/en/prod/0,,759_786_OP07,00.html

ssalbach
02.07.2006, 14:53
Also die Ausgangsspannung soll 5Volt betragen, soll zu einem µc
Wie errechn ich den hier am eingachsten eine Art amperestundenzähler oder Einheitenzähler??
Damit ich die gleiche energie zurück führen kann, die ich entnommen habe (ohne faktor)
Wollte dau an einem ADC dien Verbrauch und an dem anderen ADC den zugeführten Strom messen.
Wie formuliere ich den sowas am besten in einer Rechnung.
Nehme hierfür einen Mega8
Brauche ich hierfür unbedingt ein Zeit IC? Mir kommt es nicht unbedingt darauf an den Wert in Ah angezeigt zu bekommen, nur verwertbare zahlen, damit zugeführte und abgegeben Leisung gesehen werden kann

shaun
02.07.2006, 15:36
Häh? Einige Wörter aus Deinem Posting stehen nicht in meinem Duden, hast Du mal ein Update für mich? Wenn Du 0,33mV pro A und max 130A hast, sind das irgendwas bei 440mV, entschuldige bitte die Überschlagsrechung. Nimm einen Verstärker mal 10 und Du bist bei 4,4V, das gibst Du auf Deinen ADU und gut. Die Amperestunden bekommst Du wie der Name sagt, indem Du zB jede Sekunden misst, aufaddierst und die Summe der jeweils letzten 3600 Messwerte durch 3600 teilst. Ein RTC-IC brauchst Du nicht zwingend, wenn der Wert nur ein Richtwert sein soll und Du sowieso beide miteinander zu vergleichenden Größen (so wars doch gemeint, oder?) mit ein und demselben AVR misst reicht der Quarztakt locker.

ssalbach
25.02.2007, 17:33
Hi,
Da ich mich immer viel zu selten mit der Programmierung beschäftige, hänge ich mal wieder am gleichem Problem.
Wie bringe Ah (Amperestundenzähler) in die richtige Form?


Procedure OnSysTick (SaveAllRegs);
Begin
a:=GetADC(1);
b:=GetADC(2);
c:=GetADC(3);
d:=GetADC(4);
a:=muldivint (a,150,1023);
Ah1:=a;
Ah1:=Ah1 * muldivint (Ah1,1,100);
AH1:=Ah1 * muldivint (Ah1,1,3600);
Ah2:=Ah1 * Ah1;
end;

Procedure Ah;
Begin


end;
begin

EnableInts;
DDRB:=%00000000;
DDRC:=%00000000;
DDRD:=%11111111;
n:=0;
Ah1:=0;
loop

Ah;
LCDUpper;
LcdClr;
LCDXY(0,0);
write (LCDout, IntToStr(a));
LCDXY(0,1);
write (LCDout, IntToStr(Ah1));
LCDLower;
LcdClr;
LCDXY(0,2);
write (LCDout, IntToStr(c));
LCDXY(0,3);
write (LCDout, IntToStr(d));

endloop;
end ADC_Test.


Mit dieser Erklärung komme ich nicht weiter...
Die 10ms kann der systick sein, kann aber auch ein timer interrupt sein. Dazu siehe auch : [www.ibrtses.com]

Nein, eine Variable, die die Stromeinheiten als (1/1024)*(1/100)*(1/3600) Amperestunden zaehlt. Jede 10ms den ADC wert addieren, fertig. Amperestunden, resp. Ladung ist nur eine einzelne Zahl.

Falls erwuenscht kann man natuerlich auch vorher schon teilen damit der Teiler nicht ueberlaeuft. Theoretisch braucht man nicht zu teilen, wenn keine Anzeige da ist, spielt es keine Rolle in welcher Einheit man zaehlt.

Yossarian
25.02.2007, 20:13
Hallo

sind das irgendwas bei 440mV
...um eine Kommastelle verrutscht.

Mit freundlichen Grüßen
Benno