Mesurer la durée d'un tour

Principe

Pour connaître la vitesse de rotation du hand spinner il faut mesurer le temps d'un tour.

A chaque détection du capteur on mesure le temps actuel et on le soustrait au temps du tour précédent. Pour cela on utilise la fonction millis() qui renvoie le nombre de millisecondes depuis que la carte Arduino a démarré le programme en cours.

Analyse du code :

1
unsigned long currentTime, previousTime;    
2
3
4
currentTime = millis(); // mesure du temps au moment de la détection
5
periode = currentTime - previousTime;
6
previousTime = currentTime;  // Met à jour la variable pour la prochaine détection
7
8
9

La valeur de la variable 'periode' correspond à la durée d'un tour en millisecondes.

Q D1 / Exemple de mesure :

Au moment de la détection le code ci-dessus est exécuté, depuis le lancement du programme 123420 millisecondes se sont écoulées et lors du tour précédent le temps était 123200 millisecondes.

  • Au début de l'exécution du code quelle est la valeur de la variable 'previousTime' ? previousTime= ___________________________________

  • Quelle valeur prend la variable 'currentTime ' ? currentTime = ___________________________________

  • Quelle valeur prend la variable 'periode ' ? periode = ___________________________________

  • Quelle valeur prend la variable 'previousTime ' ? previousTime = ___________________________________

  • Préciser la durée d'un tour en millisecondes

-

Tester le fonctionnement de ce code  :

A partir du programme Arduino précédent (comptage des tours) et du code ci-dessus.

  1. Recopier la ligne " unsigned long..............." après la ligne"int tour... " du programme de comptage de tour

  2. Recopier les 3 autres lignes à la fin du bloc qui permet d'afficher le nombre de tour (du programme de comptage des tours)

  3. Ajouter une ligne pour afficcher la variable peroide sur la console.

Tester votre programme avec le hand spinner et la carte Arduino