Frage:
Übermäßig hohe Temperatur mit LM35
Lane George
2014-09-30 01:54:49 UTC
view on stackexchange narkive permalink

Ich bin wirklich neu in der Elektronik und experimentiere gerade mit einem Steckbrett.

Meine Frage hier bezieht sich auf den LM35-Temperatursensor und den Arduino-Mikrocontroller. Durch den Sensor von 448 Grad Celsius erhalte ich einen sehr hohen Messwert. Offensichtlich ist das weit weg. Die Umrechnungsformel, die ich verwende, lautet:

  Eingangsspannung = (5,0 * Eingangsspannung * 100,0) / 10224,0;  

Ich speise 5 V vom Sensor in den Sensor ein Arduino und ich erhalten an meinem Multimeter einen Spannungswert von 0,50 zwischen 5 V Eingang und Ausgang. Denken Sie, dass der Sensor möglicherweise defekt ist? Jede Hilfe zu diesem Problem wäre großartig!

BEARBEITEN: Einige Leute haben beim Arduino nach meinem Code gefragt, also hier:

  int tempPin = 0; void setup () {Serial.begin (9600);} void loop () {float temp = (5,0 * analogRead (tempPin) * 100,0) / 1024; Serial.print (temp, 1); Serial.println ("Grad C"); Verzögerung (1000); }  

enter image description here Dieses Schema zeigt die wirklich einfache Konfiguration, die ich habe.

enter image description here

Ich habe ein Bild meines Setups hinzugefügt Wenn jemand etwas erkennen kann, kann ich es nicht.

Klar, ich habe es jetzt hinzugefügt :)
Wie wäre es, wenn Sie den Vout von A0 trennen und sehen, wie hoch der Spannungswert von GND zu Vout ist.Wie lang sind die Drähte?
Ich erhalte einen Messwert von 4,15 V + - 1 von GND nach Vout, nachdem die Verbindung getrennt wurde.Die Drähte sind ungefähr 6 Zoll lang.
Können Sie das von Ihnen verwendete Programm (Skizze) veröffentlichen?
Können Sie uns auch sagen, was die Variable "Eingangsspannung" ist, bevor und nachdem ihr Wert in der von Ihnen geposteten Zeile zugewiesen wurde?
Sechs antworten:
Spehro Pefhany
2014-09-30 03:34:02 UTC
view on stackexchange narkive permalink

4,15 V von Vout nach GND mit kurzen Drähten und 5 V-Versorgung sind völlig falsch. Entweder haben Sie die falschen Verbindungen oder der LM35 ist Toast. Bitte überprüfen Sie die Verbindung im Vergleich zum Datenblatt.

Ich vermute nur aufgrund dieser bestimmten Spannungsanzeige, dass Sie möglicherweise die Verbindungen verwechselt haben.

Bearbeiten: Danke für das Foto. Wenn Sie das Teil von vorne (das Teil mit den Markierungen) von links nach rechts betrachten, lautet die Stiftreihenfolge:

enter image description here

Vs, Vout, GND = +5, Vout, GND

Auf Ihrem Foto sehe ich +5, Vout, GND, wie es sein sollte. Es werden also mehr als 10 mV / ° C bei Vout angezeigt, wenn das blaue Kabel vom Arduino getrennt ist (und 5 V / 0 V am orangefarbenen bzw. schwarzen Kabel). Ich würde sagen, es ist tot. Vielleicht wurde die Kraft für einen Moment umgekehrt?

Ich bin mir ziemlich sicher, dass an den Anschlüssen nichts falsch ist, daher bin ich zu dem Schluss gekommen, dass mit dem Sensor etwas nicht stimmt.Ich habe ein Foto meines Setups in meinen Beitrag aufgenommen, wenn Sie etwas erkennen können, was ich nicht kann.
Ja, ich bekomme einen Messwert von 80 mV, also gehe ich davon aus, dass er tot ist.Ich habe ein neues bestellt, also werde ich es erneut versuchen und mich bei Problemen melden.Danke nochmal für deine Hilfe!
80 mV?Was ist mit Ihrem 4,15-V-Messwert passiert?Sicher ist es kein LM34?
Woops, ich entschuldige mich dort ... 80 mV von Vs nach Vout 4,15 V Vout nach GND.Es ist definitiv ein LM35.
Asmyldof
2014-09-30 02:54:44 UTC
view on stackexchange narkive permalink

Sie sagen, Sie messen "0,5 V zwischen 5 V Eingang und Ausgang". Wenn Sie es genau so meinen, wie Sie es sagen: Es stimmt etwas nicht mit Ihrem Sensor oder Ihrem Setup, denn dann beträgt der Ausgang 4,5 V von der Erde, was 450 Grad Celsius entspricht, was in der Tat bedeuten würde, dass der Sensor sehr ist In der Nähe des Rauchens, unabhängig davon, dass es zu diesem Zeitpunkt überhaupt nicht mehr funktioniert.

Wenn Sie meinen, dass Sie am Ausgang relativ zum Boden 0,5 V messen, wären das etwa 50 Grad Celsius Dies ist möglich, wenn Sie kürzlich gelötet haben oder es absichtlich aufgeheizt haben.

Dann kommen wir zur Mathematik: Dies scheint mir akzeptabel, vorausgesetzt, Arduino misst im 10-Bit-Genauigkeitsmodus. Ich denke, das ist sicher anzunehmen. Ich kenne mich mit Arduino nicht aus, aber die Atmels im Inneren unterstützen den 8-Bit- und den 10-Bit-Modus. In Bezug auf 16-Bit-Int- und / oder Float-Probleme schiebe ich mich an jemanden, der mehr über die Arduino-Standards weiß.

Es ist programmatisch / semantisch ratsam, das Ergebnis nicht mit "Eingangsspannung" zu speichern, da dies nicht der Fall ist Eingangsspannung. Dies führt zu Verwirrung, wenn Sie diesen Test in etwas Ernsthafteres umwandeln und schließlich vergessen, ihn zu ändern, da er jetzt plötzlich vollständig in Ihre gesamte Codierung integriert ist.

Ich bezog mich tatsächlich auf die Messung zwischen 5 V und Ausgang.Ich habe meine Verbindungen doppelt und dreifach überprüft und sie auch mit einem variablen Widerstand ausprobiert, von dem ich genau den gewünschten Messwert erhalten habe.Ich lese nur die Raumtemperatur mit dem Sensor und bin daher zu dem Schluss gekommen, dass er fehlerhaft sein muss.Vielen Dank für die Tipps zu Variablennamen. Ich werde dies von nun an berücksichtigen.
@LaneGeorge Gern geschehen.Ich hoffe, Sie nehmen es als den freundlichen Rat, den es sein sollte. Wir alle gehen den kurzen Weg in unseren ersten Schritten in die Welt des Programmierens, aber frühes Lernen über die Risiken kann Ihnen in einem späteren Projekt stundenlange Verwirrung bringen.
Ricardo
2014-09-30 03:11:14 UTC
view on stackexchange narkive permalink

Ohne den von Ihnen verwendeten Code ist es schwer zu sagen, aber ich würde die Vermutung wagen, dass Sie möglicherweise eine Spannungsreferenz von 1,1 V (INTERN) anstelle von 5 V verwenden. Dies ist der Fall, wenn Sie irgendwo die folgende Zeile in Ihrem Code haben, bevor Sie den Temperaturwert annehmen:

  analogReference (INTERN);  

Können Sie überprüfen, ob das ist der Fall? Wenn dies der Fall ist, lautet der richtige Code zum Extrahieren der Temperatur von Ihrem Sensor:

  temp = (1.1 * analogRead (tempPin) * 100.0) / 1024;  

Dieser Unterschied würde Ihren Temperaturwert auf etwa 98 ° C bringen, was besser, aber immer noch etwas hoch ist (wenn Sie die Temperatur nicht in einem Topf mit kochendem Wasser messen).

Wenn Sie es sind Ich schlage vor, dass Sie die interne analoge Referenz von 1,1 V nicht verwenden. Fügen Sie Ihrem Code die Zeile analogReference (INTERNAL); hinzu (innerhalb der Funktion setup () ), verwenden Sie die oben angegebene Temperaturberechnung und prüfen Sie erneut, ob der Temperaturwert besser wird . Damit erhalten Sie normalerweise die beste Auflösung für die Temperaturmessung mit LM35 und dem ATmega328 (gängigster Arduino-Mikrocontroller) im Bereich von 0 bis 100 ° C.

Weitere Informationen finden Sie hier: Arduino Playground - LM35 mit höherer Auflösung.

Wie Sie dem gerade hinzugefügten Code entnehmen können, wollte ich ihn zunächst wirklich einfach halten, nur um zu versuchen, eine Lesung zu erhalten, mit der ich zufrieden war.Vielen Dank für die Tipps dort, ich werde dies in Zukunft berücksichtigen, aber die Verwendung der internen analogen Referenz von 1,1 V an dieser Stelle gibt mir immer noch einen absurd hohen Wert.Der Link war eine interessante Lektüre.
Kein Problem.Überprüft Ihr Bild und Ihre Verbindungen scheinen in Ordnung zu sein.Das Programm scheint auch in Ordnung zu sein.Vielleicht ist Ihr Sensor Toast.Ich werde Ihr Programm heute Abend auf meinem Arduino / LM35 ausprobieren, um zu sehen, ob noch etwas nicht stimmt.Ich werde die Float-Zuordnung und die Druckzeilen überprüfen und hier Bericht erstatten.
Probieren Sie Ihr Programm aus und es gibt hier 30,8 ° C an (das ist die richtige Umgebungstemperatur).
Prost für die Überprüfung.Ich habe einen neuen Sensor bestellt, damit ich es versuchen kann, wenn er ankommt.
Benedikt Koehler
2016-01-04 16:41:20 UTC
view on stackexchange narkive permalink

Ich hatte das gleiche Problem (in meinem Fall betrug der Messwert 446 Grad).

Ich habe es gelöst, indem ich die Drähte zwischen Strom und Masse geschaltet habe.

Chumdungle
2016-06-29 09:12:49 UTC
view on stackexchange narkive permalink

Es ist ein kalter Fall, aber ich hatte gerade ein ähnliches Problem.Ich habe es gelöst, indem ich den Temperatursensor über einen der Erdungsstifte neben den 5 V an meinem Arduino geerdet habe, anstatt den gnd-Stift neben Stift 13 zu verwenden.

Unsicher, warum das funktioniert hat, aber es hat funktioniert.Ich habe einen Schrittmotor und einige andere Komponenten, die auf derselben Platine laufen.

alex
2016-08-11 01:12:45 UTC
view on stackexchange narkive permalink

Vs und GND sind umgekehrt. Das Diagramm zeigt die Ansicht von unten an, sodass Sie Vs und GND von oben auf den LM35 drehen müssen.Ich habe den gleichen Fehler gemacht und ich denke, meiner ist jetzt tot.

Die Verbindung sieht für mich nicht umgekehrt aus.Schwarz ist GND, Orange ist Vs.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...