Bouton poussoir : programmation avec Arduino

De MediaWiki UOF
Aller à la navigation Aller à la recherche
IllustrationBoutonPoussoir.png

Introduction

Lors de l'appui sur le bouton, deux lames sont mise en mouvement et vienne en contact l'une de l'autre soit au repos (normalement fermé) ou lors de l'appui (normalement ouvert). Pour pouvoir revenir à sa position initiale après utilisation, le bouton poussoir est doté d’un mécanisme constitué d’un ressort de rappel. Lorsque vous appuyez dessus avec le doigt, le ressort permet au bouton de revenir à sa place.

Implémentation

Résistance de tirage

Il est nécessaire d'utiliser une résistance afin de fixer le potentiel lorsque le bouton poussoir est ouvert.

Ceci est réalisé avec une résistance de tirage appelée résistance de Pull-Up (tirage vers le haut) ou une résistance de Pull-Down (tirage vers le bas).

Valeur de la résistance de tirage : 10k Ohm (avec une résistance de 1k Ohm ça fonctionne également mais la consommation de courant sera plus importante).

Condensateur en parallèle du bouton poussoir pour filtrer les rebonds

Il est nécessaire de placer un condensateur en parallèle du bouton poussoir afin de filtrer les rebonds.

Les explications sont par ici : | Arduino UNO etc : Réagir à l'appui sur un bouton poussoir (front descendant...). Eviter les rebonds., Eric Peronnin, 2021

Valeur du condensateur anti-rebonds : 10nF typiquement

Implémentation avec résistance de Pull-Up

Câblage avec résistance pull-up

BP PullUp schéma.png BP PullUp bb.png


  • L'entrée 2 de l'Arduino voit 5V quand le bouton poussoir est relâché
  • L'entrée 2 de l'Arduino voit 0V quand le bouton poussoir est pressé

Code Arduino minimal en configuration pull-up

// Constante (la valeur ne peut pas changer au cours de l’exécution du programme):
const int buttonPin = 2;     // numéro de la pin du bouton poussoir

// variables (la valeur peut changer au cours de l’exécution du programme):
int buttonState = 0;         // variable pour lire le status du bouton poussoir

void setup() {
  // initialise la pin du bouton poussoir en entrée
  pinMode(buttonPin, INPUT);
}

void loop() {
  // lecture de l'état du bouton poussoir et stock son état dans la variable
  // Si le bouton poussoir est relaché buttonState=1
  // Si le bouton poussoir est pressé buttonState=0
  buttonState = digitalRead(buttonPin);
  
  // Placer à cet endroit du programme un test sur la variable buttonState et effectuer une action (allumer une LED par exemple)
}

Implémentation avec résistance de Pull-Down

Câblage avec résistance pull-down

BP PullDown schéma.png BP PullDown bb.png

  • L'entrée 2 de l'Arduino voit 0V quand le bouton poussoir est relâché
  • L'entrée 2 de l'Arduino voit 5V quand le bouton poussoir est pressé

Code Arduino minimal en configuration pull-down

// Constante (la valeur ne peut pas changer au cours de l’exécution du programme):
const int buttonPin = 2;     // numéro de la pin du bouton poussoir

// variables (la valeur peut changer au cours de l’exécution du programme):
int buttonState = 0;         // variable pour lire le status du bouton poussoir

void setup() {
  // initialise la pin du bouton poussoir en entrée
  pinMode(buttonPin, INPUT);
}

void loop() {
  // lecture de l'état du bouton poussoir et stock son état dans la variable
  // Si le bouton poussoir est relaché buttonState=0
  // Si le bouton poussoir est pressé buttonState=1
  buttonState = digitalRead(buttonPin);
  
  // Placer à cet endroit du programme un test sur la variable buttonState et effectuer une action (allumer une LED par exemple)
}

Références