Outils pour utilisateurs

Outils du site


arduino:bouton_poussoir

Utilisons un bouton poussoir


Le bouton poussoir

Un bouton poussoir possède deux positions :

  • Relâché : le courant ne passe pas, on dit que le circuit est ouvert ;
  • Appuyé : le courant passe, on dit que le circuit est fermé.



Les boutons poussoirs utilisés au lycée ont 4 connexions, elles sont reliées deux à deux :



Comment récupérer l’appui du bouton ?

Pour savoir si un bouton poussoir a été pressé, il faut :

  • définir la broche sur laquelle est branché le bouton comme une entrée ;
  • lire son état haut (HIGH ou 1) ou bas (LOW ou 0).


Définir une broche en entrée

Pour définir une broche en entrée, on utilise la fonction  pinMode().

Exemple : Si le bouton est branché sur la broche 2 alors on écrira dans la fonction setup() :

void setup() {
   pinMode(2, INPUT);  // défini la broche 2 comme une entrée
}


Lire une broche en entrée numérique

Pour lire l'état d'une broche en entrée, on utilise la fonction digitalRead(). Elle retourne une variable de type int (entier).

int etat = digitalRead(2); // la variable "etat" contient la valeur HIGH (1) ou LOW (0) de l'entrée 2

L’état haut correspond à une tension de +5V sur la broche et l’état bas correspond à une tension de 0V.

Application

On souhaite réaliser le montage et le code qui envoie sur la liaison série, le message “ON” lorsque l'on appuie sur le bouton poussoir et “OFF” lorsqu’il est relâché.

Le montage

Sur le montage suivant, le bouton poussoir est branché sur la broche 2 d'une carte Arduino.

Le code

Copier puis téléverser le code suivant. Ouvrir le moniteur série pour tester.

int bouton = 2;
 
void setup() {
  pinMode(bouton, INPUT);   // initialise le port numérique 2 comme entrée
  Serial.begin(9600);  // initialise la liaison série avec l'ordinateur
}
 
void loop() {
  if (digitalRead(bouton) == HIGH){  // si on mesure 5V sur l'entrée numérique
      Serial.println("ON");  // on envoie "ON" à l'ordinateur
  }
  else{   // si on ne mesure pas 5V
      Serial.println("OFF");  // on envoie "OFF" à l'ordinateur
  }
  delay(100);  // on attend 0,1 seconde
}


Comment fonctionne ce montage ?

Quand on appuie sur l’interrupteur, la tension sur le fil jaune est de 5 volts.
Quand on n’appuie pas, la tension est nulle grâce à la résistance qui relie le fil jaune à la masse. Sans cette résistance, la tension serait indéterminée.


A faire vous-même 1

Inversez les fils noirs et rouges, et observez ce qui se passe.



A faire vous-même 2

- Au montage précédent, ajouter une LED sur la broche 13.
- Modifier le code pour que si on appuie sur le bouton, la LED s’allume et si on le relâche, la LED s’éteint.



A faire vous-même 3

Simulons un route avec un feu tricolore et un bouton pour qu'un piétons puisse arrêter les voitures.
Lorsqu'un piéton sur un passage protégé, appuie sur le bouton, le feu tricolore initialement vert doit passer à l'orange pendant 2 seconde puis au rouge pendant 4 seconde et enfin revenir au vert.



On complique un peu en ajoutant le feu pour le piéton.





arduino/bouton_poussoir.txt · Dernière modification: 01/05/2019 11:43 par Stéphane LAURENT