Analyse et finalisation du programme donné.

1
2
#define detect 2  // le détecteur est connecté à la broche digital 2
3
#define nbr 3     // nombre de branche du Hand Spinner  (nombre de déclenchement par tour)
4
5
/* Variables pour la mesure */
6
volatile int cPulse = 0;  // cette variable permet de compter les déclenchements
7
int tour;   //  cette variable permet de compter le nombre de tour
8
9
/** Fonction d'interruption pour la détection  des fronts */
10
void tick() {
11
  cPulse++;    // on ajoute '1' à la variable cPulse à chaque déclenchement 
12
}
13
14
void setup() {
15
  Serial.begin(115200);  // Initialise le port série  à 115200 bauds
16
  pinMode(detect, INPUT_PULLUP);  // broche 2 en entrée
17
  attachInterrupt(digitalPinToInterrupt(detect), tick, FALLING); //active la fonction d'interruption (tick) à chaque passage à '0' de la broche 2 (detect)
18
  tour = 0;
19
}
20
21
void loop() {
22
  if (cPulse  ....  nbr ) {
23
    ....   // cPulse doit être remis à 0
24
    ....   // il faut ajouter 1 au contenu de tour
25
    ....   // il faut afficher le nombre de tour effectué
26
   }
27
}

Question

Q C1 / Rechercher : (compléter le document réponse)

  • le nom du programme d'interruption

  • le nom de la variable qui sert à compter les déclenchements

  • le nom de la variable qui sert à compter les tours

Indice

Dans l'exemple de code suivant :

void setup() {

Serial.begin(9600) ; //exemple de commentaire

}

Ce morceau de programme correspond à la description d'une fonction.

Le nom de cette fonction (ce programme) est 'setup'

Le code exécuté dans cette fonction est entre les accolades. { ..... }

En 'C' se sont les accolades qui délimitent les blocs de code.

les doubles slash // indique que la fin de la ligne est un commentaire ( les commentaires sont optionnels

Question

Q C2 / Compléter la fonction loop ()

A chaque tour du hand spinner il faut ajouter 1 au nombre de tour effectué et afficher cette nouvelle valeur .

Format d'affichage à utiliser : Nombre de tours : xxx(xxx étant la valeur à afficher)

Indice

Lorsque cPulse atteint la valeur 'nbr' (nombre de déclenchement par tour) le hand-spinner a fait un tour.

Question

Q C3 / Tester le programme donné avec la fonction loop() complétée . Faites valider son fonctionnement par votre enseignant.