Ungenaue Werte bei Messung der Betriebsspannung Attiny85

OP #4730722
Hallo,

ich versuche mit die Betriebsspannung des Attiny85 zu messen und bekomme 
ziemlich starke Abweichungen, wenn ich mit dem Multimeter nachmesse.
Als erstes habe ich folgendes versucht:
1
void internespannung() {
2
  //Spannung Messen start  
3
  ADMUX |=  (1 << MUX3) | (1 << MUX2);  // input: bandgap; reference: Vcc
4
  delay(10);    //warten bis sich die Referenzspannung eingestellt hat
5
  ADCSRA |= (1 << ADEN);    //ADC aktivieren 
6
  delay(15);
7
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
8
  while (bitRead(ADCSRA, ADSC));
9
  adcw = ADC;
10
  //zweite Messung
11
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
12
  while (bitRead(ADCSRA, ADSC));
13
  adcw = ADC;
14
  
15
  ADCSRA &= ~(1 << ADEN);      //disable ADC (power reduction)
16
  vcc = 1.029 * 1024 / ADC * 1000;    //1.0 – 1.2 Abweichung 
17
  //Spannung Messen Ende
18
}
Da die interne Reverenz Spannung eine Abweichung von 1,0 bis 1,2 Volt 
haben kann habe ich diese auf die 1.029 Volt angepasst und hatte exakt 
dasselbe Ergebnis wie auf mein Multimeter: 3,80 Volt. Als ich die 
Spannung auf 5 Volt erhöht habe, habe ich eine Abweichung von 0,55 Volt 
also 5,55 Volt am Attiny85.
Mein 2. Versuch habe ich mit einem Spannungsteiler (10k Ohm und 1k Ohm) 
gestartet und die interne Referenz von 1.1 Volt wieder genutzt.
1
void teiler() {
2
  ADMUX |=  (1 << REFS1) | (1 << MUX1);  
3
  delay(10);  //warten bis sich die Referenzspannung eingestellt hat
4
  ADCSRA |= (1 << ADEN);        //ADC aktivieren 
5
  delay(15);
6
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
7
  while (bitRead(ADCSRA, ADSC));
8

9
  vcc = ADC * 1.05 / 1024 * 11;
10
}

Aber auch hier wieder die gleichen Probleme wie oben beschrieben. Die 
interne Spannung auf 1.05 Volt eingestellt um auf 3,80 Volt zu kommen 
wie bei meinem Multimeter. Jedoch bei 5 Volt wieder eine Abweichung von 
0,55 Volt.
Ich würde gerne ein Messbereich von 2,8 Volt bis 5,5 Volt abdecken und 
hier möglichst genaue Ergebnisse erzielen.
Ein Kondensator hat übrigens keine Verbesserung gebracht.
Und ADC lieferte bei beiden Versuchen die exakt gleichen Werte
Wie kann ich die Ergebnisse weiter verbessern?

Vielen Dank und Gruß
Torsten
#4731064
John schrieb:
> s gilt nur für eine konstante Versorgungsspannung von 5,5V bei
> konstanter Umgebungstemperatur von 25°C.
> Und diese Angaben sind auch nur "Richtlinien".

Ist zwar richtig, erklrät aber nicht die Abweichung von 0,5 V

Torsten W. schrieb:
> ich versuche mit die Betriebsspannung des Attiny85 zu messen und bekomme
> ziemlich starke Abweichungen, wenn ich mit dem Multimeter nachmesse.

Miss die Spannung auch mal mit dem Oszi nach. Hintergrund: Dein 
Multimeter bildet den RMS, der Atmega macht das nicht. Aus so etwas kann 
schnell mal eine Abweichung von 0.5 V entstehen. Das hab ich bei meinem 
Selbstbaulabornetzteil gesehen.
Du könntest auch eine Mittelwertbildung machen (also z.B. 10 mal messen 
und den Durchschnitt berechnen)
Gast #4731108
Also bei mir sieht es gut aus (die 1. Version, die 2. mit 
Spannungsteiler habe ich nicht probiert): auf 5.0 V eingestellt, ergibt 
sich bei Ucc= 3.3 V ein Wert von 3.28, bei 3.0 einer von 2.98; 
ATtiny85-20PU, Revision B von 1351, ein alter von 0739 verhält sich fast 
gleich. Es ist ein ganz simpler Steckbrettaufbau, Systemtakt 1 MHz.
Gast #4731162
In der Formel Ubg so angepasst, dass sich bei Ucc= 5.00 V eben auch ein 
Resultat von 5.00 ergibt; bei dem Exemplar von 1351 ist das z.B. 1.089 
V.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.