IV-  Entrées-sorties

L’usage des broches du microcontrôleur comme entrée ou comme sortie se fait par l’intermédiaire de registres spécialisés.


Leurs noms et leurs rôle exacts varient d’un microcontrôleur à l’autre. 


Pour faciliter l’utilisation des broches comme entrées ou comme sorties, trois procédures sont proposées :


– void pinMode(pin, mode)


– void digitalWrite(pin, value)


– Boolean digitalRead(pin)



IV-1 pinMode() 

La procédure pinMode(pin, mode) est une procédure d’initialisation. Elle permet de configurer une broche du microcontrôleur en entrée ou en sortie.

Elle reçoit deux paramètres :


–         pin: c’est le numéro logique de la broche. 

Attention, c’est un numéro qui a été arbitrairement choisi. Sur les cartes Arduino, c’est le numéro qui est noté sur la carte. 


–         mode: la valeur INPUT place la broche en entrée, la valeur OUTPUT place la broche en sortie. 


La procédure pinMode() ne rend rien à la fin de son exécution, d’où le mot void setup() qui précède sa définition.


IV-2 digitalWrite() 

La procédure void digitalWrite(pin, value) permet d’agir sur une broche qui a été programmée en sortie. C’est une écriture. Elle permet de placer un 0 ou un 1 sur la sortie. Elle reçoit deux paramètres :


–         pin: c’est le numéro logique de la broche.

–         value: la valeur à donner à la sortie, 0 ou 1. 


Les symboles LOW (bas, 0) et HIGH (haut, 1) peuvent aussi être utilisés. La procédure digitalWrite() ne rend rien à la fin de         son exécution.


IV-3 Boolean digitalRead() 

La procédure Boolean digitalRead(pin) permet de lire le niveau logique sur une broche qui a été configurée en entrée. La valeur rendue sera 0 ou 1(LOW ou HIGH). Elle reçoit un seul paramètre :


       pin: le numéro logique de la broche. 


La procédure digitalRead() rend à la fin de son exécution la valeur lue. Ce sera un 0 ou un 1 (Boolean).



IV-4 Exemple 

Voici un programme qui utilise les instructions que nous venons de voir. Il semble correct :



En permanence, il écrit sur la broche 13 (IO13), qui correspond à la LED jaune présente sur la carte Arduino, la valeur lue sur la broche 2 (IO2) , qui est le bouton-poussoir. On devrait donc voir la LED jaune s’allumer lorsque le bouton-poussoir est pressé et s’éteindre lorsqu’il est relâché. 



Malheureusement...il ne fonctionne pas! 




Il faut modifier la ligne d’initialisation de la manière suivante pour qu’il fonctionne un peu mieux:



C’est une raison électrique qui oblige l’utilisation du mode INPUT_PULLUP. Elle sera expliquée en détail dans une prochaine leçon. On apprendra aussi pourquoi ce programme fait l ’inverse de ce qu’on avait imaginé: la LED est allumée tant qu’on ne presse pas sur le bouton-poussoir et éteinte’ lorsqu’on le presse.



Arduino 328_ES_V2.pdsprj

Créé avec HelpNDoc Personal Edition: Transformez votre processus de documentation avec l'analyseur de projet de HelpNDoc