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!
Wenn du über den USB den Arduino versorgst wird die Spannung nicht mehr geregelt. Also wird dein Netzteil schwanken.
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 ?
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..
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.
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!
Ohne Deine Schaltung zu kennen frage ich mal nach Abblockkondensatoren. Poste mal ein Bild oder die Schaltung.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.