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 placer 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é programmé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 une vidéo 








Enpermanence, ilécritsurlabrocheP1_0,quiestlaLEDrougeduLaunchpad, lavaleur luesurP1_3,quiest lebouton-poussoir.Ondevraitdoncvoir laLEDrouges’allumer lorsquelebouton-poussoirestpresséets’éteindrelorsqu’ilestrelâché.Malheureuse ment...ilnefonctionnepas!Ilfautmodifierlaligned’initialisationdelamanièresuivante pour qu’il fonctionne un peu mieux:




C’estuneraisonélectriquequiobligel’utilisationdumodeINPUT_PULLUP.Elleseraex pliquéeendétaildansuneprochaineleçon.Onapprendraaussipourquoiceprogramme faitl’inversedecequ’onavaitimaginé: laLEDseraalluméetantqu’onnepressepassur le bouton-poussoir et s’éteindra lorsqu’on le presse.

Créé avec HelpNDoc Personal Edition: Avantages d'un outil de création d'aide