Forum: Mikrocontroller und Digitale Elektronik Temperatur Sensor LM35 schwankt stark


von Felix N. (felix_n888)


Lesenswert?

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.

von Alex W. (a20q90)


Lesenswert?

Es sieht so aus als frägst du den ADC zu schnell ab. Du musst warten bis 
die Konvertierung abgeschlossen ist!

Es kann auch Einstreuungen sein, z.B. durch Telefon!

von Felix N. (felix_n888)


Lesenswert?

Alex W. schrieb:
> Es sieht so aus als frägst du den ADC zu schnell ab. Du musst warten bis
> die Konvertierung abgeschlossen ist!

Tute ich doch mit:
while(ADCSRA & (1<<ADSC));

von Jim M. (turboj)


Lesenswert?

Deine ca. 8 signifikanten Bits sehen bei VREF=VCC(5V) gar nicht so 
schlecht aus...

von Felix N. (felix_n888)


Lesenswert?

Jim M. schrieb:
> Deine ca. 8 signifikanten Bits sehen bei VREF=VCC(5V) gar nicht so
> schlecht aus...

Hi Jim!
Also soll ich mit einen 100 NF Kondensator von AREF auf Avcc(5V) gehen 
oder auf AGND(0V)?

von Mike A. (Gast)


Lesenswert?

Felix N. schrieb:
> float temp = ADC;
>
>    float mV = (temp / 1023.0) * 5000;
>    float cel = mV / 10.0;

Wofür braucht man float, wenn man maximal Temperaturen im Bereich 
-55..150°C mit einer Auflösung von bestenfalls 0.1°C und eine 
Genauigkeit von 0.5°C aufbereiten und darstellen möchte?

Da reicht ein 16 Bit Integer mehr als aus.

von Felix N. (felix_n888)


Lesenswert?

Mike A. schrieb:
> Da reicht ein 16 Bit Integer mehr als aus.

Dann fallen doch so weit ich mich richtig erinnere die Nachkomma stellen 
weg. Die ich aber gerne haben möchte.

von Jim M. (turboj)


Lesenswert?

Felix N. schrieb:
> Also soll ich mit einen 100 NF Kondensator von AREF auf Avcc(5V) gehen
> oder auf AGND(0V)?

Ich habe nix von Kondensatoren geschrieben. Der Wink mit dem Zaun sollte 
Dich eigentlich in Richtung der internen Bandgap Referenz bringen, die 
ist IMHO eine Größenordnung genauer als die 5Volt Versorgung.

Hmm, Kondensator auf der Meßleitung ist vielleicht keine ganz schlechte 
Idee.

von (prx) A. K. (prx)


Lesenswert?

Jim M. schrieb:
> ist IMHO eine Größenordnung genauer als die 5Volt Versorgung.

Sagen wir mal, sie ist stabiler.

von Teo D. (teoderix)


Lesenswert?

Man, dann steht da halt nich 23,54° drin, sonder 2354m°. O.so ä.
Das Komma in die Anzeige basteln, is auch kein Hexenwerk.

von Felix N. (felix_n888)


Lesenswert?

Jim M. schrieb:
> Hmm, Kondensator auf der Meßleitung ist vielleicht keine ganz schlechte
> Idee.

Also von der Meßleitung auf die Ground Leitung mit 100 nf kondi?

A. K. schrieb:
>> ist IMHO eine Größenordnung genauer als die 5Volt Versorgung.
>
> Sagen wir mal, sie ist stabiler.

Meinst du, also denn ARef direkt an die Avcc(5V)?

von Felix N. (felix_n888)


Lesenswert?

Hallo nochmal,
Ich habe nun noch eine Frage und zwar wenn ich ein Kondensator/Elko 
zwischen die Messleitung(Grün bei mir) und Masse anschließe. Wird die 
schwankt stark "eingeschränkt". Bei 100 NF Keramikkondensator schwankt 
sie zwischen sie maximal 1,5 Grad bei 4,7 uF Elko 1 Grad bei 10 uF Elko 
0,6 bis 0,9 Grad und bei 100 uF nur noch maximal 0,5 Grad. Was meint ihr 
soll ich lieber ein großen Elko(100 uF) nehmen oder doch her denn 100 nF 
bis 1 uF KermaikKondensator?

mfg Felix.

von Christian L. (cyan)


Lesenswert?

Felix N. schrieb:
> Was meint ihr
> soll ich lieber ein großen Elko(100 uF) nehmen oder doch her denn 100 nF
> bis 1 uF KermaikKondensator?

Gar nichts von beiden. Der LM35 ist nicht ausgelegt, um so hohe 
Kapazitäten direkt zu treiben. Laut Datenblatt von TI sind maximal 50pF 
ohne zusätzliche Maßnahmen erlaubt. Schau also ins Datenblatt anstatt so 
herum zu murksen.

P.S.: Du solltest dir vor dem Abschicken deiner Texte diese auch mal 
durchlesen. Vieles davon liest sich wirklich grauenhaft.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.