Vous êtes sur la page 1sur 10

26/05/2020 Débuter avec les Led sur Arduino.

Piloter, faire varier l'intensité LED, Led RGB

Débuter avec les Led sur Arduino. Piloter, faire varier l’intensité LED, Led RGB
7 mars 2016 Un Commentaire Led

Dans cet article, nous allons apprendre comment utiliser des LED (DEL en Français) à l’aide d’un Arduino Uno R3.
Tout d’abord, nous allons réaliser un circuit et le code pour allumer/éteindre une LED à l’aide d’un bouton poussoir. Nous
verrons en suite comment faire varier l’intensité lumineuse d’une Led en utilisant une sortie PWM de l’Arduino. Enfin, nous
apprendrons comment piloter une LED de couleur RGB (RVB en français).

Allumer et éteindre une LED avec un bouton poussoir à l’aide d’un Arduino
Uno

Cet exemple s’adresse aux débutants. Nous allons apprendre comment allumer et éteindre une LED en appuyant sur un
bouton poussoir.

Matériel nécessaire

Pour réaliser le montage, vous aurez besoin du matériel suivant.

Arduino Uno R3

breadboard  (400 points)

DEL (couleur au choix)

https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 1/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB

Des câbles Dupont

Bouton poussoir

Résistance 220 ohm

Résistance 10000 ohms (10 kΩ)

Tout le matériel nécessaire pour réaliser cet exemple est disponible dans le Starter Kit Arduino.

Circuit

https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 2/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB

Comment alimenter une Led avec un Arduino ?

La tension de sortie de l’Aduino Uno étant en 5V, il est nécessaire d’inclure dans le montage une résistance entre la broche
de l’Arduino et la Led. Pour déterminer la résistance, il faut connaître la tension d’alimentation de la Led. Voici un tableau
récapitulatif de la tension d’alimentation typique en fonction de la couleur et du diamètre de la Led.

Couleur Longueur d’onde (nm) Tension (V) pour diamètre  3mm Tension(V) pour diamètre  5mm

Rouge 625-630  1,9-2,1 2,1-2,2

Bleu 460-470 3,0-3,2 3,2-3,4

Vert 520-525 2,0-2,2 2,0-2,2

Jaune 585-595 2,0-2,2 3,0-3,2

Blanc 460-470 3,0-3,2 1,9-2,1

Code du projet

Le code suivant permet d’allumer et d’éteindre la led en appuyant sur un bouton poussoir. Voici comment le code
fonctionne.

L’Arduino lit en continu un changement d’état du bouton. Comme ce n’est pas un bouton ON/OFF, il faut gérer le
changement d’état de la variable intermédiaire buttonState. Pour cela, on enregistre le temps (avec la commande millis())
dans la variable lastDebounceTime. Si le temps entre 2 clics sur le bouton est supérieur à la variable debounceDelay, alors
on change l’état de buttonState et on inverse l’état de la sortie pilotant la Led.

https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 3/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB

/*
Allumer et éteindre une Led à l'aide d'un bouton poussoir utilisé comme un bouton On/Off
Switch on/off a led with a push button
Projets DIY - mars 2016 - https://www.projetsdiy.fr
*/

//Constantes
const int ledPin = 3;
const int boutonPin = 2;
int lastDebounceTime = 0;
int lastButtonState = 0;
int debounceDelay = 10; // Filtre : plus le délai est important moins on détectera des clic ra
int ledState = 0;
int buttonState = 0;
int reading = 0;

void setup() {
// Initialise le Pin comme une sortie | Initialize the digital pin as an output with pinMode()
pinMode(ledPin, OUTPUT);
}

void loop() {
reading = digitalRead(boutonPin); // On lit l'état du bouton | Button state reading
if (reading != lastButtonState) { // L'état est différent par rapport à la boucle précédent
lastDebounceTime = millis(); // Enregistre le temps | record time
lastButtonState = reading; // enregistre l'état | record the new state
}
// On change l'état de la led uniquement si le temps écoulé entre deux appuis sur le bouton > d
// LED status is changed only if the time between two presses of the button > debounceDelay
if ((millis() - lastDebounceTime) > debounceDelay) {
if (buttonState != lastButtonState) {
buttonState = lastButtonState;
if (buttonState == HIGH) {
ledState = !ledState;
digitalWrite(ledPin, ledState);
}
}
}
}

Faire varier l’intensité lumineuse d’une LED avec un Arduino Uno

Pour faire varier l’intensité lumineuse d’une Led, nous allons utiliser une sortie PWM (Pulse Width Modulation) de
l’Arduino. L’Arduino Uno dispose de 6 sorties digitales qui peuvent être utilisées comme sorties PWM (3,5,6,9,10 et 11). Le
schéma ci-contre montre comment fonctionne un signal PWM. Lorsqu’on envoi la valeur 255 sur le Pin de la Led, celle-ci
reçoit en continue une tension de 5V/. Ensuite, lorsqu’on diminue la valeur, l’Arduino génère un signal carré, c’est à dire
que pendant un certain temps, la tension est de 5 et, durant une autre période elle est de 0V. Plus on diminue la valeur,
plus le temps entre deux pics à 5V sera long. Finalement, plus la valeur diminue,
moins la Led va s’allumer longtemps. La fréquence étant suffisamment rapide, l’oeil à
l’illusion que l’intensité de la Led diminue. Vous pourrez la voir légèrement clignoter
en diminuant suffisamment le potentiomètre.

Matériel nécessaire
https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 4/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB

Pour réaliser le montages, vous aurez besoin du matériel suivant (liens commerciaux)
:

Arduino Uno R3

Breadboard  (400 points)

DEL (couleur au choix)

Des câbles Dupont

Résistance 220 ohm

Tout le matériel nécessaire pour réaliser cet exemple est disponible dans le Starter Kit Arduino.

Circuit

https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 5/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB

Code

L’Arduino lit en continue la valeur du potentiomètre (entre 0 et 1023) toutes les 100 ms. La fonction map remet à l’échelle
la valeur envoyée à la sortie PWM entre 0 et 254.

/*
Faire varier l'intensité lumineuse d'une led à l'aide d'un potentiomètre
How to fade a led intensity with a potentiometer
Projets DIY - mars 2016 - https://www.projetsdiy.fr
*/

//Constantes
const int ledPin = 3;
const int potPin = 0; // Analog input pin that the potentiometer is attached to
int potValue = 0; // value read from the pot
int valPWM = 0;

void setup() {
Serial.begin(9600);
// Initialise le Pin comme une sortie | Initialize the digital pin as an output with pinMode()
pinMode(ledPin, OUTPUT);
}

void loop() {
potValue = analogRead(potPin); // Valeur du potentiomètre | Read the pot value
valPWM = map(potValue, 0, 1023, 0, 254); // Remise à l'échelle entre 0 et 254
analogWrite(ledPin, valPWM); // Ecrit sur la sortie PWM la valeur remise à l'échel
Serial.println(valPWM); // Pour connaître la valeur envoyée à la sortie PWM
delay(100);
}

Utiliser une Led RVG (RBG) avec un Arduino

Une Led RVG (Rouge – Vert – Bleu ou Red – Green – Blue) possède 4 pins, un pour chaque
couleur et une cathode commune. Une Led RVG contient en fait 3 Leds (une pour chaque
couleur) qui une fois combinées produisent une couleur. Pour le circuit, vous devez considérer
que vous câblez 3 Leds différentes. Il vous faudra donc 3 résistances (une pour chaque couleur
primaire). Le diagramme suivant montre le repérage de chaque Pin (celui-ci semble varier d’un
fabricant à l’autre !).

Matériel nécessaire

Pour réaliser le montages, vous aurez besoin du matériel suivant (liens commerciaux) :

Arduino Uno R3

https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 6/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB
Breadboard  (400 points)

DEL RVB (RGB)

Des câbles Dupont

Résistance 220 ohm

Tout le matériel nécessaire pour réaliser cet exemple est disponible dans le Starter Kit Arduino.

Circuit

Attention. Le pin correspondant à chaque couleur peut varier d’un fabricant à l’autre. Le code ci-dessous vous aidera à
identifier le Pin de chaque couleur correspondant à votre Led.

https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 7/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB

Code

Le code suivant vous permet d’allumer chaque couleur indépendamment les unes des autres. J’ai utilisé le code du 1er
exemple. Le code n’est pas optimal mais suffisant pour s’amuser avec la Led RVB et vérifier le Pin correspondant à chaque
couleur.

/*
Comment utiliser une Led RVB
How to use an RGB Led
Projets DIY - mars 2016 - https://www.projetsdiy.fr
*/

//Constantes
const int btRed = 2;
const int btGreen = 3;
const int btBlue = 4;
const int RED_PIN = 11;
const int GREEN_PIN = 9;
const int BLUE_PIN = 10;
int lastDebounceTime = 0;
int lastButtonState = 0;
int debounceDelay = 100; // Filtre : plus le délai est important moins on détectera un clic ra
int ledStateRed = 0;
int ledStateGreen = 0;
https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 8/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB
int ledStateBlue = 0;
int buttonState = 0;
int reading = 0;

void setup() {
// Initialise le Pin comme une sortie | Initialize the digital pin as an output with pinMode()
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}

void loop() {

// Rouge | Red
reading = digitalRead(btRed);
if (reading != lastButtonState) {
lastDebounceTime = millis();
lastButtonState = reading;
}

if ((millis() - lastDebounceTime) > debounceDelay) {


if (buttonState != lastButtonState) {
buttonState = lastButtonState;
if (buttonState == HIGH) {
ledStateRed = !ledStateRed;
digitalWrite(RED_PIN, ledStateRed);
}
}
}

// Vert | Green
reading = digitalRead(btGreen);
if (reading != lastButtonState) {
lastDebounceTime = millis();
lastButtonState = reading;
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (buttonState != lastButtonState) {
buttonState = lastButtonState;
if (buttonState == HIGH) {
ledStateGreen = !ledStateGreen;
digitalWrite(GREEN_PIN, ledStateGreen);
}
}
}

// Bleu | Blue
reading = digitalRead(btBlue);
if (reading != lastButtonState) {
lastDebounceTime = millis();
lastButtonState = reading;
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (buttonState != lastButtonState) {
buttonState = lastButtonState;
if (buttonState == HIGH) {
ledStateBlue = !ledStateBlue;
digitalWrite(BLUE_PIN, ledStateBlue);
}
}
}
}

Une sélection d’assortiments de Led et de composants pour débuter

https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 9/10
26/05/2020 Débuter avec les Led sur Arduino. Piloter, faire varier l'intensité LED, Led RGB

https://projetsdiy.fr/led-allumer-intensite-rgb-arduino/ 10/10

Vous aimerez peut-être aussi