Cesbol Ingeniería
MODULACION DE ANCHO POR PULSO
PWM
La modulación de ancho de pulso (PWM) es una técnica mediante la cual se varía el
ancho de un pulso mientras se mantiene constante la frecuencia de la onda.
Genera señales de reloj (pulsos) para controlar la velocidad de motores DC, crear
protocolos de comunicación, manejo de modulo( led RGB, sensores, otros).
Generación PWM
Un período de un pulso consta de un ciclo ON (VCC) y un ciclo OFF (GND). La fracción para
la cual la señal está encendida durante un período se conoce como ciclo de trabajo .
Por ejemplo, un pulso con un período de 10 ms permanecerá ENCENDIDO (alto) durante 2
ms. Por lo tanto, el ciclo de trabajo será
D = 2 ms / 10 ms = 20%
OSCAR AIZA – 76206976
https://www.facebook.com/ozz999
1
Cesbol Ingeniería
ESP8266:
ESP8266 basado en NodeMCU tiene la funcionalidad de interfaces PWM a través de la
programación de software. Se logra con el método de interrupción del temporizador. El
rango de frecuencia PWM para ESP8266 es ajustable hasta 1KHz.
Pines PWM en el kit NodeMCU
Función Arduino para NodeMCU PWM
analogWrite(pin, dutycycle): Habilita el software PWM en el pin especificado. el ciclo de
trabajo está en el rango de 0 a PWMRANGE, es decir, 1023 por defecto.
analogWrite(pin, 0): Desactiva PWM en el pin especificado.
analogWriteRange(new_range): Esta función se utiliza para cambiar el rango de PWM (ciclo
de trabajo).
analogWriteFreq(new_frequency): La frecuencia PWM es de 1 kHz por defecto. Llame a
esta función para cambiarla con una nueva frecuencia. La frecuencia PWM está en el rango
de 1 - 1000Khz.
ESP32:
El ESP32 tiene un controlador LED PWM con 16 canales independientes que se pueden
configurar para generar señales PWM con diferentes propiedades.
1. Primero, debe elegir un canal PWM. Hay 16 canales de 0 a 15.
2. Luego, debe configurar la frecuencia de la señal PWM, está bien usar una frecuencia de
5000 Hz.
OSCAR AIZA – 76206976
https://www.facebook.com/ozz999
2
Cesbol Ingeniería
3. También necesita configurar la resolución del ciclo de trabajo de la señal: tiene
resoluciones de 1 a 16 bits. Usaremos una resolución de 8 bits, lo que significa que puede
controlar el brillo del LED usando un valor de 0 a 255.
4. A continuación, debe especificar en qué GPIO o GPIO aparecerá la señal. Para eso usarás
la siguiente función:
ledcAttachPin(GPIO, channel)
Esta función acepta dos argumentos. El primero es el GPIO que dará salida a la señal y el
segundo es el canal que generará la señal.
5. Finalmente, para controlar el PWM, usa la siguiente función:
ledcWrite(channel, dutycycle)
Esta función acepta como argumentos el canal que genera la señal PWM y el ciclo de
trabajo
MOTORES DC
Generan una fuerza electromecánica dependiendo del voltaje de alimentación, su giro en
ambos sentidos
Cada motor necesita de un cierto voltaje y corriente, por eso se debe buscar un driver que
soporte sus características
OSCAR AIZA – 76206976
https://www.facebook.com/ozz999
3
Cesbol Ingeniería
Driver de potencia: puentes h
Tabla control
01 = izquierda
10 = derecha
00 = detenido
11 = daño al driver
Modulo puente H
L 298 => 3 amperios, 30 voltios
OSCAR AIZA – 76206976
https://www.facebook.com/ozz999
4
Cesbol Ingeniería
Tb6612fng => 3amperios , 30 voltios
Driver de alta potencia bts7960
OSCAR AIZA – 76206976
https://www.facebook.com/ozz999
5