ESP8266 NodeMCU PWM avec Arduino IDE – Dim LED (sortie analogique)

ESP8266 NodeMCU PWM avec Arduino IDE - Dim LED (sortie analogique)

Ce tutoriel montre comment générer des signaux PWM avec ESP8266 NodeMCU à l’aide de l’IDE Arduino. Par exemple, nous allons atténuer la luminosité des LED en modifiant le rapport cyclique au fil du temps.

Broches de modulation de largeur d'impulsion (PWM) ESP8266 avec Arduino IDE

Pour générer un signal PWM sur les broches ESP8266 avec Arduino IDE, utilisez analogWrite (broche, valeur). La valeur est un entier compris entre 0 et 255.

Pour les versions ESP8266 antérieures à 3.0, la plage par défaut est comprise entre 0 et 1023. La plage PWM peut être modifiée en appelant analogWriteRange (nouvelle_plage).

Vous pourriez également aimer lire d’autres guides sur PWM :

Avant de poursuivre ce didacticiel, vous devez avoir installé le module complémentaire ESP8266 dans votre IDE Arduino. Suivez le tutoriel suivant pour installer ESP8266 dans Arduino IDE.

ESP8266 NodeMCU PWM (modulation de largeur d’impulsion)

Les GPIO ESP8266 peuvent être réglés pour produire 0 V ou 3,3 V, mais ils ne peuvent produire aucune tension entre les deux. Cependant, vous pouvez produire de « fausses » tensions de niveau moyen à l’aide de la modulation de largeur d’impulsion (PWM), ce qui vous permettra de produire différents niveaux de luminosité des LED pour ce projet.

Si vous alternez très rapidement la tension d’une LED entre HIGH et LOW, vos yeux ne peuvent pas suivre la vitesse à laquelle la LED s’allume et s’éteint ; vous verrez simplement quelques gradations de luminosité.

ESP8266 Fade LED avec modulation de largeur d'impulsion (PWM) utilisant la fonction analogWrite

C’est essentiellement ainsi que fonctionne PWM – en produisant une sortie qui change entre HIGH et LOW à une fréquence très élevée.

Le rapport cyclique est la fraction de la période de temps pendant laquelle la LED est réglée sur HIGH. La figure suivante illustre le fonctionnement de PWM.

Comment fonctionne la modulation de largeur d'impulsion (PWM) sur ESP8266 pour faire disparaître une LED

Un rapport cyclique de 50 % donne une luminosité de 50 % de la LED, un rapport cyclique de 0 signifie que la LED est complètement éteinte et un rapport cyclique de 100 signifie que la LED est complètement allumée. Changer le rapport cyclique est la façon dont vous produisez différents niveaux de luminosité.

analogWrite()

Pour produire un signal PWM sur une broche donnée, vous utilisez la fonction suivante :

analogWrite(pin, value);
  • épingler: PWM peut être utilisé sur les broches 0 à 16
  • valeur: doit être compris entre 0 et GAMME PWM, qui est 255 par défaut. Lorsque la valeur est 0, PWM est désactivé sur cette broche. Une valeur de 255 correspond à un rapport cyclique de 100 %

Vous pouvez modifier la plage PWM en appelant :

analogWriteRange(new_range);

Par défaut, la fréquence ESP8266 PWM est de 1 kHz. Vous pouvez modifier la fréquence PWM avec :

analogWriteFreq(new_frequency);

Les valeurs valides sont comprises entre 100 Hz et 40 000 Hz.

ESP8266 NodeMCU Dim LED avec PWM

Dans cette section, nous allons construire un exemple simple qui atténue une LED afin que vous voyiez comment utiliser PWM dans vos projets. Vous aurez besoin des pièces suivantes :

Si vous utilisez un ESP-01vous avez besoin d’un Programmeur FTDI ou un Adaptateur série pour télécharger le code.

Vous pouvez utiliser les liens précédents ou accéder directement à MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !

1643813284 685 ESP8266 NodeMCU PWM avec Arduino IDE Dim LED sortie

Schématique

Après avoir téléchargé le code, câblez une LED à votre ESP8266 comme indiqué dans le schéma suivant. Nous connectons la LED à GPIO 2mais vous pouvez utiliser tout autre GPIO approprié.

ESP8266 LED connectée au schéma de câblage GPIO 2

Si vous utilisez un ESP-01, vous pouvez vérifier le brochage de la carte ici.

ESP8266 NodeMCU Code PWM

Copiez le code sur votre IDE Arduino et téléchargez-le sur votre ESP8266.

/*********
  Rui Santos
  Complete project details at https://www.raspberryme.com  
*********/

const int ledPin = 2; 

void setup() {
  
}

void loop() {
  // increase the LED brightness
  for(int dutyCycle = 0; dutyCycle < 255; dutyCycle++){   
    // changing the LED brightness with PWM
    analogWrite(ledPin, dutyCycle);
    delay(1);
  }

  // decrease the LED brightness
  for(int dutyCycle = 255; dutyCycle > 0; dutyCycle--){
    // changing the LED brightness with PWM
    analogWrite(ledPin, dutyCycle);
    delay(1);
  }
}

Afficher le code brut

Comment fonctionne le code

Continuez à lire cette section pour savoir comment fonctionne le code ou passez à la section suivante.

Commencez par définir la broche à laquelle la LED est attachée. Dans ce cas, la LED est attachée à GPIO 2 (D4).

const int ledPin = 2;

Dans le boucler()vous faites varier le rapport cyclique entre 0 et 255 pour augmenter la luminosité de la LED.

for(int dutyCycle = 0; dutyCycle < 255; dutyCycle++){ 
  // changing the LED brightness with PWM
  analogWrite(ledPin, dutyCycle);
  delay(1);
}

Et puis, entre 255 et 0 pour diminuer la luminosité.

for(int dutyCycle = 255; dutyCycle > 0; dutyCycle--){
  // changing the LED brightness with PWM
  analogWrite(ledPin, dutyCycle);
  delay(1);
}

Pour régler la luminosité de la LED, vous devez utiliser analogWrite() fonction qui accepte comme arguments GPIO où vous voulez obtenir le signal PWM et une valeur entre 0 et 255 pour définir le rapport cyclique.

Télécharger le code

Dans votre IDE Arduino, accédez à Outils > Conseil et sélectionnez votre modèle ESP8266 (si vous utilisez un ESP-01, sélectionnez « Generic ESP8266 Module »).

Aller à Outils > Port et sélectionnez le port COM auquel l’ESP8266 est connecté.

Si vous utilisez un ESP-01, vous avez besoin d’un programmeur FTDI ou d’un adaptateur série pour télécharger le code. Voici les connexions que vous devez effectuer :

ESP8266 ESP-01 connecté au programmeur FTDI pour télécharger un nouveau croquis Arduino
ESP-01 Programmeur FTDI
RX TX
TX RX
CH_PD 3.3V
GPIO 0 Terre
VCC 3.3V
Terre Terre

Manifestation

Après avoir téléchargé votre croquis, la LED connectée à GPIO 2 devrait augmenter et diminuer sa luminosité au fil du temps.

Schéma de câblage du circuit PWM à LED décolorée ESP8266

Vous pouvez vous connecter GPIO 2 à un oscilloscope pour voir comment le signal PWM change dans le temps.

ESP8266 Fading LED Circuit PWM Schéma de câblage Démonstration de l'oscilloscope

Lisez notre guide d’achat : Les meilleurs oscilloscopes pour les débutants et les amateurs d’électronique.

Conclusion

Nous espérons que vous avez trouvé ce guide sur l’utilisation de l’ESP8266 PWM utile. Outre le contrôle de la luminosité des LED, PWM peut également être utilisé pour contrôler la vitesse du moteur à courant continu.

Vous aimerez peut-être aussi essayer nos autres projets :

Si vous aimez ESP8266, assurez-vous de jeter un œil à nos ressources :

Merci d’avoir lu.