Go Down

Topic: Sensore temperatura e led (Read 179 times) previous topic - next topic

nandos

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);
    }
 

 
}

gpb01

#1
Jul 04, 2015, 04:53 pm Last Edit: Jul 04, 2015, 04:53 pm by gpb01
... 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'è ... ::)

Guglielmo

P.S.: normalmente basta la media di una decina di valori ... ;)
Search is Your friend ... or I am Your enemy !

Go Up