Crea, comparte, aprende y disfruta
Librería SoftPWM
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 capaz de convertir cualquier pin digital de Arduino en una salida PWM.
Lo único 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:
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 cómoda.
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include void setup(){ SoftPWMBegin(); SoftPWMSet(13, 0); SoftPWMSetFadeTime(13, 1000, 1000); } void loop(){ SoftPWMSet(13, 255); delay(1000); SoftPWMSet(13, 0); delay(1000); } |
es compatible con pinguino?