Arduino Allumer Une LED En Douceur (PWM)

SOMMAIRE ►

  • C’est quoi le signal PWM (MLI) de l’Arduino
  • Arduino allumer une led progressivement
  • Code Arduino pour varier l’intensité lumineuse LED
  • Code Arduino pour allumer 2 LEDs en douceur

À la page vous trouverez le mode d’emploi pour assembler un circuit électrique avec LED pour progressivement faire varier l’intensité lumineuse avec l’aide signal PWM (Pulse Width Modulation) sur une carte Arduino Uno. Pour comprendre le principe de la PWM générée par l’Arduino, vous pouvez consulter ce tutoriel. Tout d’abord PWM sont les Initiales de Pulse Width Modulation que l’on traduit en français par MLI (Modulation de Largeur d’Impulsion).

Pour cette activité, nous aurons besoin:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • LED et résistance
  • breadboard
  • fils de connexion

Matériel supplémentaire sur ce sujet:

  1. Feu de signalisation routière avec Arduino
  2. Jeu de réaction avec LEDs et boutons-poussoirs
  3. Jeu Arduino avec LEDs «Répétez la séquence»

C’est quoi le signal PWM sur une carte Arduino

Graphique. Signal PWM sur la carte Arduino
Graphique. Signal PWM sur la carte Arduino

Afin de varier artificiellement la tension en sortie de l’Arduino, il nous faudra utiliser certaines broches digitales de la carte. Mais par définition, une broche digitale ne délivre qu’un signal binaire (0 ou 1), c’est-à-dire que le signal électrique en sortie ne peut avoir que deux valeurs soit HIGH (niveau Haut = 5V) ou LOW (niveau Bas = 0V). Les broches digitales compatibles PWM vont permettre d’émettre un signal numérique disposant de 256 valeurs différentes.

Arduino allumer/éteindre une led progressivement

Faire varier l'intensité lumineuse d'une LED Arduino
Faire varier l’intensité lumineuse d’une LED Arduino

Pour générer une tension variable ou pseudo analogique en sortie d’une broche digitale de l’Arduino, il va falloir changer très rapidement l’état de la sortie. C’est ce changement de la valeur moyenne du signal électrique va changer la luminosité d’une LED. 6 pins d’une Arduino Uno or Nano fournissent la sortie signal MLI (Modulation de Largeur d’Impulsion) – 3, 5, 6, 9, 10, 11. Pour l’amorçage signal PWM dans programme utiliser la fonction analogWrite();

Programme pour varier l’intensité lumineuse d’une LED

#define RED_LED 9 void setup() { // initialise les broches pinMode(RED_LED, OUTPUT); } void loop() { analogWrite(RED_LED, 0); delay(500); analogWrite(RED_LED, 50); delay(500); analogWrite(RED_LED, 100); delay(500); analogWrite(RED_LED, 150); delay(500); analogWrite(RED_LED, 200); delay(500); analogWrite(RED_LED, 255); delay(500); }

Utiliser une boucle « for » pour allumer et éteindre une LED en douceur. Une boucle « for » est exécutée i fois, on doit lui donner trois paramètres entre les parenthèses (le code qui se trouve à l’intérieur de la boucle sera exécuté 255 fois):

1. la création et l’assignation de la variable à une valeur de départ 2. suivit de la définition de la condition à tester 3. suivit de l’instruction à exécuter

#define RED_LED 9 void setup() { // initialise les broches pinMode(RED_LED, OUTPUT); } void loop() { for(int i=0; i<=255; i++) { analogWrite(RED_LED, i); delay(10); } for(int i=255; i>=0; i--) { analogWrite(RED_LED, i); delay(10); } }

Explication du code pour varier l’intensité lumineuse:

  1. la boucle « for » sert à répéter les opérateurs enfermés dans une construction (accolades);
  2. la boucle « for » est répétée tant que la condition i<=255 ou i>=0 est vraie.
Allumer et éteindre 2 LED en douceur
Arduino allumer et éteindre 2 LED en douceur

Programme pour allumer/éteindre 2 LEDs en douceur

#define RED_LED 9 #define BLU_LED 11 void setup() { // initialise les broches pinMode(RED_LED, OUTPUT); pinMode(BLU_LED, OUTPUT); } void loop() { for(int i=0; i<=255; i++) { analogWrite(RED_LED, i); delay(10); } for(int i=255; i>=0; i--) { analogWrite(RED_LED, i); delay(10); } for(int i=0; i<=255; i++) { analogWrite(BLU_LED, i); delay(10); } for(int i=255; i>=0; i--) { analogWrite(BLU_LED, i); delay(10); } }

Explication du code pour allumer/éteindre 2 LED avec PWM:

  1. l’en-tête de la boucle « for » se compose de trois parties (initialisation ; condition ; incrémentation) – initialisation est exécutée une fois, puis la condition est vérifiée, si la condition est vraie, incrémentation est exécutée et la boucle est répétée jusqu’à ce que la condition soit vraie.

Conclusion. La LED de l’Arduino est allumée en douceur grâce à un signal PWM. Dans le programme d’exemple, nous avons modifié en douceur la luminosité de la LED avec le signal PWM (Modulation de Largeur d’Impulsion). Cet exemple peut être utilisé pour une lumière LED décorative dans une pièce ou une veilleuse décorative à l’aide d’un microcontrôleur Arduino.

Tag » Arduino Varier Intensité Led