ESP32/ESP8266 PWM con MicroPython – Atenuación de LED

¿Quieres aprender a controlar la intensidad de un LED utilizando PWM con MicroPython en tu ESP32 o ESP8266? En este artículo te enseñamos paso a paso cómo llevar a cabo la atenuación de un LED de forma sencilla y efectiva. ¡Sigue leyendo para descubrir cómo hacerlo!

Este tutorial muestra cómo generar señales PWM con las placas ESP32 y ESP8266 usando el firmware MicroPython. Como ejemplo, atenúemos el brillo de un LED cambiando el ciclo de trabajo con el tiempo.

ESP32/ESP8266 PWM con MicroPython – Atenuación de LED

requisitos

Para seguir este tutorial, debe tener instalado el firmware MicroPython en sus placas ESP32 o ESP8266. También necesitarás un IDE para escribir el código y subirlo a tu placa. Recomendamos utilizar Thonny IDE o uPyCraft IDE:

  • IDE de Thonny:
    • Instalación y primeros pasos con Thonny IDE
    • Actualización del firmware MicroPython con esptool.py
  • IDE de UpyCraft:
    • Instale uPyCraft IDE (Windows, Mac OS X, Linux)
    • Flashear/cargar firmware MicroPython a ESP32 y ESP8266

Esquema

Para este ejemplo, conectará un LED a su placa ESP. Conectamos el LED con él. GPIO5 en ambas placas, pero puedes elegir otro pin PWM adecuado. Para conocer los mejores pines a utilizar, consulte nuestra Guía de referencia de distribución de pines ESP32.

Piezas requeridas

Aquí hay una lista de las piezas que necesitará para construir el circuito:

Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!

ESP32/ESP8266 PWM con MicroPython – Atenuación de LED

Diagrama de cableado – ESP32

Siga el siguiente diagrama esquemático si está utilizando una placa ESP32:

ESP32/ESP8266 PWM con MicroPython – Atenuación de LED

Diagrama de circuito – ESP8266

Siga el siguiente esquema si está utilizando una placa ESP8266:

ESP32/ESP8266 PWM con MicroPython – Atenuación de LED

guion

Aquí está el script que cambia el brillo del LED con el tiempo aumentando el ciclo de trabajo. Este script funciona con ESP32 y ESP8266.

# Complete project details at https://RandomNerdTutorials.com/micropython-programming-with-esp32-and-esp8266/

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)

Ver código sin formato

Así es como funciona el código

Para crear un pin PWM, importe el PWM clase además de la Bolígrafo clase de la máquina Módulo.

from machine import Pin, PWM

Luego crea uno PWM Objeto nombrado CONDUJO.

led = PWM(Pin(5), frequency)

Aquí se explica cómo crear uno. PWM Objeto al que debes pasar como parámetros el pin al que está conectado, la frecuencia de la señal y el ciclo de trabajo.

  • frecuencia: La frecuencia puede tener un valor entre 0 y 78125. El brillo del LED se puede controlar con una frecuencia de 5000 Hz.
  • nivel de utilización: El ciclo de trabajo puede tener un valor entre 0 y 1023. 1023 corresponde a un ciclo de trabajo del 100% (brillo máximo) y 0 a un ciclo de trabajo del 0% (LED apagado).

Simplemente configuramos el ciclo de trabajo en el mientras bucle, por lo que no necesitamos pasar el parámetro del ciclo de trabajo. Si utiliza el ciclo de trabajo al crear una instancia del PWM Objeto, el valor predeterminado es 0.

Para configurar el ciclo de trabajo, utilice el Deber() método en el PWM objeto y pasar el ciclo de trabajo como argumento:

led.duty(duty_cycle)

Dentro de mientras Bucle, creemos uno. para Lazo que aumenta el ciclo de trabajo en 1 en cada lazo, con un intervalo de 5 ms entre cada cambio.

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

El Rango() La función tiene la siguiente sintaxis:

range(start, stop, step)
  • comenzar: un número que indica por dónde empezar. Queremos comenzar con un ciclo de trabajo de 0;
  • Para detener: un número que indica en qué posición queremos detenernos, excluyendo este valor. El ciclo de trabajo máximo es 1023 porque incrementamos en 1 en cada bucle. El último valor debe ser 1023+1. Entonces usamos 1024.
  • Paso: un número entero que indica el incremento. Por defecto el incremento es 1.

En cada bucle for configuramos el ciclo de trabajo del LED al actual nivel de utilización Valor:

led.duty(duty_cycle)

Después de eso nivel de utilización La variable se incrementa en 1.

demostración

Guarde el código en su placa ESP usando Thonny IDE o uPyCraft IDE. El LED encendido GPIO5 El brillo debería aumentar con el tiempo.

ESP32/ESP8266 PWM con MicroPython – Atenuación de LED

Envolver

Esperamos que este tutorial de MicroPython le haya resultado útil. Si desea obtener más información sobre MicroPython, asegúrese de consultar nuestro libro electrónico: Programación MicroPython con ESP32 y ESP8266.

Si te gusta MicroPython, también te puede gustar:

  • GPIO ESP32/ESP8266 explicados con MicroPython
  • ESP32/ESP8266 Entradas digitales y salidas digitales con MicroPython
  • ESP32/ESP8266 Valores medidos analógicos con MicroPython
  • Servidor web ESP32/ESP8266 MicroPython: salidas de control

Gracias por leer.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded





Atenuación de LED con ESP32/ESP8266 PWM en MicroPython – Preguntas Frecuentes

Preguntas Frecuentes

¿Qué es PWM?

El PWM (Pulse Width Modulation) es una técnica para controlar la potencia entregada a dispositivos como LEDs, motores, entre otros. Consiste en variar el ciclo de trabajo de una señal cuadrada para ajustar la intensidad lumínica o la velocidad de un motor.

¿Por qué es importante la atenuación de LED?

La atenuación de un LED permite controlar la intensidad de la luz emitida, lo cual es útil en aplicaciones donde se requiere ajustar el brillo. Por ejemplo, en iluminación inteligente o en proyectos de electrónica DIY.

¿Por qué utilizar MicroPython en ESP32 y ESP8266 para generar PWM signals?

MicroPython es un lenguaje de programación ligero y fácil de usar que se ejecuta en microcontroladores como el ESP32 y ESP8266. Permite programar de manera sencilla funciones como la generación de señales PWM para controlar dispositivos como LEDs de forma eficiente y rápida.

¿Qué materiales necesito para seguir el tutorial?

Para seguir el tutorial, necesitarás un ESP32 o ESP8266 con firmware de MicroPython instalado, una LED de 5 mm, una resistencia de 330 ohmios, una placa de pruebas y cables jumper.

¿Cómo puedo instalar MicroPython en mi ESP32 o ESP8266?

Puedes instalar MicroPython en tu ESP32 o ESP8266 siguiendo las instrucciones proporcionadas en los IDE recomendados: Thonny IDE y uPyCraft IDE. Estos IDEs te permitirán escribir y subir el código a tu placa de forma sencilla.

¿Cuál es la mejor frecuencia para controlar la atenuación de un LED?

La frecuencia recomendada para controlar la atenuación de un LED es de 5000 Hz, ya que permite ajustar el brillo de manera suave y sin parpadeos molestos.

¿Cuál es la diferencia entre el ESP32 y el ESP8266 para generar señales PWM?

Si bien ambos microcontroladores son capaces de generar señales PWM, el ESP32 ofrece más opciones de pines con soporte PWM, lo que lo hace más versátil para proyectos que requieren control preciso de la intensidad lumínica.

¿Qué otros proyectos puedo realizar con MicroPython en ESP32 y ESP8266?

Además de la atenuación de LED, con MicroPython en ESP32 y ESP8266 puedes realizar proyectos como control de salidas digitales, lecturas analógicas, y hasta crear servidores web para controlar dispositivos de forma remota.


4 comentarios en «ESP32/ESP8266 PWM con MicroPython – Atenuación de LED»

Deja un comentario