Bonjour à tous,

Ma première passion étant le mx (quad, motos cross) donc circuit terre, je possède d'ailleurs un 350 Banshee et ma deuxième l'électronique et plus particulièrement en pansant par arduino j'ai donc décidé de réunir mes deux passions pour faire un projet smiley-grin !

La télémétrie consiste à prendre tout une série de mesure en course, mais moi la mesure principale dont j'ai besoin de votre aide c'est pour l'antipatinage.

Je vous explique :
J'aimerais mesurer ma vitesse de rotation de mes roues arrière et en même temps la vitesse de rotation de mes roues avant, pour conclure que si il y a une différence de plus de 10tr/min entre les deux c'est qu'il y a patinage. (Jusque la tout le monde me suit ? J'essaye de faire simple et en même temps précis)

Le problème c'est que l'arduino ne peut pas mesurer ces deux vitesses en mêmes temps ... donc pour une simple question d'expérience professionnel on va d'abord mesurer la vitesse de rotation des roues arrières puis celle à l'avant.

vitesse maximum des roues avant et arrière : 2500 tr/min

Pour faire une petite comparation :
-la vitesse des roues avant me donne la vitesse réele de mon véhicule
-la vitesse des roues arrière me donne la vitesse de mon véhicule si il y à 0% de patinage
Donc sachant que c'est sur terre et qu'il y a toujours du patinage je met une tolérance de 10tr/min

Passons maintenant à la partie Acquisition de donnée :
-vitesse roue arrière :
Roue dentée (60 dents) avec capteur fourche optique comme ça j'ai une sortie 0 ou 1 !

-vitesse roue avant :
C'est la que ça ce complique .... Je pensais faire comme l'arrière mais à l'avant sachant que les roues sont directionnelles et avec la terre et les cailloux je pense que ça n'ira pas ... Donc quel solution avez vous à me proposer ?
Je pensais passé par un module GPS mais il me faut des retour d'expérience pour savoir si c'est assez précis (Je me servirai uniquement de l'info vitesse)

Partie Programme :
Dans un premier temps j'ai fait un programme avec pour capteur une fourche optique à l'arriere et une à l'avant (c'st pour voir ce que ça donné mais à l'avant il faudra trouver autre chose)

Code:
volatile int NbTopsFanAV;
volatile int NbTopsFanAR;
int CalcAV;
int CalcAR;
int fourcheoptiqueAV = 2;
int fourcheoptiqueAR = 3;

void setup()//
{ 
  pinMode(fourcheoptiqueAV, INPUT);
  pinMode(fourcheoptiqueAR, INPUT);
  attachInterrupt(0, rpmAV, CHANGE);
  attachInterrupt(1, rpmAR, CHANGE);
  pinMode(13, OUTPUT);
} 

void rpmAV (){ 
  NbTopsFanAV++;  
} 

void rpmAR (){ 
  NbTopsFanAR++;
} 

void loop(){
    NbTopsFanAR = 0;
  sei();
  delay (1000);
  cli();
  CalcAR = (NbTopsFanAR * 60); 
  
  NbTopsFanAV = 0;
  sei();
  delay (1000);
  cli();
  CalcAV = (NbTopsFanAV * 60);
  
    if (CalcAR-CalcAV >= 10)
  {
    digitalWrite(13, HIGH);
  }
  else
  {
    digitalWrite(13, LOW);
  }

}
Le problème attendre 1 sec pour calculer la vitesse des roues arrière et 1 sec de plus pour calculer la vitesse des roues avant c'est beaucoup trop long ...

Donc si vous avez des idées ou même des solutions je suis preneur smiley

Merci à tous d'avoir pris le temps de me lire !!