Bonjour,
Je poursuis mon apprentissage de l'Arduino. Mon objectif est de réaliser un compteur kilométrique pour ma voiture "ancienne", avec laquelle je participe à des rallyes historiques.
Aujourd'hui, elle est équipée d'un bête compteur de velo sur la roue avant. La précision est très bonne. L'idée, c'est de ne plus utiliser le compteur de velo mais l'Arduino. Le fil qui sort du capteur est un interrupteur tout simple : 2 fils, qui font contact à chaque passage de la roue.
J'ai donc réalisé le montage le plus simple possible: 1 interrupteur sur ma bread board (qui simule le capteur), un fil sur la pin 21 de mon Mega2560, un fil sur le "GND". Et je compte les impulsions via l'interruption n°2.
Apres quelques tests, tout marche plutôt bien, sauf que j'ai parfois des suprises : lorsque j'appuie sur l'interrupteur, il me décompte 2 ou 3 impulsions. Si au lieu de passer par l'interrupteur je fais se "toucher" les 2 fils, là, c'est encore pire: parfois 4/5 impulsions sont décomptées.
J'imagine qu'en réalité il y a des micro-coupures, et que plusieurs "FALLING" de mon interruption sont détectés. Est-ce le bon diagnostic ? Et quelle est la solution dans pareil cas pour "filtrer" ces micro-coupures ? Étant informaticien, la première solution qui me vient à l'esprit est de résoudre le problème par programmation (par exemple, ne prendre en compte l'interruption que si la précédente s'est produite au moins 30 ms auparavant, sachant qu'à 150km/h j'aurai en gros 25 impulsions par secondes, soit 1 toute les 40ms maxi)
Est-ce une bonne piste ? Existe-t-il une solution plus "propre" ?
D'avance merci pour vos réponses