Hey guys. I just completed project 3 and all wiring / code seems to be correct and functional.
However, when examining the serial port, I'm getting some weird temp readings.
Without applying heat, I am getting a consistent baseline temperature reading, but once heat is applied (by touching the sensor with a finger for 2-3 seconds) the readings climb almost immediately to temperatures in excess of 80 degrees celsius, logically causing all three LEDs to light up and messing up the experiment.
Is this a problem with the TMP36 itself or with my code or wiring? I'm attaching my serial port readings, and the code I'm using is here:
const int sensorPin = A0;
const float baselineTemp = 17.38;
void setup() {
Serial.begin(9600);
for(int pinNumber = 2; pinNumber<5; pinNumber++){
pinMode(pinNumber,OUTPUT);
digitalWrite(pinNumber, LOW);
}
}
void loop() {
int sensorVal = analogRead(sensorPin);
Serial.print("Sensor Value: ");
Serial.print(sensorVal);
// convert the ADC reading to voltage
float voltage = (sensorVal/1024.0)*5.0;
Serial.print(", Volts: ");
Serial.print(voltage);
Serial.print(", degrees C: ");
// convert the voltage to temperature in degrees
float temperature = (voltage - .5)*100;
Serial.println(temperature);
if(temperature<baselineTemp){
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}else if(temperature>=baselineTemp+2 && temperature<baselineTemp+4){
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}else if(temperature>=baselineTemp+4 && temperature<baselineTemp+6){
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}else if(temperature>+baselineTemp+6){
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
}
delay(1000);
}
thanks for any advice you can give me