Note
Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts sur Facebook ! Plongez au cœur de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques grâce à l’aide de notre communauté et de notre équipe.
Apprendre & Partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux avant-goûts.
Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.
Promotions festives et tirages au sort : Participez à des tirages au sort et des promotions de vacances.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !
LED RVB
Vue d’ensemble
Dans cette leçon, nous utiliserons le PWM pour contrôler une LED RVB afin qu’elle clignote en différentes couleurs. Lorsque différentes valeurs PWM sont définies pour les broches R, G et B de la LED, sa luminosité varie. Lorsque les trois couleurs différentes sont mélangées, nous pouvons voir que la LED RVB clignote en différentes couleurs.
Composants requis
Pour ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
---|---|---|
Elite Explorer Kit |
300+ |
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
---|---|
- |
|
PWM
La modulation de largeur d’impulsion, ou PWM, est une technique pour obtenir des résultats analogiques avec des moyens numériques. Le contrôle numérique est utilisé pour créer une onde carrée, un signal basculant entre marche et arrêt. Ce motif marche-arrêt peut simuler des tensions entre marche complète (5 Volts) et arrêt (0 Volts) en changeant la proportion du temps pendant lequel le signal est en marche par rapport au temps pendant lequel le signal est en arrêt. La durée du « temps de marche » est appelée largeur d’impulsion. Pour obtenir des valeurs analogiques variables, vous changez, ou modulez, cette largeur. Si vous répétez ce motif marche-arrêt assez rapidement avec un appareil, une LED par exemple, cela ressemblerait à ceci : le signal est une tension stable entre 0 et 5V contrôlant la luminosité de la LED. (Voir la description du PWM sur le site officiel d’Arduino).
Dans le graphique ci-dessous, les lignes vertes représentent une période régulière. Cette durée ou période est l’inverse de la fréquence PWM. En d’autres termes, avec une fréquence PWM d’environ 500Hz sur Arduino, les lignes vertes mesureraient chacune 2 millisecondes.
Un appel à analogWrite() se fait sur une échelle de 0 à 255, de sorte que analogWrite(255) demande un cycle de service de 100 % (toujours allumé), et analogWrite(127) est un cycle de service de 50 % (allumé la moitié du temps), par exemple.
Vous constaterez que plus la valeur PWM est petite, plus la valeur sera petite après conversion en tension. Ensuite, la LED devient plus faible en conséquence. Par conséquent, nous pouvons contrôler la luminosité de la LED en contrôlant la valeur PWM.
Câblage
Schéma de câblage
Code
Note
Vous pouvez ouvrir le fichier
11-rgb_led.ino
sous le cheminelite-explorer-kit-main\basic_project\11-rgb_led
directement.Ou copiez ce code dans Arduino IDE.
Une fois le code téléversé avec succès, vous observerez la LED RVB clignoter dans un motif circulaire de rouge, vert et bleu au début. Elle continuera ensuite à clignoter dans l’ordre suivant : rouge, orange, jaune, vert, bleu, indigo et violet.
Analyse du code
Définir la couleur
Ici, nous utilisons la fonction color()
pour définir la couleur de la LED RVB. Dans le code, elle est configurée pour clignoter en 7 couleurs différentes.
Vous pouvez utiliser l’outil de peinture sur votre ordinateur pour obtenir la valeur RVB.
Ouvrez l’outil de peinture sur votre ordinateur et cliquez sur Modifier les couleurs.
Sélectionnez une couleur, puis vous pourrez voir la valeur RVB de cette couleur. Remplissez-les dans le code.
Note
En raison de facteurs matériels et environnementaux, les couleurs affichées sur les écrans d’ordinateur et les LED RVB peuvent varier même en utilisant les mêmes valeurs RVB.
void loop() // run over and over again { // Couleurs de base: color(255, 0, 0); // allumer la LED RVB en rouge delay(1000); // délai de 1 seconde color(0,255, 0); // allumer la LED RVB en vert delay(1000); // délai de 1 seconde color(0, 0, 255); // allumer la LED RVB en bleu delay(1000); // délai de 1 seconde // Exemples de couleurs mélangées: color(255,0,252); // allumer la LED RVB en rouge delay(1000); // délai de 1 seconde color(237,109,0); // allumer la LED RVB en orange delay(1000); // délai de 1 seconde color(255,215,0); // allumer la LED RVB en jaune ......
fonction color()
void color (int red, int green, int blue)
// la fonction génératrice de couleur
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
Définissez trois variables unsigned char, red, green et blue. Écrivez leurs valeurs à redPin
, greenPin
et bluePin
. Par exemple, color(128,0,128) consiste à écrire 128 à redPin
, 0 à greenPin
et 128 à bluePin
. Le résultat est la LED clignotant en violet.
analogWrite(): Écrit une valeur analogique (onde PWM) sur une broche. Cela n’a rien à voir avec une broche analogique, mais concerne uniquement les broches PWM. Vous n’avez pas besoin d’appeler pinMode()
pour définir la broche comme sortie avant d’appeler analogWrite()
.