Acquérir l'état d'une entrée numérique (digitalRead) : bouton poussoir ou autre capteur numérique
Les pins utilisables pour des entrées numériques
Afin d'acquérir l'état d'une entrée numérique (tout ou rien) comme par exemple l'état d'un bouton poussoir ou l'état d'un capteur de proximité tout ou rien, ce dernier doit être branché sur un des pins repérés de 2 à 13, qui peuvent être configurés comme entrée numérique (voir image ci-contre).
La valeur de la tension 0V ou +5V, acquise sur ce pin, sera immédiatement convertie en booléen : 0 si acquisition=0V, ou 1 si acquisition=+5V.
Exemple du câblage d'un bouton poussoir branché sur le pin entrée numérique 11
Dans le montage ci-dessous d'un bouton poussoir, la tension sur le pin entrée numérique 11 de la carte Arduino, vaut +5V lorsque l'interrupteur est fermé, et 0V lorsque l'interrupteur est ouvert.
NB : la résistance R2 dans ce montage, dite pull down, (qui est bleue foncée dans les boites à disposition) a pour fonction de mettre le pin entrée numérique à 0V lorsque l'interrupteur est ouvert.
Structure du code
• dans l'entête déclarative : déclarer les variables associées au numéro du pin où est branchée une entrée numérique telle qu'un bouton poussoir (BPpin) ainsi qu'à la valeur booléenne acquise (BPetat) sur ce pin entrée numérique ;
Attention à la casse des noms de variable : « BPpin » est différent de « bppin » !
• dans la fonction void setup() : définir le pin utilisé, comme une entrée, à l'aide de la fonction « pinMode » ;
• dans la fonction void loop() : acquérir (ou lire) l'état de l'entrée numérique (l'état du bouton poussoir) à l'aide de la fonction « digitalRead ».
Code pour acquérir l'état d'un bouton poussoir
int BPpin = 11 ; // déclare la variable BPpin comme un entier de valeur 11 (repère du pin utilisé par le BP)
boolean BPetat ; // déclare la variable BPetat comme un booléen (valeur qui sera acquise sur le pin du BP)
void setup() {
pinMode(BPpin,INPUT); // définit le pin BPpin (ici 11) comme une entrée
}
void loop() {
BPetat = digitalRead(BPpin); // acquiert (ou lit) l'état de l'entrée numérique BPpin (car la valeur de la tension 0V ou +5V sera immédiatement convertie en booléen 0 ou 1), puis affecte cette valeur à la variable BPetat
}