Idée essentielle

Une entrée numérique ne doit pas rester « en l’air ». Une résistance de Pull-Up ou de Pull-Down impose un état logique stable lorsque le bouton est ouvert.

Sans résistance : entrée flottante

Quand le bouton est relâché et qu’aucune résistance n’est utilisée, l’entrée peut ne plus être reliée ni au +5 V ni au GND. Sa tension n’est alors plus imposée : on dit qu’elle est flottante.

Conséquence : Arduino peut lire aléatoirement 0 ou 1 selon les perturbations.
+5 V Bouton poussoir normalement ouvert ARDUINO Entrée D2 FLOTTANTE

Pull-Up et Pull-Down

Montage Pull-Up

La résistance relie l’entrée au +5 V. Le bouton relie l’entrée au GND quand on appuie.

  • BP relâché → HIGH
  • BP appuyé → LOW

Montage Pull-Down

La résistance relie l’entrée au GND. Le bouton relie l’entrée au +5 V quand on appuie.

  • BP relâché → LOW
  • BP appuyé → HIGH
+5 V R Pull-Up ARDUINO Entrée D2 BP ouvert → HIGH GND
+5 V ARDUINO Entrée D2 BP ouvert → LOW R Pull-Down GND

Pourquoi la valeur de la résistance compte ?

Quand le bouton est appuyé, un courant circule dans la résistance. Il se calcule avec la loi d’Ohm :

I = U / R

Exemple avec une alimentation de 5 V :

RésistanceCourant quand le BP est appuyéLecture pédagogique
1 kΩ5 mARappel fort, mais consommation plus élevée
10 kΩ0,5 mABon compromis
100 kΩ0,05 mATrès faible courant, mais entrée plus sensible aux perturbations

Pourquoi D2 vaut environ 0 V en Pull-Up quand le BP est fermé ?

D2 est directement reliée au GND par le bouton fermé. La loi des mailles permet de le vérifier :

5 V − UR − UBP = 0

Comme un bouton fermé idéal a une chute de tension presque nulle, UBP ≈ 0 V. Donc UR ≈ 5 V, et D2 se trouve au potentiel du GND : D2 ≈ 0 V.

Pull-Up interne d’Arduino

Sur un Arduino Uno à base d’ATmega328P, on peut activer une résistance de Pull-Up interne directement dans le programme :

pinMode(2, INPUT_PULLUP);

Dans ce cas :

Intérêt : le câblage est plus simple, car il n’est pas toujours nécessaire d’ajouter une résistance externe pour un simple bouton.