Si consideri il circuto precedente.

Si desidera effettuare 10 misurazioni di temperatura distanziate di 1 secondo e visualizzarne la media.

Soluzione:

#define NMAX 10
#define sensor_pin A0

int valoreADC;
float Tmisurata;
float Tmedia;
float vettoreMisure[NMAX];

int i;

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

void loop (){
    // acquisizione di 10 valori di temperatura
    for (i=0; i<NMAX; i++){
      valoreADC = analogRead(sensor_pin); //lettura valore ADC
      vettoreMisure[i] = 500.0/1024.0*float(valoreADC);     
      delay(1000);
    }

    // calcolo media    
    Tmedia = 0;
    for (i=0; i<NMAX; i++){
      Tmedia = Tmedia + vettoreMisure[i];   
    }    
Tmedia = Tmedia / NMAX;

    // stampo la temperatura sul serial monitor
    Serial.print("Temperatura media misurata: ");
    Serial.print(Tmedia);
    Serial.println(" gradi C");   

}
Ultime modifiche: mercoledì, 31 marzo 2021, 16:55