Ciao a tutti, sto realizzando un termometro con Arduino e una LM35... Vorrei fare che una volta superata una soglia di temperatura mi si accenda un LED... Il codice che utilizzo è questo:
int potPin = 0; //input read pin for LM35 is Analog Pin 0
float temperature = 0; //variable which will be calculated in process
int greenLED=07; //Pin10 = Green LED
long val=0; //variable to store the value coming from the sensor
void setup()
{
pinMode(greenLED, OUTPUT); //LED set to output
Serial.begin(9600);
Serial.println("LM35 Thermometer "); //Print "LM35 Thermometer" once at start
}
void loop () //loop below process
{
val = analogRead(potPin); //read the value of sensor
temperature = (5*val*100/1024); //convert voltage to temperature
Serial.println ((long)temperature); //print temperature value on serial screen
if (temperature >= 17) //Check if temp over x degrees C.
{
digitalWrite (greenLED, HIGH);
}
else
{
digitalWrite (greenLED, LOW);
}
delay(1000);
}
Quello che ho voluto fare con il codice è che superata la temperatura di 17°C mi si accenda il LED collegato al PIN 7... Il problema è il seguente: appena avviato il termometro la temperatura segnata è esata (intorno ai 15 gradi), poi riscaldando l' LM35 e portandola a 17 gradi il LED si accende; succede però una cosa strana: non appena il LED si accende la temperatura che mi viene segnata salta da 17 a 22°C e talora continua a salire fino a oltre 30°C... Quale può essere il problema?... Grazie mille a tutti...