Sensore temperatura e led

Salve non capisco dove sbaglio nel codice… Voglio che il led si accendi una volta arrivato a 29 gradi ma non accade… Di seguito vi posto il codice.

int val_Adc = 0;
float temp = 0;
float allarme = 29;
void setup()
{
//init seriale
Serial.begin(9600);
pinMode(13, OUTPUT);

analogReference(EXTERNAL);
}

void loop()
{

delay(500);

val_Adc = 0;

for(byte Ciclo = 0; Ciclo<100; Ciclo++)
{

val_Adc += analogRead(0);

delay(10);
}

val_Adc /= 100;

temp = ((val_Adc * 0.0032) - 0.5) / 0.01;

//invio i dati al computer
Serial.println(temp);

if(allarme<temp) {
digitalWrite(13, HIGH);
}

}

… primo, come da regolamento, punto 7, il codice DEVE essere racchiuso tra i tag CODE (… primo bottone a sinistra fatto così : </>), quindi … edita il tuo post e correggilo.

Poi … ma il Serial.print(temp); ti indica la temperatura esatta ? Perché analogRead() ritorna un valore che va da 0 a 1023, tu lo sommi 100 volte … la probabilità di avere un overflow (val_Adc è un int da 2 bytes) c’è … ::slight_smile:

Guglielmo

P.S.: normalmente basta la media di una decina di valori … :wink: