Salidas analógicas – PWM (Previsualizar)

led-potenciometro-PWM-Arduino
Primero debes completar Entradas analógicas con el potenciómetro antes de ver esta lección

Introducción

Arduino tiene algo que se ha llamado “salidas analógicas”. En esta unidad aprenderemos qué son estas salidas, por qué no son realmente analógicas, y cómo pueden usarse para simular una salida analógica real.

Modulación por ancho de pulso – PWM

La modulación por ancho de pulso, abreviada PWM (del inglés Pulse-Width Modulation), es una técnica para simular señales analógicas usando pulsos digitales. En PWM se genera una señal cuadrada encendiendo y apagando un pin. Este patrón de encendido y apagado puede simular voltajes entre siempre encendido (5V) y apagado (0V), cambiando el porcentaje de tiempo durante el que la señal está encendida respecto al que pasa apagada.

PWM Ciclo de Trabajo

El tiempo durante el que la señal está encendida se llama “ancho de pulso”. Para obtener diferentes valores analógicos, hay que cambiar (llamado técnicamente modular) ese ancho de pulso. El porcentaje de tiempo que la señal está encendida, respecto al tiempo total de la señal, se llama ciclo de trabajo.

Si repites este patrón de encendido y apagado lo suficientemente rápido, el resultado es similar al de una señal analógica cuyo valor depende del ciclo de trabajo elegido.

Los pulsos PWM pueden aparecer en situaciones como:

  • Servos, para ajustar el ángulo de posición.
  • Motores, controlando su velocidad con el ciclo de trabajo.
  • LEDs, para atenuar su intensidad.

PWM en Arduino

En Arduino, los pulsos PWM pueden generarse en los pines en los pines 3, 5, 6, 9, 10, y 11 (para Arduino UNO) utilizando la función analogWrite(PIN, CICLO_DE_TRABAJO). Esta función produce una señal cuadrada en la salida PIN que se repite cada 2ms, donde CICLO_DE_TRABAJO puede ser cualquier número entero entre 0 y 255, de la forma en que se indica en la figura.

AnalogWrite PWM Arduino

Explora

Programando la intensidad de un LED

Vamos a elegir la intensidad con la que hacemos brillar el LED en nuestra placa Arduino haciendo uso de la función analogWrite().

Para ello construimos el siguiente circuito:

esquema-conexion-led-pwm

Abrimos un nuevo sketch en Arduino IDE arduino-icono-nuevo y escribimos:

Este sketch se limita a escribir un pulso PWM en el pin 9. Esta operación hay que hacerla una única vez, y Arduino se ocupa de que el pulso se repita automáticamente. Por ello, hemos llamado a la función analogWrite() en setup(), y no hay nada que hacer en loop().

Sube el sketch a Arduino arduino-icono-subir y observa lo que ocurre.

Prueba a escribir otros valores en la variable brillo, como: 10, 70, 180 y 250, y observa cómo varía la iluminación del LED.

Ajustando la intensidad del LED con un potenciómetro

Vamos a ajustar la variable brillo mediante la rueda del potenciómetro. Para ello construimos el siguiente circuito:

esquema-conexion-led-potenciometro-PWM-Arduino

Partiendo del sketch anterior, debemos hacer uno nuevo en el que en un bucle se lea el potenciómetro y se escriba el ancho de pulso correspondiente en el pin digital 9.

Recuerda que la lectura analógica da un valor entre 0 y 1023, mientras que al escribir un PWM el rango debe situarse entre 0 y 255. Por ello, para ajustar los valores, vamos a dividir por 4 la lectura del potenciómetro antes de escribirla en el pin PWM.

Carga este sketch en tu Arduino y observa cómo puedes ajustar la intensidad de un LED al rotar el potenciómetro.

Sigue explorando

Mejora el sketch anterior

¿Qué ocurre cuando giramos hasta los extremos el potenciómetro? Modifica el sketch anterior para que al llegar a los extremos el LED se quede apagado o encendido fijo.

Ajusta la intensidad del LED con botones

Elimina el potenciómetro y utiliza dos botones para ajustar la intensidad del LED, uno para subirla y otro para bajarla. Haz que cada pulsación del botón incremente/decremente el ciclo de trabajo del PWM en saltos de 16 unidades.

Volver a: Iniciación a Arduino

©2017 Fábrica Digital desde Jerez de la Frontera, España.

956 05 77 07 (llamadas) / 717 717 452 (Whatsapp) / hola@fabricadigital.org

Horario de verano: de Lunes a Viernes de 09:00 a 13:00.

Calle Manuel Yélamo Crespillo, Edif. Los Ramos, 11401 Jerez de la Frontera, Cádiz. - Cómo llegar

Información Legal - Aceptamos

 

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account