OnkelTobi
25.08.2006, 19:12
Hallo,
bei meinem jetztigen Projekt verwende ich einen AVR Tiny 26 um damit die Spannung eines Akkus zu messen.
Im Anhang befindet sich der Schaltplan/ Layout dazu...
Mein Problem ist folgendes.
Ich mache aller 1 Sekunde eine Messung, wobei ich jeweils über 5 Werte mittele.
Der gemessene Wert bleibt über einen kurzen Zeitraum stabil, wackelt also nicht.
Allerdings driftet der Wert über einen längeren Zeitraum unbestimmt umher.
Zeigt so nach ca. 10min einen Unterschied in den letzten 3 bit.
Meine erste Überlegung ist nun, dass ich über einen erheblich längeren Zeitraum den Mittelwert bilde. Das aber würde die Anzeige sehr träge machen.
Habe ich evtl einen Fehler im Schaltplan?
Im Datenblatt steht etwas von Noise Reduction. Ich nutze mehrere Ausgänge als PWM-Ausgänge - vielleicht könnte dies eine Ursache sein?
Hardwaremässig ist auf meiner Platine wenig Spielraum.
Aber vielleicht hat jemand von euch ne Idee :)
Vielleicht auch dazu: https://www.roboternetz.de/phpBB2/viewtopic.php?t=22675
Gruß Tobias
/edit
Vielleicht interessiert noch der Code wie ich den ADC initiere!?
ADMUX = (0<<REFS1)|(0<<REFS0)|ADC_MUX_CHANNEL|(1<<ADLAR);
/* AD-Wandler einschalten und Prescaler einstellen
Wandlertaktfrequenz einstellen
Sollte zwischen 50 und 200Khz liegen
1Mhz/200khz = 5
1Mhz/50kHz = 20
Prescaler also 16 (1 0 0)
*/
ADCSR = 1<<ADEN)|(0<<ADFR)|(1<<ADPS2)|(0<<ADPS1)|(0<<ADPS0);
ADC_DDR &= ~(1<<AKKU_VOLTAGE_PIN);
bei meinem jetztigen Projekt verwende ich einen AVR Tiny 26 um damit die Spannung eines Akkus zu messen.
Im Anhang befindet sich der Schaltplan/ Layout dazu...
Mein Problem ist folgendes.
Ich mache aller 1 Sekunde eine Messung, wobei ich jeweils über 5 Werte mittele.
Der gemessene Wert bleibt über einen kurzen Zeitraum stabil, wackelt also nicht.
Allerdings driftet der Wert über einen längeren Zeitraum unbestimmt umher.
Zeigt so nach ca. 10min einen Unterschied in den letzten 3 bit.
Meine erste Überlegung ist nun, dass ich über einen erheblich längeren Zeitraum den Mittelwert bilde. Das aber würde die Anzeige sehr träge machen.
Habe ich evtl einen Fehler im Schaltplan?
Im Datenblatt steht etwas von Noise Reduction. Ich nutze mehrere Ausgänge als PWM-Ausgänge - vielleicht könnte dies eine Ursache sein?
Hardwaremässig ist auf meiner Platine wenig Spielraum.
Aber vielleicht hat jemand von euch ne Idee :)
Vielleicht auch dazu: https://www.roboternetz.de/phpBB2/viewtopic.php?t=22675
Gruß Tobias
/edit
Vielleicht interessiert noch der Code wie ich den ADC initiere!?
ADMUX = (0<<REFS1)|(0<<REFS0)|ADC_MUX_CHANNEL|(1<<ADLAR);
/* AD-Wandler einschalten und Prescaler einstellen
Wandlertaktfrequenz einstellen
Sollte zwischen 50 und 200Khz liegen
1Mhz/200khz = 5
1Mhz/50kHz = 20
Prescaler also 16 (1 0 0)
*/
ADCSR = 1<<ADEN)|(0<<ADFR)|(1<<ADPS2)|(0<<ADPS1)|(0<<ADPS0);
ADC_DDR &= ~(1<<AKKU_VOLTAGE_PIN);