Entrées et sorties numériques (binaire : 0 ou 1)⚓
Objectifs :
Prise en main de l'environnement de programmation Arduino
Comprendre la notion d'entrées/sorties numérique
Introduction
Un microcontrôleur possède un certains nombre de broches numériques (2 états possibles 0 ou 5V) permettant soit d'interroger l'état d'un périphérique d'entrée (bouton poussoirs, claviers, ...) soit de piloter des périphériques de sortie (LED, écran LCD, ... ).
État d'une broche numérique
L'état d'une broche est binaire. "binaire" signifie ici deux états soit vrai soit faux, soit 0 soit 1. Pour une broche d'un circuit logique tels que les micro-contrôleurs cela se traduit par 2 niveaux de tension distincts. Pour la carte Arduino UNO 2 états sont possibles :
soit le niveau Bas (LOW) = 0V
soit le niveau Haut (HIGH)=5V

Sens d'une broche numérique
Une broche numérique est également caractérisée par son sens : Entrée ou Sortie :
la broche est dite en sortie d'un circuit numérique lorsque c'est le circuit numérique qui contrôle l'état Haut/Bas de la broche.
la broche est dite en entrée d'un circuit numérique lorsque le circuit numérique « reçoit » (ou « subit ») son état .
Carte Arduino : Description des broches
La carte Arduino UNO possède 20 broches numériques configurables en entrée ou en sortie. Il est conseillé cependant d'utiliser les broche 2 à 13 (les broches 0 et 1 sont utilisées pour la programmation et les broches 14 à 19 sont dédié aux entrées analogique). Les broches d'un Arduino peuvent être configurées en entrée ou en sortie (par défaut elles sont configurées en entrée).

Attention :
L'intensité du courant en sortie des broches ne doit pas dépasser 40mA !
L'ensemble ne doit pas dépasser 200mA
Programme
Trois fonctions indispensables pour utiliser une broche du port d'E/S de l'Arduino :
1) La configuration du sens (entrée ou sortie) dans la procédure setup :
pinMode(pin, mode);
pin est un entier indiquant le numéro de la broche à configurer
mode : est une variable pouvant prendre comme valeurs : INPUT si la broche est une entrée ou OUTPUT si la broche est une sortie
2) La lecture de l'état d'une broche si c'est une entrée
digitalRead(pin);
Cette fonction retourne soit HIGH si l'état de la broche est à 1 (+5 Volts) sinon LOW (0 Volts). pin est l'entier correspondant au numéro de la broche à lire.
3) L'écriture/le contrôle d'une broche si c'est une sortie :
digitalWrite(pin,value);
Cette fonction ne renvoie rien, elle modifie l'état de la broche correspondant au paramètre pin. Cet état dépendra de value : HIGH (+5 Volts) ou LOW (0 Volts).
Exemple module Grove :
int button = 3; //attach a button to digital pin 3
int LED = 7; //attach an LED to digital pin 7
void setup()
{
pinMode(button, INPUT); //define button an INPUT device
pinMode(LED, OUTPUT); //define LED an OUTPUT device
}
void loop()
{
int buttonState = digitalRead(button); //read the status of the button
if(buttonState == 1)
digitalWrite(LED,1);
else
digitalWrite(LED,0);
}