SoftPWM

Librería Arduino
pic

Cualquier placa de Arduino nos provee de una buena cantidad de salidas PWM, pero a veces para determinados proyectos necesitamos aún más (si queremos controlar muchos servomotores, o la intensidad de distintos juegos de luces, por ejemplo).

Para cubrir esta necesidad existe la librería SoftPWM, que es capàz de convertir cualquier pin digital de Arduino en una salida PWM.

Lo unico que tenemos que hacer es descargar la librería SoftPWM e instalarla (si no sabes cómo aquí te lo explicamos), ahora veamos todas las posibilidades que nos ofrece esta librería:

Funciones de la librería

SoftPWMBegin([defaultPolarity])

Inicializa la librería y define la polaridad del pin, aunque esto último es opcional.

Parámetros (opcionales)
  • SOFTPWM_NORMAL
  • SOFTPWM_INVERTED

SoftPWMSet(pin, valor)

Permite indicar que pin queremos utilizar y el valor que queremos sacar por él.

Parámetros
  • pin: es el pin que queremos utilizar
  • valor: es el valor que queremos enviar por este pin. Podemos enviar cualquier valor entre 0 y 255 ambos inclusives.

SoftPWMSetPercent(pin, porcentaje)

También podemos indicar la salida que queremos en porcentaje utilizando softPWMSetPercent.

Parámetros
  • pin: es el pin que queremos usar cómo salida
  • porcentaje: el porcentaje entre 0 y 100 que queremos enviar por la salida

SoftPWMSetFadeTime(pin, fadeUpTime, fadeDownTime)

Si lo que queremos hacer es aumentar y reducir progresivamente el valor que estamos enviando por el PWM esta función nos permite hacerlo de forma sencilla y comoda.

Parámetros
  • pin: El pin que queremos usar cómo salida
  • fadeUpTime: el tiempo en milisegundos que queremos utilizar para llegar de 0 a 255. (Entre 0 y 4000)
  • fadeDownTime: Tiempo en milisegundos que queremos utilizar para llegar de 255 a 0. (Entre 0 y 4000)

SoftPWMSetPolarity(pin, polaridad)

Esta función permite cambiar la polaridad del pin que estamos utilizando.

Parámetros
  • pin: El pin que queremos utilizar cómo salida
  • polaridad: polaridad que queremos darle al pin

Ejemplo

						#include <SoftPWM.h>

						void setup(){
						  SoftPWMBegin();
						  
						  SoftPWMSet(13, 0);

						  SoftPWMSetFadeTime(13, 1000, 1000);
						}

						void loop(){
						  SoftPWMSet(13, 255);
						  delay(1000);
						  SoftPWMSet(13, 0);
						  delay(1000);
						}
					
Plantilla Basada en la obra de © 2011 Ansimuz.