Bonjour diiity
Voilà, ça faisait un moment que je voulais m’atteler à la tâche, tu m’en as offert l’occasion!
J’ai fait des recherches et je n’ai rien trouvé qui me « plaisait ». Il y a 2 méthodes, la plus simple, c’est de compter le nombre d’impulsions du capteur, par seconde, et de multiplier le tout par 60, le problème, pour un comptage qui qui peut varier de + ou – 1 ça fait varier l’affichage de + ou – 60, pas très fun !
L’autre méthode, un peu plus compliquée, consiste à chronométrer la période des impulsions, en microSecondes dans mon cas et de diviser 60'000'000 par la période. Pour stabiliser la mesure, il est stocké
impulsMoyenneNbr mesures dans le tableau
capteur.impulsMoyenne[m]. Chaque fois que ce tableau est plein, on fait la moyenne et on calcule les t/Minute
capteur.toursMinute.
Par défaut, il est compté une impulsion par tour et c’est modifiable par
#define capteurImpulsTour 1 // Nombre d'impulsion(s) par tour
qui gère ce paramètre.
Les mesures sont affichées sur un affichage LCD 16x2 dont l’adresse est dans la variable
#define lcdI2cAddress 0x27 // Affichage LCD Adresse i2C
Pour, éventuellement, retrouver l’adresse de votre afficheur, il faut charger le sketch
i2c_scanner.ino.
La seule bibliothèque utilisée est
LiquidCrystal_I2C.h
Voici le programme :
Le schéma :
Et une petite vidéo :
Au moyen d’un générateur je suis monté largement au-dessus 12000 t/Minute!
Il y aurait encore à faire pour ce qui est de la stabilité de l’affichage, si ça t’intéresse…
Ce programme pourrait assumer d’autres fonctions à condition de ne pas abuser des fonctions dites « bloquantes » comme
delay().
Le kit en PJ comprends le programme compte tours, le scanner i2C, le bibliothèque pour l’affichage et le schéma.
A ta disposition
Cordialement
jpbbricole