Arduino Nano ESP32 - Bande de LED NeoPixel
La bande NeoPixel est comme une bande de LED RGB colorées, et vous pouvez contrôler la couleur et la luminosité de chaque LED individuellement. Dans ce guide, nous découvrirons comment utiliser un Arduino Nano ESP32 pour contrôler la bande LED RGB NeoPixel. Pour contrôler toutes les LED sur la bande NeoPixel, vous avez besoin d'une seule broche sur l'Arduino Nano ESP32.
Préparation du matériel
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 de la bande LED RGB NeoPixel
Brochage
La bande de LED RGB NeoPixel possède trois broches :
- Broche GND : doit être connectée à GND (0V)
- Broche VCC : doit être connectée à 5V de l'alimentation externe
- Broche Din : est la broche qui reçoit le signal de commande. Elle doit être connectée à une broche Arduino Nano ESP32.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Comment programmer pour une bande LED RGB NeoPixel
- Déclarez un objet NeoPixel.
#define PIN_NEO_PIXEL D2 // La broche Arduino Nano ESP32 connectée à NeoPixel
#define NUM_PIXELS 30 // Le nombre de LED (pixels) sur NeoPixel
Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
- Initialise le NeoPixel
NeoPixel.begin(); // INITIALISER l'objet bande NeoPixel (REQUIS)
- Définissez la couleur de chaque LED individuelle (appelée pixel).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
- Réglez la luminosité de toute la bande.
NeoPixel.setBrightness(200); // une valeur de 0 à 255
※ NOTE THAT:
- NeoPixel.setBrightness() est utilisé pour tous les pixels sur la bande LED. Pour régler la luminosité de chaque pixel individuellement, nous pouvons ajuster la valeur de la couleur.
- Les valeurs définies par NeoPixel.setBrightness() et NeoPixel.setPixelColor() ne prennent effet que lorsque NeoPixel.show() est appelé.
Code Arduino Nano ESP32
Le code suivant réalise les tâches suivantes :
- Il modifie séquentiellement les pixels en vert, avec une pause entre chaque pixel.
- Il éteint tous les pixels pendant une durée de deux secondes.
- Il définit simultanément tous les pixels en rouge, maintenant cet état pendant 1 seconde.
- Ce processus entier est ensuite répété indéfiniment.
/*
* Ce code Arduino Nano ESP32 a été développé par newbiely.fr
* Ce code Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-neopixel-led-strip
*/
#include <Adafruit_NeoPixel.h>
#define PIN_NEO_PIXEL D2 // The Arduino Nano ESP32 pin connected to NeoPixel
#define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel LED strip
Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
void setup() {
NeoPixel.begin(); // initialize NeoPixel strip object (REQUIRED)
}
void loop() {
NeoPixel.clear(); // set all pixel colors to 'off'. It only takes effect if pixels.show() is called
// turn pixels to green one-by-one with delay between each pixel
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel
NeoPixel.setPixelColor(pixel, NeoPixel.Color(0, 255, 0)); // it only takes effect if pixels.show() is called
NeoPixel.show(); // update to the NeoPixel Led Strip
delay(500); // 500ms pause between each pixel
}
// turn off all pixels for two seconds
NeoPixel.clear();
NeoPixel.show(); // update to the NeoPixel Led Strip
delay(2000); // 2 seconds off time
// turn on all pixels to red at the same time for two seconds
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0)); // it only takes effect if pixels.show() is called
}
NeoPixel.show(); // update to the NeoPixel Led Strip
delay(1000); // 1 second on time
// turn off all pixels for one seconds
NeoPixel.clear();
NeoPixel.show(); // update to the NeoPixel Led Strip
delay(1000); // 1 second off time
}
Étapes rapides
Pour commencer avec Arduino Nano ESP32, suivez ces étapes :
- Si vous débutez avec l'Arduino Nano ESP32, consultez le tutoriel sur comment configurer l'environnement pour l'Arduino Nano ESP32 dans l'Arduino IDE.
- Connectez les composants selon le schéma fourni.
- Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
- Lancez l'Arduino IDE sur votre ordinateur.
- Sélectionnez la carte Arduino Nano ESP32 et son port COM correspondant.
- Ouvrez le Gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques dans la barre de navigation gauche de l'Arduino IDE.
- Recherchez "Adafruit NeoPixel", puis trouvez la bibliothèque NeoPixel par Adafruit.
- Cliquez sur le bouton Install pour installer la bibliothèque NeoPixel.
- Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
- Cliquez sur le bouton Upload de l'Arduino IDE pour téléverser le code sur Arduino Nano ESP32
- Vérifiez l'effet de la bande LED