Hallo zusammen,
ich wir mit einem Arudino Pro Mini unter anderem die Spannung am Akku
messen. Es ist ein 12V Bleiakku mit 7Ah. Der Arduino wird mit einem
Step-Down Wandler mit 5V versorgt.
Nun habe ich folgende Schaltung aufgebaut:
1
2
+ <- Akku
3
_|_
4
| |
5
| | R1 10K
6
|___|
7
|
8
o----> A2
9
_|_
10
| |
11
| | R2 4,7k
12
|___|
13
|
14
- <- Akku
Und folgenden Code:
1
intholeSpannug()
2
{
3
intmess=analogRead(0);
4
intspannung=map(mess,0,1024,0,1475);
5
returnspannung;
6
}
Leider bekomme ich aber immer eine Spannung, die um 0,5 V zu viel
angezeigt??!
Weiß jemand warum
Grüße
Maxxe89 schrieb:> Leider bekomme ich aber immer eine Spannung, die um 0,5 V zu viel> angezeigt??!
Wie kommst du darauf? Resp. wie sieht deine Referenzmessung aus?
Falls du nur mit rechnen auf den Wert gekommen bist.. wenn du
Widerstände mit 10% Toleranz hast, könnte das im Worst Case (9K und
5.17k) sogar hinkommen.
Hallo.
Danke für die Antwort.
Es sind 1% Toleranz-Widerstände, das war auch mein erster Gedanke.
Vergleichen tue ich mit einem Rodeo-Billig Multimeter und einem
Voltcraft VC170.
Hallo,
naja, wenn Du Schaltung und Programm genau so zusammenschusterst wie
Deine Sätze,
ist das Ergebnis ja wohl nicht erstaunlich!
Zur Sache:
kannst Du mal kurz erklären, was genau Du mit dem Ergebnis von
int spannung = map(mess, 0, 1024, 0 , 1475);
machst, um festzustellen, dass eine Spannung 0,5 V zu hoch ist? Ich sehe
weder eine Spannung noch eine Möglichkeit für ein Komma. Vielleicht bei
der Gelegenheit noch erklären, was überhaupt der Sinn dieser Zeile sein
soll?
vlg
Timm
Timm Reinisch schrieb:> kannst Du mal kurz erklären, was genau Du mit dem Ergebnis von>> int spannung = map(mess, 0, 1024, 0 , 1475);
Ich denke das kann ich aufklären.
map ist eine Funktion die eine lineare Transformation macht.
Der Bereich 0..1024 wird auf 0..1475 abgebildet.
> weder eine Spannung noch eine Möglichkeit für ein Komma.
Ich schätze mal das ganze ist Fixpunkt, wobei die 1475 einer Spannung
von 14.75V entspricht.
Wo die 14.75V allerdings herkommen ist mir auch nicht klar.
Wenn ich den Spannungsteiler ausgehend von 5V <==> 1024 zurückrechne,
dann sollten das eigentlich 15.63V sein und somit da eigentlich IMHO
1563 stehen.
Hallo
Dein Problem liegt da :
> int spannung = map(mess, 0, 1024, 0 , 1475);
Das musst so aussehen :
> int spannung = map(mess, 0, 1023, 0 , 1475);
Bei 1023 is schluß
Maxxe89 schrieb:> Leider bekomme ich aber immer eine Spannung, die um 0,5 V zu viel> angezeigt??!> Weiß jemand warum
was wird als Referenzspannung genommen, die interne ist jedenfalls nicht
besonders genau
Maxxe89 schrieb:> Leider bekomme ich aber immer eine Spannung, die um 0,5 V zu viel> angezeigt??!
Vielleicht ist dein Akku gar nicht so leer wie du denkst und liefert
tatsächlich 12.5V
Wolfgang A. schrieb:> Vielleicht ist dein Akku gar nicht so leer wie du denkst und liefert> tatsächlich 12.5V
Nach 2 1/2 Jahren ist der bestimmt leer....