Pages: [1]   Go Down
Author Topic: moyenner ( lisser) une valeur analogique  (Read 2396 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ca y est, j ai recu mon Arduino !
Je m en sors a peu pres.
J ai une cellule IR en guise de capteur analogique.
Mais, j ai un probleme de traitement d info.
j aurais besoin de lisser les donnees (valeur moyenne sur plusieurs lectures)
un peu a l image de l exemple interpolate
http://processing.org/learning/examples/interpolate.html

mais avec ma variable (source analogique) et pas la souris.

J ai egalement trouve ceci:
http://www.tigoe.net/pcomp/code/archives/arduino/000710.shtml
...mais pour wiring, ...je ne comprend pas tout, je ne me sens pas capable de l adapter pour processing.
merci de votre aide, joyeuses fetes.
eric
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 198
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut

En gros tu veux la distance moyenne que te donne la cellule IR si j'ai bien compris. Je sais pas si c'est le mieux et si c'est ce que tu veux, mais faire 5 lectures toute les 200ms par exemple puis faire la moyenne des 5 est t'as la distance moyenne de l'objet ...  

a+  smiley
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Salut

En gros tu veux la distance moyenne que te donne la cellule IR si j'ai bien compris. Je sais pas si c'est le mieux et si c'est ce que tu veux, mais faire 5 lectures toute les 200ms par exemple puis faire la moyenne des 5 est t'as la distance moyenne de l'objet ...  

a+  smiley
c est bien cela.
N etant pas encore trop baleze en programmation, je vois pas trop comment executer cela...
T aurais une piste ?
merci d avance.

Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 198
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour simplifier le programme, tu peux faire une fonction comme ça tu peux l'appeler à tout moments:

Code:

int pinIR = 2;

int eval1;
int eval2;
int eval3;
int eval4;
int eval5;
int evalMoy;

void setup(void) {
  pinMode(pinIR, INPUT);
}

void evalDistance() {
    
    eval1 = analogRead(pinIR);
    delay(200);
    eval2 = analogRead(pinIR);
    delay(200);
    eval3 = analogRead(pinIR);
    delay(200);
    eval4 = analogRead(pinIR);
    delay(200);
    eval5 = analogRead(pinIR);
    delay(200);
    
    evalMoy = (eval1 + eval2 + eval3 + eval4 + eval5)/5;

}

void loop(void) {
  
  evalDistance();
  
}


Un truc du genre devrait marcher. Sinon, on peut faire ça dans une boucle, pour alléger le programme et modifier la fréquence des lectures ...
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Pour simplifier le programme, tu peux faire une fonction comme ça tu peux l'appeler à tout moments:

Code:

int pinIR = 2;

int eval1;
int eval2;
int eval3;
int eval4;
int eval5;
int evalMoy;

void setup(void) {
  pinMode(pinIR, INPUT);
}

void evalDistance() {
    
    eval1 = analogRead(pinIR);
    delay(200);
    eval2 = analogRead(pinIR);
    delay(200);
    eval3 = analogRead(pinIR);
    delay(200);
    eval4 = analogRead(pinIR);
    delay(200);
    eval5 = analogRead(pinIR);
    delay(200);
    
    evalMoy = (eval1 + eval2 + eval3 + eval4 + eval5)/5;

}

void loop(void) {
  
  evalDistance();
  
}


Un truc du genre devrait marcher. Sinon, on peut faire ça dans une boucle, pour alléger le programme et modifier la fréquence des lectures ...

ok,
merci Vincent,
en effet j ai adapte ton principe de mesures successives, cela est moins erratique, mais pas encore parfait.
Mais j ai lu autre part qu une resistance et un condensateur (10kohm et 100pF )en parallele entre la broche de capture et la masse seront d un grand secours. Demain j achete tout ca.
bonnes fetes.


Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 198
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La résistance et le condo. doivent servir de filtre, pour avoir un signal de meilleur qualité, mais tout dépend de ton capteur IR, certain ont je crois un signal déjà lissé

Bonne fêtes à toi aussi  smiley
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 134
panta rei resist the resistors!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

peut etre ca peut aider smiley
http://www.tigoe.net/pcomp/code/archives/picbasic_pro/000286.shtml
Logged

Pages: [1]   Go Up
Jump to: