Archivi tag: math

Media Aritmetica

Con il metodo della media possiamo avere da un sensore poco preciso, delle letture migliori, ma richiede più tempo del previsto.

Ipotizziamo di voler leggere, con arduino, da un sensore ultrasuoni dei valori analogici, il modo più semplice è scrivere nel loop:

sensore = analogRead ( Ax)

Ax = pin analogico

Così facendo abbiamo una lettura immediata, ma se il nostro sensore ci da misure sballate come possiamo fare?

Qui entra in gioco la media delle letture, per realizzarla dovremmo semplicemente fare le seguenti cose:

byte misurazione[30]={};  create un Array nel quale metterete le letture che effettua il sensore( il numero compreso tra le parentesi quadre rappresenta il numero di letture della media).

int media,somma = 0;

byte contatore = 0;

– CALCOLO MEDIA

  1. void loop(void)
  2. {
  3. somma=0;
  4. media = 0
  5. for(c=0;c<=29;c++)//legge per 30 volte il sensore ad ultrasuoni
  6. {
  7. misurazione[c]=analogRead(A0);//leggo il valore dal piedino analogico A0
  8. somma=somma+misurazione[c];
  9. delay(1);
  10. }
  11. media = somma/30;
  12. Serial.println(sensore);
  13. delay(100);
  14. }

Per calcolare la media utilizziamo un ciclo for nel quale leggiamo per 30 volte il sensore e scriviamo per altre 30 volte il valore letto all’interno dell’array, una volta fatto ciò la media sarà uguale alla somma dei 30 valori diviso 30.