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