Les LED haute puissance sont largement utilisées dans les projets d'éclairage, des lampes de poche aux bandes lumineuses en passant par les indicateurs de signalisation. Généralement, un seul transistor permet de commuter ou de faire varier l'intensité des LED haute puissance, mais DriveCell, un minuscule module en pont en H intégré au plus petit module, offre une alternative tout en supportant jusqu'à 1,8 A de courant continu.
Dans ce guide, nous explorerons comment DriveCell peut être utilisé pour contrôler des LED haute puissance ou des bandes LED monochromes, discuterons des configurations de câblage et démontrerons un effet de fondu à l'aide de sa bibliothèque.
DriveCell est construit autour du pont en H DRV8837, doté de quatre transistors en forme de « H » permettant un courant bidirectionnel. Un seul transistor suffit pour atténuer la luminosité des LED haute puissance. Si vous recherchez une solution compacte, DriveCell peut gérer jusqu'à 1,8 A de courant continu et s'intègre facilement aux microcontrôleurs.
Avant de connecter votre LED, il est essentiel de comprendre les limitations électriques de DriveCell :
Remarque : en matière d’éclairage, DriveCell est uniquement idéal pour contrôler la luminosité des bandes LED monochromes ou des LED haute puissance individuelles.
Voici comment câbler une seule LED ou une bande LED à DriveCell :
Pour ajuster dynamiquement la luminosité des LED, DriveCell propose une bibliothèque logicielle. Voici un exemple d'effet de fondu.
L'exemple suivant montre comment faire apparaître et disparaître progressivement une LED à l'aide de DriveCell :
#include <DriveCell.h>
#define IN1_pin1 2
#define IN1_pin2 3
DriveCell LED(IN1_pin1, IN1_pin2); /* Pin2 will output the PWM signal, and Pin3 will be connected to 0V */
uint16_t led_brightness = 0;
bool led_brightness_flag = 1;
void setup() {
LED.Init(); /* Initialize the LED */
}
void loop() {
delay(10); /* Ajustez ce délai pour modifier la vitesse de fondu */
si (led_brightness_flag == 1) {
si (luminosité_led < 100U) {
led_brightness++;
} autre {
led_brightness_flag = 0;
}
} autre {
si (luminosité_led > 1U) {
led_brightness--;
} autre {
led_brightness_flag = 1;
}
}
LED.Drive(0, led_brightness); /* Affiche le nouveau niveau de luminosité */
}
Init()
→ Initialise DriveCell et configure les broches d'entréeDrive(direction, brightness)
→ Contrôle la luminosité des LED :
direction
→ 0
(polarité fixe pour les LED)brightness
→ Niveau de gradation (0 à 100 %)Ce code augmente et diminue progressivement la luminosité de la LED, créant un effet de décoloration douce.
⚠ Remarque : la fonction Drive() est uniquement compatible avec ESP32 et CodeCell, car elle utilise un minuteur PWM haute vitesse.
Vous trouverez ci-dessous un autre exemple qui peut être utilisé avec d’autres microcontrôleurs comme l’Arduino Uno :
#include <DriveCell.h>
#define IN1_pin1 2
#define IN1_pin2 3
DriveCell myLED(IN1_pin1, IN1_pin2);
void setup() {
myLED.Init();
}
void loop() {
myLED.Run(1000); // Blink LED on and off every 1 second
}
Cet exemple est tout simplement allume et éteint la LED toutes les secondes.
Le petit module DriveCell simplifie et accélère le contrôle des LED haute puissance ! Consultez le dépôt GitHub DriveCell pour plus d'exemples de code et de documentation technique !
Soyez le premier informé des nouveaux projets et bénéficiez d'offres intéressantes !
© 2025 Microbots.