Lorsqu'un bouton est connecté dans cette configuration, l'entrée est ce qu'on appelle flottant , ce qui signifie que ce n'est pas un 0 ou un 1. Lorsque le bouton est enfoncé, il est connecté à la masse, c'est donc définitivement un 0, mais lorsqu'il n'est pas enfoncé, nous ne connaissons pas la valeur de la broche.
Pull Up Resistor
Nous devons inclure ce qu'on appelle une résistance "pull-up" pour tirer le signal jusqu'à une logique 1 lorsque le bouton n'est pas enfoncé.
Image de Sparkfun
Cela signifie que lorsque le bouton n'est pas enfoncé, l'Arduino lit une logique 1. Lorsque le bouton est enfoncé, le courant traverse la résistance à la masse et l'Arduino lit un 0 logique.
Résistance de traction interne
L'Arduino possède également des résistances de rappel internes, vous n'avez donc pas nécessairement à ajouter un composant supplémentaire à votre circuit. Il y a plusieurs façons de l'utiliser.
Vous deviez le faire comme ceci:
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
Maintenant, nous pouvons le faire simplement en une seule ligne:
pinMode(pin, INPUT_PULLUP);
Cela permet à la résistance de rappel de 20k sur cette broche. L'entrée ne sera plus flottante lorsque le bouton n'est pas enfoncé.
Remarque: cela ne fonctionne que lorsque l'autre extrémité est connectée à la terre.