Compter le nombre de tour.
Ce premier programme va nous permettre de compter le nombre de tours effectués par le hand spinner .
Le détecteur est toujours branché sur la broche 2 (D2).
Le passage d'une branche du Hand spinner devant le détecteur provoquera un déclenchement du détecteur (passage à '1' de la broche 2 et allumage de la led du détecteur)
à la fin du passage la broche 2 repasse à '0' et la led du détecteur s'éteint.
Dans le programme donné on utilise un fonction d'interruption du micro contrôleur pour compter les déclenchements
A chaque nouveau tour du hand spinner le programme va envoyer sur la console le nombre de tours effectués.
Programme :
#define detect 2 // le détecteur est connecté à la broche digital 2
#define nbr 3 // nombre de branche du Hand Spinner (nombre de déclenchement par tour)
volatile int cPulse = 0; // cette variable permet de compter les déclenchements
int tour; // cette variable permet de compter le nombre de tour
void tick() //Fonction d'interruption pour la détection des fronts
{
cPulse++; // on ajoute '1' à la variable cPulse à chaque déclenchement
}
void setup() {
Serial.begin(115200); // Initialise le port série à 115200 bauds
pinMode(detect, INPUT_PULLUP); // broche 2 en entrée
attachInterrupt(digitalPinToInterrupt(detect), tick, FALLING); //active la fonction d'interruption (tick) à chaque passage à '0' de la broche 2 (detect)
tour = 0;
}
void loop() {
...
}