In questo tutorial costruiamo un circuito in cui collegare un qualsiasi sensore al pin analogico 0, leggiamo 10 valori e ne calcoliamo la media.
Il codice da scrivere è il seguente:
#define NUMREADINGS 10 //10 valori da leggere
#define inputPin 0 //Sensore collegato al pin analogico 0
int readings[NUMREADINGS]; //Letture dal input analogico
int index = 0; //Indice della lettura corrente
int total = 0; //Totale letture
int average = 0; //Media
void setup()
{
Serial.begin(9600);
for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0; //Mette tutti 0 nell'array
}
void loop()
{
total -= readings[index]; //Sottrae l'ultima lettura
readings[index] = analogRead(inputPin); //Legge i valori provenienti dal sensore e li salva nell'array
total += readings[index]; //Aggiunge la lettura al totale
index = (index + 1); //Incrementa l'indice
if (index >= NUMREADINGS)
index = 0; //Alla fine dell'array resetta l'indice a 0
average = total / NUMREADINGS; //Calcola la media
Serial.println(average); //Stampa la media
}
Analisi codice:
1- i++; equivale a dire i: i = i + 1;
2- i–; equivale a dire i: i = i -1;
3- x += y; equivale a dire x = x + y;
4- x -= y; equivale a dire x = x – y;
5- x *= y; equivale a dire x = x * y;
6- x /= y; equivale a dire x = x / y;