Accueil Arduino Calcule ta latence cérébrale avec un bouton poussoir !

Calcule ta latence cérébrale avec un bouton poussoir !

par Cyril Ternay

Dans cette vidéo je vous présente comment se servir d’un bouton poussoir pour calculer votre temps de réaction.

Je vous présente un moyen simple de découvrir comment se servir d’un bouton poussoir au travers d’une application vous permettant au final de calculer votre temps de réaction. Sachant que la moyenne se situe autour des 200 millisecondes, vous pouvez essayer de mesurer le vôtre à l’aide d’un simple bouton poussoir et de la LED intégrée sur le port 13 de l’Arduino UNO.

Dans la première partie de la vidéo je vous montre comment allumer une LED qui réagit à la pression d’un bouton poussoir.

const int pinBouton = 2;     // Port sur lequel est branché le bouton poussoir
int etatBouton = 0;         // variable pour stoker la lecture du status du bouton poussoir

void setup() {
  // On initialise la LED intégrée sur le port 13 de l'Arduino
  pinMode(LED_BUILTIN, OUTPUT);
  
  // On initialise le bouton poussoir en mode INPUT
  pinMode(pinBouton, INPUT);
}

void loop() {
  // On lit l'état actuel du bouton poussoir. Attention selon le montage, le bouton poussoir peut être inversé
  etatBouton = digitalRead(pinBouton);

  // Si on lit la valeur HIGH (=1) alors on allume la LED intégrée
  if (etatBouton == HIGH) {
    // Allumage de la LED :
    digitalWrite(LED_BUILTIN, HIGH);
  } 
  //Sinon, si la valeur est autre que HIGH alors on éteint la LED intégrée
  else {
    // Eteignage de la LED :
    digitalWrite(LED_BUILTIN, LOW);
  }
}

Dans la seconde partie de la vidéo, nous explorons le code source permettant cette fois-ci de calculer votre temps de latence cérébrale.

int delaiSurprise = 0; //Variable pour les délais surprises
unsigned long tempsDebut; //Variable qui stock l'heure de début du challenge
int pinBoutton = 2; //Port sur lequel est branché le bouton poussoir

void setup() {
  //On amorce la communication série
  Serial.begin(9600);
  randomSeed(analogRead(0));
  //Initialisation de la LED sur l'Arduino
  pinMode(LED_BUILTIN, OUTPUT);
  
  //Initialisation du port sur l'Arduino connecté au bouton poussoir
  pinMode(pinBoutton, INPUT);

  //On choisit une période aléatoire d'attente surprise entre 6 et 20 sec
  delaiSurprise = random(6000, 20000);

  //Le programme attend une période qui correspond au délai surprise
  delay(delaiSurprise);

  //On allume la LED embarquée sur l'Arduino 
  digitalWrite(LED_BUILTIN, HIGH);
  
  //On enregistre l'heure pour commencer le chronomètre
  tempsDebut = millis();
}

void loop() {
  //On lit le status sur le port du bouton poussoir
  if(digitalRead(pinBoutton) == LOW){
    
    //Calcul le temps final déduis de l'heure actuelle et de l'heure du début
    int tempsFinal = millis() - tempsDebut;

    //On envoie le résultat sur le moniteur série
    Serial.print("Temps écoulé : ");
    Serial.print(tempsFinal);
    Serial.println(" ms. Reset carte requis pour recommencer");

    //On attend 10 sec par sécurité pour éviter les appuies bouton intempestifs.
    delay(10000);
  }
}

Vidéos similaires

Laissez un commentaire

Ce site Web utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte En savoir plus