01 – Sortie digitale

LED qui clignote

Pour commencer cette prise en mains, faisons clignoter une LED.
Le logiciel Arduino est installé avec un grand nombre d’exemples, utilisons le sketch Exemples/01.Basics/Blink, le code suivant est automatiquement proposé :

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}

Résumons en français ce qui se passe :

  • setup est exécutée une seule fois lors de la mise sous tension de l’Arduino, si on presse le bouton reset, ou lorsque l’on reprogramme le circuit
  • pinMode permet de définir comment une pin digitale est utilisée, ici c’est la LED intégrée au module (LED_BUILTIN) qui est utilisée.
  • loop est appelée à intervalles réguliers pour exécuter votre programme.
  • digitalWrite met la sortie à 0 (LOW) ou 1 (HIGH). La tension correspondant à l’état 1 peut être 5V ou 3.3V selon le type de circuit Arduino. L’état 0 est de 0V.
  • delay provoque une pause, le temps est indiqué en millisecondes.

Finalement, ce programme initialise la LED embarquée (LED_BUILTIN), puis l’allume et l’éteint toutes les secondes.

Comment programmer une autre LED ?

On commence par choisir la sortie sur laquelle la LED est connectée, par exemple la pin 10 (notez que la LED intégrée est connectée à la pin 13). Ensuite, on faut réaliser le câblage. Le dessin ci-contre montre comment connecter la LED. Il est nécessaire d’ajouter une résistance, qui permet le limiter le courant électrique qui traverse la diode, la résistance a une valeur de 220 Ohms (voir ce tuto pour comprendre le calcul de la résistance).

Le programme est modifié ainsi :

#define ledPin 10
#define PAUSE 1000
void setup() {
  // initialize digital pin ledPin as an output.
  pinMode( ledPin , OUTPUT);
}
void loop() {
  digitalWrite(ledPin , HIGH);
  delay(AUSE);
  digitalWrite(ledPin , LOW);
  delay (PAUSE);
}

La bonne pratique demande qu’aucune valeur ne soit directement utilisée dans le programme, la numéro de la pin est choisie avec un #define, tout comme la durée de l’attente. Ainsi, si on désire modifier le pin ou la durée, on n’intervient qu’à un seul endroit dans le programme.

Laisser un commentaire