Antes de escribir un programa para controlar una salida analógica del Arduino,
debemos empezar por identificar que puertos del Arduino están dispuestos para
generar una señal en base a un PWM y en segundo lugar explicaremos que es una señal
PWM.
PWM PINS: 3, 5, 6, 9, 10, 11
![](https://educaendigital.com/wp-content/uploads/2020/02/Captura-de-pantalla-2020-02-03-a-las-6.33.12.png)
¿Qué es PWM y cómo funciona?
La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de
pulse-width modulation) de una señal o fuente de energía es una técnica en la que se
modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por
ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o
para controlar la cantidad de energía que se envía a una carga.
El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en
relación con el período. Expresado matemáticamente:
D es el ciclo de trabajo
es el tiempo en que la función es positiva (ancho del pulso)
T es el período de la función
Para las salidas analógicas se usan los pines que están marcados como PWM y es que
en realidad las salidas analógicas no dan una señal continua a un nivel determinado,
sino que mediante pulsos consiguen obtener un nivel de tensión promedio proporcional
al ancho de estos pulsos.
![](https://educaendigital.com/wp-content/uploads/2020/02/Captura-de-pantalla-2020-02-03-a-las-6.33.23.png)
Como se puede ver en la imagen superior, variando en ancho del pulso, podemos
obtener una señal promedio equivalente.
Para la primera señal, cuyo ancho de pulso es del 10%, nos daría una señal analógica de
0.5v (el 10% de 5V).
Para la segunda una señal, cuyo ancho de pulso es del 50%, nos daría una señal
analógica de 2.5v.
Y para la tercera señal obtendríamos una señal, cuyo ancho de pulso es del 90%,
obtendríamos un valor equivalente de 4.5v.
Instrucciones para controlar la salida analógica en un Arduino.
La instrucción que debemos implementar es la siguiente:
analogWrite
Sintaxis:
analogWrite(pin, value)
Parámetros:
pin: el pin Arduino para escribir. Tipos de datos permitidos: int.
value: El ciclo de trabajo: entre 0 (siempre apagado) y 255 (siempre encendido). Tipos
de datos permitidos: int.
Programa de ejemplo:
Para modificar el valor del voltaje en la salida PWM seleccionada (pin 6), solo basta con
modificar el argumento (value) de la función analogWrite.
Value, solo permite un valor entre 0 y 255.
Con value igual a 255, obtendremos aproximadamente 5 Vdc en el pin seleccionado,
para el ejemplo (pin 6).
![](https://educaendigital.com/wp-content/uploads/2020/02/Captura-de-pantalla-2020-02-03-a-las-6.33.32.png)
![](https://educaendigital.com/wp-content/uploads/2020/02/Captura-de-pantalla-2020-02-03-a-las-6.33.40.png)
Con value igual a 127, obtendremos aproximadamente 2.3 Vdc
![](https://educaendigital.com/wp-content/uploads/2020/02/Captura-de-pantalla-2020-02-03-a-las-6.33.48-672x1024.png)
Con value igual a 0, obtendremos 0 Vdc.
![](https://educaendigital.com/wp-content/uploads/2020/02/Captura-de-pantalla-2020-02-03-a-las-6.33.58.png)
De esta forma podemos controlar el nivel de voltaje que deseamos sobre el pin 6. Para
medir el voltaje utilizamos un multímetro. Recuerden que el parámetro value, solo
admite valores entre 0 y 255.
Para value = 0, El voltaje será 0 Vdc
Para value = 255, el voltaje será 5 Vdc.