LM35DZ zeigt statischen Wert auf den Analog Ports an

Hallo zusammen,

ich habe folgendes Problem:

Ich möchte die Dezimalwerte eines LM35DZ mit meinem Arduino Uno Rev. 3 auslesen. Leider zeigt mir mein Serial Monitor nur den Wert 849 an und bei erwärmen bzw. abkühlen des Sensors bleibt dieser statisch.

Angeschlossen ist der Sensor wie folgt: Sensor Arduino Vs 5V GND GND Vout A0

Der Sensor wurde auf Funktion geprüft (Werte mit Multimeter bei Temperaturänderung gemessen). Ebenso die Analog Inputs am Arduino (mit einem Poti[10 kOhm] geprüft). Beides Fehlerfrei.

Wer kann mir weiterhelfen?

Gruß

X1nux

Stimmt eigentlich alles. mach mal ein Foto wo man den Aufbau sieht. Grüße Uwe

Foto mache ich morgen. Nur viel sieht man leider nicht drauf, weil ich den Sensor mit drei 0,14 Litzen um~20cm verlängert habe, alle drei beinchen mit Schrumpfschlauch isoliert und nochmals alles im Schrumpfschlauch eingepackt. Wollte den Sensor in eine Box mit Lüfter packen.

Hier die Bilder:

Hier der Fritzing aufbau:

Wo bleibt der Sketch?

Hier ein Beispiel von http://vishalbhingare.wordpress.com/2013/09/23/arduino-temperature-sensor-lm35/

/*LM35 Thermometer

*
*LM35 simply connected to: 5+
* 0V
* Analog Pin 0
*/
String vartemperature;
String tagtemp;
int potPin = 0; //input read pin for LM35 is Analog Pin 0
float temperature = 0; //variable which will be calculated in process

void setup()
{
Serial.begin(9600);
Serial.println(“LM35 Thermometer “); //Print “LM35 Thermometer” once at start
tagtemp = “TP~”;
}

void printTenths( int value){
// prints a value of 123 as 12.3
Serial.print(value / 10);
Serial.print(“.”);
Serial.println( value % 10);
}

void loop ()
{
int span = 20;
int aRead = 0;
for (int i = 0; i < span; i++) { //loop to get average of 20 readings
aRead = aRead + analogRead(potPin);
}
aRead = aRead / span;

temperature = (5.220*aRead*1000/1024); //convert voltage to temperature

vartemperature = tagtemp + analogRead(potPin);
Serial.println (vartemperature);

Serial.print (“Analog in reading: “);
Serial.print (long(aRead)); //print temperature value on serial screen
Serial.print (” – Calculated Temp: “);
printTenths(long(temperature));

delay(1000);
}

Sorry vollkommen vergessen. :roll_eyes:

Sketch liefer ich nach wenn ich zuhause bin.

SO jetzt aber,

Ich habe gestern folgenden Code aus dem Internet genommen:

int LM35 = A0; float SensorValue = 0; float temperatur = 0; float temp[5];

void setup() { Serial.begin(9600); }

void loop() { SensorValue = analogRead(LM35); Serial.println(SensorValue); temp[1] = (analogRead(LM35) * 100.0 * 5) / 1024; delay(1000); // 1 Sekunde Pause zwischen den Messungen machen temp[2] = (analogRead(LM35) * 100.0 * 5) / 1024; delay(1000); temp[3] = (analogRead(LM35) * 100.0 * 5) / 1024; delay(1000); temp[4] = (analogRead(LM35) * 100.0 * 5) / 1024; delay(1000); temp[5] = (analogRead(LM35) * 100.0 *5) / 1024;

temperatur = (temp[1] + temp[2] + temp[3] + temp[4] + temp[5])/5; //Mittelwert aus 5 Messungen bilden Serial.print(SensorValue, DEC); Serial.print(" –> "); Serial.print(temperatur, 1); //Ausgabe der Temperatur mit einer Nachkommastelle Serial.println(" Grad Celsius"); Serial.println(); }

Heut nochmals mit dem Beispiel Sketch:

/* AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor. Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

This example code is in the public domain. */ int Sensor; // the setup routine runs once when you press reset:

void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); }

// the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); Sensor = (sensorValue * 100 * 5) / 1024; // print out the value you read Serial.println(Sensor); delay(1); // delay in between reads for stability }

getestet und siehe da es Funktioniert.

Gestern hat der Arduino nur statische Werte ausgegeben und jetzt funktioniert es, wieso auch immer :~

Dennoch vielen Dank für eure Unterstützung.

Gruß

x1nux