Commander l'état d'une sortie numérique (digitalWrite) : diode électroluminescente (led)
Les pins utilisables pour des sorties numériques
Afin de commander l'état d'une sortie numérique (tout ou rien) comme par exemple l'état d'une led, cette dernière doit être branchée sur un des pins repérés de 2 à 13, qui peuvent être configurés comme sortie numérique (voir image ci-contre).
La valeur booléenne 0 ou 1, commandée sur ce pin, sera immédiatement convertie en tension : 0V si commande=0, ou +5V si commande=1.
Exemple du câblage d'une led branchée sur le pin sortie numérique 10
Dans le montage ci-dessous d'une diode électroluminescente (led), la tension sur le pin sortie numérique 10 de la carte Arduino doit être de +5V pour allumer la led, ou 0V pour l'éteindre.
NB1 : les leds sont polarisées : le pôle "-" est relié à la cathode (broche la plus courte) et le pôle "+" à l'anode (broche la plus longue).
NB2 : la résistance R1 dans ce montage (qui est bleue claire / verte dans les boites à disposition) a pour fonction de limiter le courant passant dans la led.
NB3 : les composants alimentés directement par les pins sorties, doivent être de faible puissance (comme des leds) car la sortie générée ne fournit pas plus de 40mA sous 5V, c'est-à-dire 0,2W. Pour commander des systèmes plus puissants, il faudra utiliser des préactionneurs (relais, hacheur...) et une autre énergie source (voir partie "Commander le rapport cyclique d'une sortie pseudo-analogique PWM : hacheur et moteur à courant continu").
Structure du code
• dans l'entête déclarative : déclarer les variables associées au numéro du pin où est branchée une sortie numérique telle qu'une led (Ledpin) ainsi qu'à la valeur booléenne commandée (Ledetat) sur ce pin sortie numérique ;
Attention à la casse des noms de variable : « Ledpin » est différent de « ledpin » !
• dans la fonction void setup() : définir le pin utilisé, comme une sortie, à l'aide de la fonction « pinMode » :
• dans la fonction void loop() : commander (ou écrire) l'état de la sortie numérique (l'état de la led) à l'aide de la fonction « digitalWrite ».
Code pour commander l'état d'une led
int Ledpin = 10 ; // déclare la variable Ledpin comme un entier de valeur 10 (repère du pin utilisé par la led)
boolean Ledetat ; // déclare la variable Ledetat comme un booléen (valeur qui sera commandée sur le pin de la led)
void setup() {
pinMode(Ledpin,OUTPUT); // définit le pin Ledpin (ici 10) comme une sortie
}
void loop() {
Ledetat=BPetat ; // exemple d'une expression de Ledetat si la led doit s'allumer selon l'état d'un bouton poussoir
digitalWrite(Ledpin,Ledetat); // commande (ou écrit) l'état de la sortie numérique Ledpin (car la valeur booléenne Ledetat sera immédiatement convertie en tension : 0V si Ledetat=0, ou 5V si Ledetat=1)
}