Hallo Leute,
Seit kurzen fliegt bei mir der LM35 um. In denn letzten zwei Wochen habe
daraus und ein 20x4 LCD + AtMega328P(16 Mhz) eine Wetterstation gebaut.
Die mit die aktuelle Temperatur anzeigt. Zur Platine selber. Es sind
zwischen Vcc und GND ein 100 NF Keramikkondensator und zwischen Avcc und
AGnd ein 100 NF Kondensator. Von AREF geht es mit ein 100 NF Kondensator
auf AGnd. Und halt 10 K Ohm auf Reset und was der ATMega halt alles so
braucht. Für denn Analog Digital Wandler, nutze ich die Referenzspannung
von Avcc mit externen Kondensator am ARef Pin. Der LM35 geht an denn
Analogen Eingang 3(PC3). Zwischen dem LM35 und denn Analogen Eingang
befindet sich ein ca. 80-85 ca. langes Kabel. Das unter mein Fenster
verläuft, das auch bei Nacht unter bleibt. Auch wenn das Fenster
geschlossen ist. Mit schwanken meine ich so ca. die Temperatur bei 16
Grad liegt. Dann geht der mal auf 9 Grad unter oder auch, schon mal auf
33 Grad hoch. Dann wieder auf 17 Grad hoch unter auf 16 Grad. Berechen
tute ich die Temperatur so:
1 | ADCSRA |= (1<<ADSC);
|
2 | while(ADCSRA & (1<<ADSC));
|
3 |
|
4 | float temp = ADC;
|
5 |
|
6 | float mV = (temp / 1023.0) * 5000;
|
7 | float cel = mV / 10.0;
|
8 |
|
9 |
|
10 | return cel;
|
Das Problem ist ja nicht die Berechnung an sich. Sondern das Temperatur
halt nur schwankt. Als ADC Prescaler nutze ich 1024. Wenn ich die
Temperatur des LM35 mit ein Infrarot Tempometer messe kommt dort 16,6
Grad raus. Auf dem Display wird ca. 15,9 bis 16,9 angezeigt. Also es
schwankt halt nur so blöd.
Könnt ihr mir sagen woran das liegen kann?
Mfg Felix.