Allumer une LED (sorties numériques)

Principe

Les entrées/sorties numériques de la carte Arduino UNO sont accessibles sur les broches 0 à 13.

Avertissement

Une sortie numérique ne peut délivrer que 40 mA au maximum (200 mA pour l’ensemble des sorties). Au delà de cette valeur, la carte peut-être détériorée !

Montage

Une LED en série avec une résistance est connectée entre la broche 11 et la masse (GND).

La formule suivante donne le calcul de la résistance en fonction du courant nominal et de la couleur de la LED :

\[R = \dfrac{V_{CC}-V_S}{I}\]
  • \(V_{CC}\) est la tension d’alimentation (5 V) ;
  • \(V_S \approx 2 V\) est la tension de seuil de la LED (dépend de la couleur) ;
  • \(I\) est l’intensité du courant généralement de l’ordre de 20 mA.

Une valeur de résistance de 220 \({\Omega}\) donne un bon compromis.

Programme en langage Arduino (C/C++)

int pinLED = 11;             // LED connectée sur broche 11

void setup() {
  pinMode(pinLED, OUTPUT);   // Broche LED paramétrée en sortie
}

void loop() {
  digitalWrite(pinLED,0);    // LED éteinte
  delay(1000);               // Attendre 1000 ms = 1s
  digitalWrite(pinLED,1);    // LED allumée
  delay(1000);               // Attendre 1000 ms = 1s
}

Dans la fonction setup() :

  • pinMode(LED,OUTPUT) paramètre la broche LED en sortie (OUPUT).

Dans la fonction loop() :

  • digitalWrite(LED,LOW) fixe un niveau logique 0 (LOW) sur la broche LED.
  • digitalWrite(LED,HIGH) fixe un niveau logique 1 (HIGH) sur la broche LED.

Programme en langage Python (Nanpy)

from nanpy import ArduinoApi, SerialManager
from time import sleep                       # Importation fonction sleep()

port = SerialManager(device='COM6')          # Sélection du port série à modifier
uno = ArduinoApi(connection=port)            # Déclaration de la carte Arduino Uno

pinLed = 11                                  # Led branchée sur broche 11
uno.pinMode(pinLed, uno.OUTPUT)              # Broche Led en sortie

for i in range(100):                   # Boucle : répéter 100 fois
   uno.digitalWrite(pinLed, 0)         # Led éteinte
   sleep(1)                            # Attendre 1 s
   uno.digitalWrite(pinLed, 1)         # Led allumée
   sleep(1)                            # Attendre 1 s
  • La fonction SerialManager() fixe le port série sur lequel l’Arduino est connecté.
  • La fonction ArduinoApi() déclare un objet (ici uno) qui représente la carte Arduino.
  • La méthode pinMode() fixe la broche pinLed en sortie (uno.OUTPUT).
  • La méthode digitalWrite() écrit un niveau logique sur la broche pinLed (0 pour 0 V et 1 pour 5 V).

Applications

  • Commande d’un actionneur (LED, relais, …) en tout ou rien.
  • Communication numérique.