Mémos

M é m o - l a b .

Arduino – Le bouton poussoir : INPUT et INPUT_PULLUP

Lorsque l’on utilise un bouton, il est possible dans le code de déclarer le pin d’entrée de celui-ci en mode (fonction pinMode()) INPUT ou INPUT_PULLUP.

Schéma du bouton et des connexions internes

Déclaration du bouton en mode INPUT – pinMode(btnPin, INPUT);

Si l’on connecte simplement le bouton comme indiqué sur l’illustration ci-dessous, lorsque celui-ci est appuyé, la valeur retournée sera toujours « LOW » (ou 0). Par contre lorsque celui-ci est relâché, la valeur retournée sera aléatoirement égale à « LOW » ou à « HIGH ».

Pour résoudre ce problème et fixer l’état haut ou bas du signal électrique, il faut intégrer une résistance. Celle-ci peut être placée à 2 endroits différents.

  • Soit entre le pin d’entrée (DIG) du bouton et le VCC du microcontrôleur (résistance de PULLUP)
  • Soit entre le pin d’entrée (DIG) du bouton et le GND du microcontrôleur (résistance de PULLDOWN)

Résistance de PULLUP

Résistance de PULLDOWN

Déclaration du bouton en mode INPUT_PULLUP – pinMode(btnPin, INPUT_PULLUP);

Le mode INPUT_PULLUP permet d’activer la résistance interne présente dans le microcontrôleur. Dans ce cas, il n’est plus nécessaire d’intégrer soi-même une résistance dans le circuit. Le schéma simple de branchement du bouton fonctionnera.