PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Demo Batteriespannung messen RNBFRA-Board



Freiheitspirat
22.04.2004, 11:04
Hallo Frank und natürlich auch alle anderen,

nachdem ich das Board jetzt komplett zusammengebaut habe und die meißten Tests super liefen, erstmal ein großes Danke für die Entwicklung und das Zusenden der Einzelteile.
Wobei bei Letzterem leider ein Teil fehlte:
Der 22K Wiederstand R34
Ist zwar in der Bestückungsliste, aber auch nicht in den Bestellisten der Doku mit aufgeführt !
Nachdem ich mir also für 49,99Euro einen Wiederstand von Conrad gekauft habe (inkl. Spritgeld, Parkgebühren und einiger Dinge, die ich sonst nicht gekauft hätte) und das Testprogramm 7 geladen habe, bekam ich falsche Werte.
Beim Verständnis des Programmes hatte ich noch das Problem wie der Faktor 4.31 zustande kommt, denn in dem Schaltbild der Doku ist R33 mit 5K angegeben. Nach diversen Messungen der Spannung und der Wiederstände fand ich dann die Lösung ca.5,1K und 22/5,1 = 4.31, aha !
Nur leider kommt das nicht mit den gemessenen Spannungen hin.
Versorgungsspannung: 13V
Spannung am ADC: 2.43V
Messwert: 509
Also 13/2.43 = 5.35 und nicht 4.31 !?
Auch 509 * 5 / 1023 = 2.49 und nicht 2.43
Nach einigem Forschen hatte ich denn auch die Eingebung das die Referenzspannung nicht 5V ist, sondern aus dem 7805 nur 4.96V geliefert werden, doch eine Differenz bleibt auch bei dieser Umrechnung noch.
Ich würde es gene einfach nur Verstehen...

P.S.
Ist das "flackern" des letzten Bits am ADC eigentlich normal ?
(hab ich auch bei diversen anderen Sensoren und verschiedensten Spannungen)
Würde ein kleiner Kondensator da was bringen, oder sollte man nur die oberen 8-9Bits benutzen ?

Frank
22.04.2004, 12:10
Was hast Du denn nun für eine tatsächliche Spannung und was wird gemessen? Geringe Tolleranzen sind da immer denkbar, du hast ja schon selbst gemerkt das ein 5V Spannungsregler nicht immer genau 5V bringt. Im Schaltbild findest Du den Spannungsteiler (R33/R34) der zum messen der Spannungen genutzt wird. je nachdem was du da für Widerstände eingesetzt hast, kannst Du Dir ausrechnen was für Spannung abfallen sollte (normal 22k und 5k). Diese muß dann nur noch per Fomel in das Verhältnis zur Referenzspannung gebracht werden. Normalerweise soltte das beim Demo schon recht genau stimmen. Wie sieht Vergleich zum Messgerät aus? Aber vergess nicht das du unter gleicher Belastung messen mußt.

Meinst DU mit fleckern das die letzten Stellen des Messergebnisses immer wechseln? Das ist mehr oder weniger normal, zumal auch die Stromentnahme ja je nach Rechenoperation und Motorregelung ständig wechselt, von daher ändert sich auch die Spannung immer um ein paar Millivolt.
Ich würde Ergebnis einfach per Software runden oder ein paar Stellen abschneiden. Gibt glaub auch entsprechende Formatieranweisungen in Bascom.
Sorry wegen dem fehlenden Widerstand!

Gruß Frank

Freiheitspirat
22.04.2004, 13:05
Was gemessen wird ? Das habe ich doch gerade beschrieben:
Versorgungsspannung: 13V
Spannung am ADC: 2.43V
Messwert: 509
Programmausgabe: 10,72 Volt
Alles "gleichzeitig" gemessen/ausgegeben...
Die Abweichung ist für mein Gefühl zu groß, als das sie auf ""Greinge Tolleranzen" bzw. die Abweichung in der 5V Spannung zurück zu führen ist, oder ?

Frank
22.04.2004, 13:38
Hi Pirat ;-),

ich meine bist Du sicher das die Versorgungsspannung genau 13V unter Belastung ist? Hast du das an den Boardanschlüssen unter den gleichen Belastungsbedingungen nachgemessen?
Wenn Du das bestätigst kann ich es ja nochmal genau vorrechnen. Dann sehen wir ob es Toleranzfehler der Widerstände ist. Den könnte man dann natürlich leicht durch geänderte Formel korrigieren

Gruß frank

PS. Mit Messen meine ich "mit einem Meßgerät"

Freiheitspirat
22.04.2004, 14:40
Hallo Frank,

ja, die Versorgungsspannung ist genau 13,01 Volt gemessen mit einem Messgerät an den Eingangsschrauben der Stromversorgung des eingeschalteten Boards (ohne weitere Verbraucher z.B. Motor).
In dem Augenblick des Ablesens vom Messgerät habe ich auch die Werte des Terminalprogrammes meines Computers abgelesen. (Ich habe den Messwert 509 zusätzlich zum Voltwert im Programm ausgeben lassen).
Den Messwert ADC habe ich direkt an dem 22K Widerstand abgenommen.
Den Messwert 4.96V habe ich an irgend einem 5V-Pin abgenommen (glaube JP5).
Die Abweichungen der Widerstände vom Sollwert sind nur marginal (21,96K bzw. 5,08K).

Bin gespannt auf Deine Rechnung...

Frank
22.04.2004, 19:20
Also hier nun mal die Berechnung mit den üblichen vorgegebenen Widerstandswerten:

Der Spannungsteiler besteht aus 22k und 5,1 KOhm
Bei einer Spannung von 13V berechnet sich der Strom durch den Spannungsteiler wie folgt:
I=u/r also I=13/(22000+5100)=0,0004797 A
Da wir nun den Strom kennen, können wir genau ausrechnen was an dem zweiten Widerstand (5,1k) abfällt und an den Controller geleitet wird:
U=i*r also u=0,0004797 A * 5100 = 2,4465 V

Somit stimmt das schon mal alles, denn Du hast ja 2.43V gemessen (diese ca. 0,1V sind Rundungsfehler und druch Tolleranzen begründet)

Also weiter:

Wir wollen ja die gesamtspannung messen, somit müssen wir erst mal ausrechnen welchet Teil der Gesamtspannung an den 5,1K überhaupt abfällt:

Teil=27000 / 5100 = 5,2941
Also die Gesamtspannung ist immer 5,2941 mal so groß wie die gemessene Teilspannung. Sie errechnet sich dann so:

Gesamtspannung=5,2941 * 2,4465 V =12,95V

Da der ADC natürlich die Teilspannung nicht direktzurückgibt, sondern nur den Bruchteil im Verhältnis zu einer festen 5V Referenzspannung, wird der Wert w noch mal REf genommen. Ref errechnet sich immer aus 5 / 1023 =0,0048876
Wie Du sagst wird bei DIr die 509 ermittelt.
Also die gemessene Spannung errechnet sich dann so
V= 509 * rev = 509 * 0,0048876 = 2,4878
Na das klingt doch gut, das haben wir doch oben auch so in etwa errechnet.
Also Gesamtspannung ist dann:
Gesamtspannung=5,2941 * 2,4878 V =13,17V

Du siehst es ist alles korrekt. Aber warum ist dann bei Dir das Ergebnis falsch? Ganz einfach, weil ich mich im Demo verrechnet hab :-) Ich hatte in der schnelle den falschen Teilfaktor berechnet.

Die 4,31 muß natürlich durch die eben errechnete 5,2941 ersetzt werden. Sorry, aber irren ist halt menschlich.

Nu sollten alle Unklarheiten beseitigt sein. Ich Trenne den Thread mal auf, damit das korrigierte Demo besser gefunden wird

Hier das korrigierte Demo:



Const Ref = 5 / 1023

Dim I As Byte
Dim W As Word
Dim Volt As Single



Config Adc = Single , Prescaler = Auto


$baud = 9600
$crystal = 8000000 'Quarzfrequenz
Portd.6 = 0 'Schrittmotoren erst mal ausschalten


Start Adc
Do
W = Getadc(4)
Volt = W * Ref
Volt = Volt * 5.2941
Print "Spannung: " ; Volt

Waitms 200
Loop

End

Gruß Frank

Freiheitspirat
23.04.2004, 10:27
Ah, die Formel für den Spannungsteiler ist also:

Vout = Vin * R2 / (R1+R2)

statt

Vout = Vin * R1 / R2

und den Rest verbuchen wir unter Tolleranz.

Danke für die Klärung...

Ulf

Frank
23.04.2004, 10:35
Nicht ganz, aber so ähnlich ;-)

Genauer so:
vout= vin * ((R33+R34)/R33)

Ich hatte vergessen R33+R34 zu addieren und nur durch R34 geteilt.
Ebenfalls danke für den Hinweis.

Gruß Frank

Freiheitspirat
23.04.2004, 11:41
Waaaaaaaaaaaaaaaas ?
Ich glaube jetzt bist Du ein bisschen durch den Wind.
Also nochmal ganz langsam:

R1 = R34 = 22K
R2 = R33 = 5,1K

also



Vout = Vin * R2 / (R1+R2)

Vout = 13V * 5,1K / (22K+5,1K) = 2,45 :!:

und nicht



vout= vin * ((R33+R34)/R33)

Vout = 13V * ((5,1K+22K) /5,1K) = 69,08 [-X

Einverstanden ?

Ulf

Frank
23.04.2004, 12:04
Hi,
grins - nein bin nicht durch den Wind, wir reden nur etwas aneinander vorbei. Ich wußte nicht was du mit Vout und Vin meinst.

Bei meiner Formel

vout= vin * ((R33+R34)/R33)

war vin die Spannung die am ADC des Mega anliegt. Ich dachte du wolltest daraus die volle Spannung berechnen (denn darin steckte ja der Fehler).

also

vout= 2,45 * ((5100+22000)/5100) = 13,01 V

Wir müssen uns nur einigen was wir berechnen wollen ;-)
Aber denke nu sind alle Unklarheiten beseitigt

Freiheitspirat
23.04.2004, 13:05
Ah, Deine Formel ist ein Spannungsteilerrückwärtsrechner #-o
genial....