Arduino - LED - Estompage

Dans ce tutoriel, nous allons apprendre :

※ NOTE THAT:

Ce tutoriel fournit des connaissances approfondies qui vous aideront à comprendre le principe de fonctionnement. Pour faciliter cela, vous pouvez utiliser la bibliothèque LED Arduino.

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×LED
1×220 ohm resistor
1×Breadboard
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos des LED

Brochage

LED comprend deux broches :

  • Broche de cathode (-) : doit être connectée à GND (0V)
  • Broche d'anode (+) : est utilisée pour contrôler l'état de la LED
Brochage LED

Comment ça fonctionne

Après avoir connecté la cathode (-) à GND :

  • Si le GND est connecté à l'anode(+), la LED est éteinte.
  • Si le VCC est connecté à l'anode(+), la LED est allumée.
  • Si un signal PWM est généré à l'anode(+), la luminosité de la LED change en fonction de la valeur du PWM. La valeur du PWM varie de 0 à 255. Plus la valeur du PWM est grande, plus la LED est lumineuse. Plus la valeur du PWM est petite, plus la LED est sombre.
    • Si la valeur du PWM est 0, cela équivaut à GND, donc la LED est éteinte.
    • Si la valeur du PWM est 255, cela équivaut à VCC, donc la LED est totalement allumée.
    Comment fonctionnent les LED

    ※ NOTE THAT:

    Pour la plupart des LED, il est nécessaire d'utiliser une résistance entre l'anode (+) et le VCC. La valeur de la résistance dépend des spécifications de la LED.

    Arduino - estomper la LED

    Certaines broches d'Arduino peuvent être programmées pour générer un signal PWM. Nous pouvons estomper une LED en connectant l'anode (+) de la LED à une broche d'Arduino, la cathode (-) de la LED à GND, et en programmant la génération de PWM sur la broche d'Arduino.

Diagramme de câblage

Schéma de câblage de LED Arduino

This image is created using Fritzing. Click to enlarge image

Comment programmer

  • Configurez la broche d'un Arduino en mode sortie numérique à l'aide de la fonction pinMode(). Par exemple, la broche 9 :
pinMode(9, OUTPUT);
  • Définissez la luminosité de la LED en générant le signal PWM correspondant en utilisant la fonction analogWrite().
analogWrite(9, brightness);

Là où la luminosité est une valeur de 0 à 255.

Code Arduino - Exemple de Fondu depuis l'IDE Arduino

Étapes rapides

  • Connectez l'Arduino au PC via le câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
  • Copiez le code ci-dessous et collez-le dans l'IDE Arduino
/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'Arduino.
Téléversement de code Arduino IDE
  • Voyez la luminosité du LED.

Explication du code

Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.

※ NOTE THAT:

L'exemple ci-dessus utilise la fonction delay() pour réaliser un fondu d'entrée et de sortie. La fonction delay() rend le fondu saccadé et bloque l'exécution d'autres codes. Dans les parties suivantes, nous apprendrons à réaliser un fondu d'entrée et de sortie en douceur sans bloquer l'exécution d'autres codes, en utilisant la fonction millis().

Comment estomper graduellement une LED sur une période sans utiliser delay()

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

Comment faire un fondu enchaîné d'une LED sur une période sans utiliser delay()

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

Vidéo

Défiez-vous

Changez la luminosité de la LED en utilisant un potentiomètre. Indice : Consultez Arduino - Potentiomètre.

Connaissances supplémentaires

  • Un signal PWM généré par la fonction analogWrite() fait varier l'intensité d'une LED. Cela est dû à sa haute fréquence PWM. Si nous créons une fonction personnalisée (nécessitant des connaissances avancées), qui génère un signal PWM basse fréquence, la LED clignotera au lieu de varier graduellement.
  • Résumé : Le signal PWM peut être utilisé dans Arduino pour : contrôler un servo-moteur, contrôler un moteur à courant continu, produire un son avec un buzzer piézo, faire varier l'intensité d'une LED, faire clignoter une LED...

Références de Fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!