|
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.
|
|
|
Créé avec HelpNDoc Personal Edition: Transformez votre processus de documentation avec l'analyseur de projet de HelpNDoc





