Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung springt unter Last (ATMega/Arduino)


von Phillip (Gast)


Lesenswert?

Ich verwende einen LM35 an einem analogen Eingang eines Arduino, um die 
Temperatur in einem Zimmer zu messen. Als Referenz verwende ich die 
internen 1.1V des ATMega. Außerdem schalte ich mit einem digitalen 
Ausgang über einen Transistor einen PC817 Optokoppler, der wie der LM35 
über den 5V Ausgang des Chips gespeist wird. Natürlich mit den passenden 
Vorwiderständen.

Wenn ich den Schalter zu- oder abschalte, springt die vom Arduino 
gemessene Temperatur um bis zu 1°C. Das möchte ich gerne vermeiden.

Mit dem Multimeter habe ich gemessen, dass die Spannung über dem 
Temperatursensor beim zuschalten des Optokopplers von 5.13V auf 4.89V 
abfällt. Die Spannung am Ausgang des Temperatursensors bleibt dabei 
konstant. Wenn der Schalter geschlossen ist fließen durch den Transistor 
hinter dem Optokoppler insgesamt 21mA. Externe Spannungsversorgung ist 
ein USB-Netzteil.

Da ich nicht viel Erfahrung habe, würde ich gerne wissen, ob ich mit den 
folgenden Überlegungen richtig liege:

* Die Messungenauigkeit kommt davon, dass die interne Referenzspannung
  des Chips ebenfalls um ca. 5% springt
* Die Stromversorgung ist nicht zu schwach -- der Spannungseinbruch
  kommt schlicht durch die Toleranz in der Spezifikation des 5V
  Ausgangs des ATMega
* Die sinnvollste Lösung ist, eine zuverlässigere Referenzspannung zu
  erzeugen. Das geht am einfachsten mit Z-Diode + Widerstand.

..und falls nicht bin ich natürlich an Details zu meinem Denkfehler und 
einer richtigen Lösung interessiert ;-) Vielen Dank!

von Hubert G. (hubertg)


Lesenswert?

Wenn du über den USB den Arduino versorgst wird die Spannung nicht mehr 
geregelt. Also wird dein Netzteil schwanken.

von MaWin (Gast)


Lesenswert?

Phillip schrieb:
> * Die Messungenauigkeit kommt davon, dass die interne Referenzspannung
>   des Chips ebenfalls um ca. 5% springt

Nein. Die sollte auf 0.1% genau bleiben.

> * Die Stromversorgung ist nicht zu schwach -- der Spannungseinbruch
>   kommt schlicht durch die Toleranz in der Spezifikation des 5V
>   Ausgangs des ATMega

Richtig, die Abweichung ist in Ordnung, ABER: Ist es wirklich ein 
Spannungseinbruch, oder ist es eine Störung ? Schlecht gefilterte 
Störungen wirken sich nämlich aus - vor allem auf die Ausgangsspannug 
des LM35. Alles, was sich in der Versorgung schneller als mit 100kHz 
ändert, reicht der LM35 direkt an den Ausgang weiter. Miss also erst mal 
dessen Ausgangsspannnung, DC und AC.

> * Die sinnvollste Lösung ist, eine zuverlässigere Referenzspannung zu
>   erzeugen. Das geht am einfachsten mit Z-Diode + Widerstand.

Nein, eine Z-Diode ist erheblich schlechter als die interne Refenez des 
ATmega.

Aber beschaltet der ATmega die Refezn (AREF) des ATmega korrekt ?

von Phillip (Gast)


Lesenswert?

Hubert G. schrieb:
> Wenn du über den USB den Arduino versorgst wird die Spannung nicht
> mehr geregelt. Also wird dein Netzteil schwanken.

Das hatte ich völlig übersehen, danke! Zwar bin ich lasttechnisch weit 
weg von dem, wo die Grenzen des Netzteils liegen, aber USB lässt ja 
ebenfalls Schwankungen der Spannung zu. Leider ist das einzige passende 
Netzteil, das ich habe, anscheinend trotz anderslautenden Aufdrucks zu 
schwach, aber das werde ich mal weiterverfolgen..

MaWin schrieb:
> Richtig, die Abweichung ist in Ordnung, ABER: Ist es wirklich ein
> Spannungseinbruch, oder ist es eine Störung ? Schlecht gefilterte
> Störungen wirken sich nämlich aus - vor allem auf die Ausgangsspannug
> des LM35. Alles, was sich in der Versorgung schneller als mit 100kHz
> ändert, reicht der LM35 direkt an den Ausgang weiter. Miss also erst mal
> dessen Ausgangsspannnung, DC und AC.

Ebenfalls ein spannender Hinweis. Für eine AC-Messung fehlt mir das 
Equipment, aber ich habe einfach mal hinter dem Ausgang einen Tiefpass 
(16Hz) nachgeschaltet. An dem beobachteten Effekt ändert sich nichts, 
womit ich diese Erklärung ausschließen kann, richtig?

MaWin schrieb:
> Aber beschaltet der ATmega die Refezn (AREF) des ATmega korrekt ?

Wie gesagt ist das ein Arduino, ich habe da gar nichts selbst 
beschaltet. Ich gehe von daher mal davon aus..

von Peter D. (peda)


Lesenswert?

Phillip schrieb:
> dass die Spannung über dem
> Temperatursensor beim zuschalten des Optokopplers von 5.13V auf 4.89V
> abfällt.

240mV bei 21mA Stromänderung, das sind ja >11 Ohm Innenwiderstand, da 
stimmt was nicht.
Die USB-Kabel sind ja recht dünn, aber >1 Ohm sollten sie nicht haben.

von Phillip (Gast)


Lesenswert?

Inzwischen hatte ich Gelegenheit, das ganze mit einem 9V-Netzteil 
auszuprobieren. Damit tritt das Problem genauso wie im 1. Post 
beschrieben ebenfalls auf. Insofern nehmen sich die Regler in meinem 
USB-Netzteil und auf dem Arduino anscheinend nichts. Als praktische 
Lösung habe ich den LM35 jetzt schlicht durch einen digitalen Sensor 
ersetzt (DS18B20). Klappt auf den ersten Blick einwandfrei, ich sehe 
keine Sprünge mehr.

Mich interessiert allerdings immer noch, woran es denn letztlich liegt, 
dass die LM35-Messung dermaßen sensibel auf Laständerungen reagieren. 
Ich werde bei Gelegenheit mal messen, ob die interne Spannungsreferenz 
tatsächlich nicht um mehr als .1% schwankt, denn das wäre meiner Meinung 
nach derzeit die naheliegenste Ursache.

Falls jemand hier vorbei schaut, der zufällig weiß, was schief gegangen 
ist, würde ich mich über eine Erklärung freuen. Ansonsten experimentiere 
ich selbst weiter, ist ja jetzt nicht mehr so akut. Vielen Dank für die 
Hilfe bis hier!

von Pete K. (pete77)


Lesenswert?

Ohne Deine Schaltung zu kennen frage ich mal nach Abblockkondensatoren.

Poste mal ein Bild oder die Schaltung.

von F. F. (foldi)


Lesenswert?

Ich weiß ja nicht woher dein Arduino kommt, aber bei einigen aus good 
old China soll es gerade in diesem Bereich schon zu erheblichen 
Abweichungen und damit verbundenen Fehlern gekommen sein.

von Phillip (Gast)


Lesenswert?

Zu Dokumentationszwecken, falls jemand anderes mit einem ähnlichen 
Problem auf diesen Thread stößt:

V_ref liegt tatsächlich teils deutlich unter den versprochenen 1.1V, 
bzw. schwankt. Ich habe versuchsweise stattdessen eine externe Referenz 
verwendet (einen LT1004CZ) und seitdem klappt auch die Messung mit dem 
LM35.

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.