Certaines parties de ce site Web ne sont pas encore disponibles dans votre langue. Nous travaillons à résoudre ce problème et nous nous excusons pour tout inconvénient.
Tutoriel ESP32 31/55 - Projet Bande LED avec évitement d'obstacles | Kit d'apprentissage IoT ESP32 de SunFounder
Dans ce tutoriel, nous allons créer un projet utilisant un microcontrôleur ESP32 et une bande LED WS2812 qui peut changer de direction en fonction de la détection d'obstacles. Lorsque la bande LED avance, elle affichera des couleurs aléatoires, et en détectant un obstacle, elle passera à une couleur prédéterminée et inversera sa direction. Ce projet met en valeur les capacités de l'ESP32 en combinaison avec un capteur infrarouge de détection d'obstacles.
ESP32-31-lumière-fluide-principal2
Tout au long de ce tutoriel, nous aborderons les composants matériels nécessaires, les instructions de câblage et le code requis pour donner vie à ce projet. Pour une explication plus visuelle, assurez-vous de regarder la vidéo liée ci-dessous (dans la vidéo à :00).
Matériel expliqué
Ce projet nécessite plusieurs composants, y compris le microcontrôleur ESP32, une bande LED WS2812 et un capteur d'évitement d'obstacles infrarouge. L'ESP32 est un microcontrôleur puissant qui dispose du Wi-Fi et du Bluetooth intégrés, ce qui le rend parfait pour les applications IoT. La bande LED WS2812 est une bande LED RGB programmable qui permet un contrôle individuel de chaque LED, nous permettant de créer des effets d'éclairage dynamiques.
Le capteur d'évitement d'obstacles infrarouges fonctionne en émettant de la lumière infrarouge et en détectant les réflexions des objets proches. Lorsqu'un obstacle est détecté, le capteur change son état de sortie, permettant à l'ESP32 de réagir en conséquence en modifiant le comportement de la bande LED.
Détails de la fiche technique
Fabricant
WS2812B
Numéro de pièce
WS2812B
Tension logique/IO
3,3 V (typ.)
Tension d'alimentation
5 V (typiquement)
Courant de sortie (par canal)
20 mA (max)
Courant de pointe (par canal)
60 mA (max)
Directives sur la fréquence PWM
400 Hz (typ.)
Seuils logiques d'entrée
0,3 Vcc (haut), 0,1 Vcc (bas)
Chute de tension / RDS(on)/ saturation
1,2 V (max)
Limites thermiques
85 °C (max)
Paquet
Montage en surface
Remarques / variantes
Disponible en différentes longueurs et densités.
Assurez-vous que la bande LED est alimentée avec 5 V pour des performances optimales.
Utilisez une résistance appropriée pour la broche de données afin de prévenir des problèmes d'intégrité du signal.
Soyez prudent quant aux limites de courant de sortie pour éviter la surchauffe.
Détachez correctement l'alimentation pour prévenir les pics de tension.
Ajustez le capteur infrarouge avec soin pour atteindre la plage de détection souhaitée.
Instructions de câblage
ESP32-31-flowing-light-wiring
Pour câbler les composants, commencez par le capteur d'évitement d'obstacles infrarouge. Connectez la broche de sortie du capteur à la broche.25sur l'ESP32. La broche du milieu doit être connectée à la masse, et la dernière broche (VCC) doit être connectée à une source d'alimentation de 3,3 V.
ESP32-31-schéma-lumière-fluide
Ensuite, pour la bande LED WS2812, connectez la broche de données (généralement le fil jaune) à la broche14sur l'ESP32. Le fil rouge doit être connecté à une source d'alimentation de 5 V, et le fil noir doit être connecté à la masse. Assurez-vous de bien sécuriser toutes les connexions pour éviter tout fil lâche.
Exemples de code et guide étape par étape
Voici un aperçu bref du code qui fait fonctionner ce projet. Tout d'abord, nous définissons le nombre de pixels dans la bande LED et la broche de données utilisée pour la communication :
#define NUM_PIXELS 8
#define DATA_PIN 14
Dans lesetup()fonction, nous initialisons la bande LED et le capteur infrarouge :
Dans leloop()fonction, nous vérifions si un obstacle est détecté et contrôlons la bande LED en conséquence :
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
} else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}
Ce code permet à la bande LED d'afficher des couleurs aléatoires lorsqu'elle avance et de changer de direction lorsqu'un obstacle est détecté. Le code complet est chargé en dessous de l'article, alors n'oubliez pas de le consulter pour tous les détails.
Démonstration / À quoi s'attendre
Lorsque la configuration est complète et que le code est téléchargé, la bande LED doit commencer à afficher des couleurs aléatoires tout en avançant. Lorsqu'un obstacle est détecté, la bande passera à une couleur prédéfinie (comme le vert) et inversera sa direction. Si l'obstacle est retiré, la bande recommencera à avancer avec des couleurs aléatoires. Soyez conscient que la portée de détection du capteur infrarouge peut varier en fonction de l'alimentation utilisée (dans la vidéo à 10:30).
Horodatages vidéo
00:00 Début
2:14 Introduction au projet
4:58 Câblage expliqué
7:41 Ajustement du capteur d'évitement d'obstacles
10:03 Explication du code Arduino
15:40 Sélection de la carte ESP32 et du port COM dans l'Arduino IDE