Arduino PWM – Qué es y cómo funciona

El Arduino tiene varios puertos. PWM, es decir, puertas con la funcionalidad de Modulación de ancho de pulso, capaz de variar el ancho de pulso de una señal digital. Por lo tanto, con la función PWM es posible controlar la velocidad o la posición de los motores, la intensidad del brillo de los LED y el control de los LED RGB, lo que permite incluso obtener diferentes colores a través de las posibles combinaciones.

Por lo tanto, el propósito de este artículo es mostrar qué es PWM, cómo funciona, cuáles son sus aplicaciones y cómo programar PWM en Arduino.

¿Qué es PWM?

PWM (modulación de ancho de pulso) o modulación de ancho de pulso, utilizada en sistemas digitales, consiste en una técnica para variar el valor promedio de una forma de onda periódica. Por lo tanto, es posible controlar en una onda cuadrada el tiempo que permanece en un nivel lógico alto, manteniendo su frecuencia, pero cambiando su valor de voltaje promedio con el tiempo.

De esta manera, sería como si un circuito, cuya fuente de voltaje proporciona 10 voltios, tuviera un interruptor que se abre y se cierra a una frecuencia determinada. Vea la ola que se formará en este circuito:

arduino pwm

Tenga en cuenta que en este ejemplo el 50% del tiempo el interruptor está cerrado y el 50% del tiempo está abierto. De esta manera, es posible variar el tiempo que la llave está abierta o cerrada, cambiando el ancho del pulso.

Te puede interesar  Arduino Pro Micro

O PWM funciona exactamente de esa manera, aunque sea digitalmente. Y así es posible regular el tiempo cuando la señal estará en un nivel lógico alto a una frecuencia dada. El tiempo cuando la señal está en un nivel lógico alto se llama Ciclo de trabajoo Ciclo activo.

Para calcular la potencia promedio disipada en la señal en una onda cuadrada, se utiliza la fórmula:

arduino pwm

Dónde:

  • PAGS = Potencia media (vatios)
  • t = Tiempo (segundos o milisegundos)
  • V = Voltaje suministrado por la fuente (voltios)
  • yo = Corriente (Amperios)

Esta fórmula se usa para encontrar el porcentaje de tiempo que la señal está en un nivel lógico alto, y para multiplicar por la potencia máxima. De esta manera, es posible estimar la potencia promedio de una señal en PWM.

Por lo tanto, PWM se controla variando el ancho de un pulso para controlar el ciclo de la señal aplicada a una carga y, en consecuencia, su potencia.

Cómo funciona Arduino PWM

En Arduino, podemos encontrar algunos puertos PWM, cuyo número depende del modelo de Arduino. Hay Arduinos con más puertos PWM y otros con menos, y varios sensores o módulos necesitarán necesariamente puertos PWM para funcionar.

Vea los puertos PWM de un Arduino Uno a continuación:

arduino pwm

Puertos Arduino Uno PWM

Ver que las salidas PWM son las marcadas con un «~«.

De esa manera, esta salida se puede controlar en su programación para que funcione según sea necesario.

La función Arduino PWM – analogWrite ()

Por lo tanto, para controlar los ciclos activos en los puertos Arduino PWM, hay una función específica en su programación, la analogWrite ()

  • Sintaxis: analogWrite (puerto, valor de 0 a 255);
  • Ejemplo: analogWrite (9, 200);

La función se utiliza analogWrite () para determinar el tiempo de un ciclo activo en una salida PWM. Por lo tanto, el tiempo del ciclo activo se controla con un valor de 0 a 255, siendo 255 el máximo y siempre activo.

Te puede interesar  Sensor ultrasónico HC-SR04 con Arduino

Vea en la imagen a continuación, el comportamiento de la onda de acuerdo con el valor dado en la programación (de 0 a 255):

ciclo de trabajo analogwrite

Recuerde que la frecuencia de esta onda en la mayoría de los pines tiene un valor fijo de más o menos 490 hertzios.

Ejemplo usando Arduino PWM

Para probar el Arduino PWM, se realizará un proyecto muy simple, tomado del sitio web oficial de Arduino. Se conectará un LED al Arduino para variar el brillo del LED de la función analogWrite (), es decir, usando el Arduino PWM. Para este proyecto necesitará 3 componentes:

  • Placa Arduino Uno;
  • LED de cualquier color;
  • Resistencia de 220 ohmios (funciona sin la resistencia, si no tiene una).

Las conexiones entre los componentes deben realizarse de la siguiente manera, el terminal positivo del LED debe conectarse al puerto 9 del Arduino con una resistencia entre el puerto y el LED.

conexión led con arduino

El LED se enciende en el puerto 9 PWM.

Si no tiene la resistencia, no es necesariamente obligatoria, ya que la corriente de salida del Arduino puede alimentar un LED sin problemas sin quemarlo.

Por lo tanto, para la programación, se realizará una estructura para que varía constantemente el valor que debe ir en la función analogWrite () y ejecuta la función. Vea el código a continuación:

int ledPin = 9;
void setup() {
}
void loop() {
for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
analogWrite(ledPin, fadeValue);
delay(30);
}
for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
analogWrite(ledPin, fadeValue);
delay(30);
}
}

Si funcionó, el brillo del LED variará.

¿Quieres aprender más sobre electrónica?