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 :

1
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

1
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 :

1
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 :

1
int button = 3;   //attach a button to digital pin 3
2
int LED = 7;      //attach an LED to digital pin 7
3
4
void setup()
5
{
6
    pinMode(button, INPUT);  //define button an INPUT device
7
    pinMode(LED, OUTPUT);    //define LED an OUTPUT device
8
}
9
10
void loop()
11
{
12
    int buttonState = digitalRead(button);  //read the status of the button
13
    if(buttonState == 1)
14
    digitalWrite(LED,1);
15
    else
16
    digitalWrite(LED,0);
17
}