Je viens d’acquérir mon (tout) premier Arduino nano et, étant débutant, je cherchais un moyen pour faire un compte-tour à placer sur un vélo afin de connaitre les tours-min du pédalier (très utile en entrainement). J'ai donc cherché et cherché sur internet en vain... bien que certain projet ce rapprochaient de ce que je voulais faire. Après plusieurs essais de code, je suis tombé sur le bon
Le principe est simple: Je mesure le temps entre 2 impulsions dans un capteur (donc pour un tour) puis je reporte le temps mesuré en tours/min. Ainsi, à chaque tour de pédalier, une nouvelle valeur est calculée.
Voici une image du montage sur 123D circuit. A noter que le capteur a été remplacé par un bouton.
Ainsi que le code (qui n'est peu-être pas optimisé mais ça fonctionne, c'est le principal non?)
sympa comme montage, niveau code, tu l' as deviné, il peut être amélioré.
Par exemple, l' affichage d' accueil, peut être mis dans le void setup(), ce dernier ne s' effectue qu' une seul fois.
void setup() {
pinMode (hall, INPUT); // entrée analogique du capteur à effet Hall sur pin A3.
lcd.begin (16, 2);
//----------------------------------------- Affichage bienvenue
lcd.setCursor (2, 0);
lcd.write ("Bienvenu sur");
lcd.setCursor (3, 1);
lcd.write ("votre velo");
delay (3000);
lcd.clear();
}
D' autres amélioration peuvent être apportées, comme une interruption sur le front descendant, lorsque la manivelle passe devant le capteur, ainsi tu pourrais te passer de ceci:
if (a == 1) { // pour que la valeur n'évoluent pas pendant le temps haut du capteur, pour que seulement 1 mesure soit effectuée pendant que le capteur est à l'état haut (une sorte "d'anti-rebond").
t_1 = temps;
rpm = 60000 / (t_1 - t_0);
lcd.setCursor (9, 0);
lcd.write (" ");
lcd.setCursor (9, 0);
lcd.print (rpm);
a = 2;
b = 0;
t_0 = temps;
}
pour ça tu peux utiliser la fonction attachInterrupt, plus d' info ici
Toujours est-il, que ça fonctionne, et c' est bien le principal pour cette hivers!
Bonsoir,
Oui c'est vrai que la fonction setup s’exécute qu'une fois, je n'y avait même pas pensé merci
Pour ce qui est du "attachInterrupt", je m'était renseigné sur le fonctionnement mais j'avoue que j'avais pas compris grand chose...
En tout cas merci pour votre retour!