Archive for the ‘Avarage’ Category

Avarage

venerdì, aprile 1st, 2011

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;