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); } }