Pages: [1]   Go Down
Author Topic: Spannungsmessung bis 15V  (Read 2284 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich möchte eine Spannung von 0 bis 15V mit einem Analog Pin messen:

Spannungsteilerschaltung:

Quote
15V ----- 10kOhm ----- | ------ 4,7kOhm ----- GND
                                |
                                |
                          Arduino Pin A5

Mein Sketch:
Quote
const int analogInPin = A5;  
int sensorValue = 0;      
float volt;

void setup() {

  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(analogInPin);            
  volt = (sensorValue / 1023.0) * 15;
  Serial.println(sensorValue);      
  Serial.println(volt);
  delay(1500);                    
}

bei 15V (Digital Oszi gemessen) am Eingang misst der Uno einen Wert von 14,4 V (per Serial Out).

Wo liegt mein Fehler ?

« Last Edit: March 28, 2013, 02:52:59 pm by Arduinoianer » Logged

Germany
Offline Offline
Full Member
***
Karma: 3
Posts: 126
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

zum einen kommt bei dieser Schaltung rechnerisch 14,74V raus, Du müsstest den Widerstand von 4K7 durch eine Reihenschaltung aus 3K3 + 2K7 ersetzen, um ein Teilerverhältnis von exakt 1:3 zu bekommen.

Den zweiten Fehler handelst Du Dir dadurch ein, dass der ARDUINO als Referenzspannung die Versorgungsspannung benutzt, und die wird in den seltensten Fällen exakt 5,0V sein (bei meinemARDUINO sind es 4,85V).


Gruß

Martin
Logged

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset



zum einen kommt bei dieser Schaltung rechnerisch 14,74V raus, Du müsstest den Widerstand von 4K7 durch eine Reihenschaltung aus 3K3 + 2K7 ersetzen, um ein Teilerverhältnis von exakt 1:3 zu bekommen.

okay das habe ich nun so gemacht

Den zweiten Fehler handelst Du Dir dadurch ein, dass der ARDUINO als Referenzspannung die Versorgungsspannung benutzt, und die wird in den seltensten Fällen exakt 5,0V sein (bei meinemARDUINO sind es 4,85V).

Was kann ich dagegen tun ?
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 250
Posts: 21206
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://code.google.com/p/tinkerit/wiki/SecretVoltmeter

Es werden die 1,1V Referenz mit Referenz Versorgugnsspannung gemessen und daraus die 5V berechnet. Die 1,1 V können von Atmega zu ATmega leicht falsch sein. Die kannst Du aber messen indem Du auf interne 1,1V referenz schaltest und dann zwischen Aref und masse mißt. Mit dem gemessenen Wert kannst Du die Konstante in der Rechnung korigieren.

Grüße Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 83
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
bei mir kommen rechnerisch ca. 15,64 V raus, und wenn du die mit deinem Analogwert /1023 multiplizierst, müsste das Ergebnis etwa passen.
Logged

Offline Offline
God Member
*****
Karma: 10
Posts: 721
42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wieso durch 1023? 1024 - 0 ist auch ein wert.
Logged


Offline Offline
Jr. Member
**
Karma: 1
Posts: 83
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

der ADC hat 10 Bit (2^10=1024) wenn man bei 0 anfängt zu zählen, ist 1023 der 1024ste Wert.
Logged

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

muss das Thema nochmal ausgraben ... also folgende Ausgangssituation:

Quote
1V bis 15V ----- 10kOhm ----- | ------5 kOhm (Präzisionspoti) ----- GND
                                       |
                                      Arduino Pin A5

Formel:

Quote
void loop() {
  sensorValue = analogRead(analogInPin);            
  volt = (sensorValue / 1023.0) * 15;
  Serial.println(sensorValue);      
  Serial.println(volt);
  delay(1500);                    
}

Gemessen mit Multimeter und Digital Oszi:

Eingangsspannung Spannungsteiler: 12,18V
Ausgabe Arduino: 12,43V
Aref am Arduino: 5.00V

Wo liegt meine Fehler oder was muss ich an meiner Formel ändern?

Logged

Wien
Offline Offline
Edison Member
*
Karma: 26
Posts: 1836
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

könnte man das präzisionspoti nicht gleich als spannungsteiler verwenden und dort die abweichung korrigieren?

gruß stefan
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 83
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
dreh mal die Eingangsspannung solange hoch, bis sensorValue 1023 wird. Der Spannungswert, den du jetzt an deinem Multimeter abliest, ist der Multiplikator für dein Voltwert.

gruß
ardubu
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 250
Posts: 21206
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich glaube daß die 5,00V Versorgungspannung nicht genu 5,00V sind. Miß mal die Versorgungsspannung des Arduino nach.
Grüße Uwe
Logged

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

als ich hab 5V am Arduino .... durch einen externen Schaltregler.

Hab das Problem mit einer 10er Z-Diode gelöst anstelle des 10kOhms am Anfang.

Danke euch für eure mühen!
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 83
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

und was machst du, wenn du Spannungen < 10V messen willst?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

als ich hab 5V am Arduino .... durch einen externen Schaltregler.

Hab das Problem mit einer 10er Z-Diode gelöst anstelle des 10kOhms am Anfang.

Danke euch für eure mühen!

Kleiner Nachtrag, also eine Z-Diode hat eine Spannungskennlinie wo vom Z-Strom abhängig ist, also eine bischen unlineare Sache
und für Messzwecke eigentlich ungeeignet.

Nimm lieber den 10KOhm mit dem 4,7KOhm Widerstand zusammen und dann rechne mal ein bischen anderster.

 volt = (( 5.0 * 3,12765) / 1023.0) * sensorValue;

Damit rechnest du erst mal Volt/Digit aus und dann wird mit dem ADC Wert multipliziert und dann passt das auch bis Ue +15,63 Volt
Die 3,12765 ergeben sich aus  (10K + 4,7K) / 4,7K


 
Logged

Pages: [1]   Go Up
Jump to: