bonjour à tous,
J'essaie de faire un compte tour pour une horloge POV, l'horloge fonctionne bien mais pas le compte-tour.
Si quelqu'un pouvait venir à mon aide...
L'idée c'était d'incrémenter la variable compteur à chaque passage devant un capteur à effet hall, et ça pendant une seconde, et de récupérer le nombre de passages pendant cette seconde (j'ai appelé ça compteurCurrentLap).
Voici mon code:
compteur++;
compteurRPM = compteurCurrentLap; // *60 pour la minute lorsque ça marchera
compteurCurrentLap = compteur - compteurLastLap;
RpmM = compteurRPM/1000;
RpmC = (((compteurRPM/100)*100) - (RpmM * 1000))/100; // Ce bloc là fonctionne ce sont ces 4 variables qui sont affichées
RpmD = ((compteurRPM/10)) - ((RpmM*100) + (RpmC *10));
RpmU = compteurRPM -((RpmM*1000) + (RpmC*100) + (RpmD*10));
if (seconde - previousSec == 1) //seconde est une variable d'un module real time clock
{
previousSec = seconde;
digitalWrite (LEDG, HIGH); //cette led clignote bien, donc le if est bon, elle est mise à l'état bas plus tard dans le code
compteurLastLap = compteur;
}
Tout cela fait partie d'une fonction qui fait aussi l'affichage, et qui est appelée par une interruption (lors du passage du capteur).
Lorsque je lance ça à l'affichage j'ai un chiffre qui s'incrémente tout le temps...
Le résultat aurait dut être un chiffre proche de 22 environ lorsque la vitesse est stable et rafraichi à chaque nouvelle seconde.
Toutes les variables sont déclarées en global, si vous avez une solution à ce problème ou des idées pour faire plus simple ça fais une semaine que je suis dessus je craque... ^^
Merci à vous!