ESP32/ESP8266 PWM avec MicroPython – Dim LED

ESP32/ESP8266 PWM avec MicroPython - Dim LED

Ce tutoriel montre comment générer des signaux PWM avec les cartes ESP32 et ESP8266 à l’aide du firmware MicroPython. Par exemple, nous allons atténuer la luminosité d’une LED en modifiant le rapport cyclique au fil du temps.

ESP32/ESP8266 PWM avec MicroPython Dim LED

Conditions préalables

Pour suivre ce tutoriel, vous devez avoir installé le firmware MicroPython sur vos cartes ESP32 ou ESP8266. Vous avez également besoin d’un IDE pour écrire et télécharger le code sur votre carte. Nous suggérons d’utiliser Thonny IDE ou uPyCraft IDE :

Schématique

Pour cet exemple, câblez une LED à votre carte ESP. Nous câblerons la LED à GPIO 5 dans les deux cartes, mais vous pouvez choisir une autre broche PWM appropriée. Voir les meilleures broches à utiliser dans notre guide de référence de brochage ESP32.

Pièces nécessaires

Voici une liste des pièces dont vous avez besoin pour construire le circuit :

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 !

ESP32ESP8266 PWM avec MicroPython Dim LED

Schéma – ESP32

Suivez le diagramme schématique suivant si vous utilisez une carte ESP32 :

ESP32 PWM avec circuit MicroPython pour atténuer la LED Dim

Schéma – ESP8266

Suivez le diagramme schématique suivant si vous utilisez une carte ESP8266 :

ESP8266 PWM avec circuit MicroPython pour atténuer la LED Dim

Scénario

Voici le script qui modifie la luminosité de la LED au fil du temps en augmentant le rapport cyclique. Ce script fonctionne avec les ESP32 et ESP8266.

# Complete project details at https://Raspberryme.com

from machine import Pin, PWM
from time import sleep

frequency = 5000
led = PWM(Pin(5), frequency)

while True:
  for duty_cycle in range(0, 1024):
    led.duty(duty_cycle)
    sleep(0.005)

Afficher le code brut

Comment fonctionne le code

Pour créer une broche PWM, importez le PWM classe en plus de la Épingler classe de la machine module.

from machine import Pin, PWM

Ensuite, créez un PWM objet appelé LED.

led = PWM(Pin(5), frequency)

Créer un PWM objet, vous devez passer comme paramètres, la broche à laquelle il est connecté, la fréquence du signal et le rapport cyclique.

  • La fréquence: La fréquence peut être une valeur comprise entre 0 et 78125. Une fréquence de 5000 Hz peut être utilisée pour contrôler la luminosité des LED.
  • Cycle de service: Le rapport cyclique peut être une valeur comprise entre 0 et 1023. Où 1023 correspond à un rapport cyclique de 100 % (pleine luminosité) et 0 correspond à un rapport cyclique de 0 % (LED éteinte).

Nous allons simplement définir le cycle de service sur le tandis que boucle, nous n’avons donc pas besoin de passer le paramètre de rapport cyclique. Si vous ne définissez pas le rapport cyclique lors de l’instanciation du PWM objet, ce sera 0 par défaut.

Pour régler le rapport cyclique, utilisez le devoir() méthode sur la PWM objet et passez le rapport cyclique comme argument :

led.duty(duty_cycle)

À l’intérieur de tandis que boucle, nous créons une pour boucle qui augmente le rapport cyclique de 1 dans chaque boucle avec un intervalle de 5 ms entre chaque changement.

for duty_cycle in range(0, 1024):
    led.duty(duty_cycle)
    sleep(0.005)

le intervalle() fonction a la syntaxe suivante :

range(start, stop, step)
  • Démarrer: un nombre qui spécifie à quelle position commencer. Nous voulons commencer avec un rapport cyclique de 0 ;
  • Arrêter: un nombre qui spécifie à quelle position nous voulons nous arrêter, en excluant cette valeur. Le rapport cyclique maximal est de 1023, car nous incrémentons 1 dans chaque boucle, la dernière valeur doit être 1023+1. Donc, nous allons utiliser 1024.
  • Étape: un nombre entier qui spécifie l’incrémentation. Par défaut, l’incrémentation est 1.

Dans chaque boucle for, nous réglons le rapport cyclique de la LED sur le courant cycle de service valeur:

led.duty(duty_cycle)

Après cela, le cycle de service variable est incrémentée de 1.

Manifestation

Enregistrez le code sur votre carte ESP en utilisant Thonny IDE ou uPyCraft IDE. La LED attachée à GPIO 5 devrait augmenter la luminosité au fil du temps.

ESP32/ESP8266 PWM avec circuit MicroPython pour atténuer la LED Dim

Emballer

Nous espérons que vous avez trouvé ce tutoriel MicroPython utile. Si vous voulez en savoir plus sur MicroPython, assurez-vous de jeter un œil à notre eBook : Programmation MicroPython avec ESP32 et ESP8266.

Si vous aimez MicroPython, vous aimerez aussi :

Merci d’avoir lu.