Esercizio: Temperatura media (blocking mode)
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");
}
Last modified: Wednesday, 31 March 2021, 4:55 PM