Cambia la intensidad de un LED mediante señales PWM

3.1  Objetivo General:

Encender un LED y cambiarle su intensidad usando PWM, señales de modulación de ancho de pulsos (pulse-width modulation).

En la sección de Tutoriales->Arduino podrán encontrar todas las prácticas relacionadas con la tarjeta Arduino.

MAS en LEDs  Si quieres hacer más prácticas sobre LEDS y arduino en el blog te sugerimos:


 3.2 Materiales y Métodos:

  1. Un LED.
  2. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  3. Un cable USB impresora.
  4. Un computador.
  5. Cables para el montaje del circuito.
  6. Tarjeta Protoboard.
  7. Una Resistencia Eléctrica de 220 ohm.

Primero que todo, es necesario conocer que son las señales de modulación de ancho de pulsos (Pulse Width Modulation PWM).

3.2.1 Señales PWM

A menudo se necesita algo más que una señal de 0 o 1. Por ejemplo:  variar la velocidad de giro de un motor,  variar la intensidad de emisión un LED, o transmitir los grados de giro de un servo, entre otros ejemplos. Para todo esto nos servirá las PWM, que emula una señal analógica a partir de una señal digital.

Las siglas PWM vienen de Pulse Width Modulation, o Modulación de Ancho de Pulso. Lo que hace este tipo de señal es emitir, en lugar de una señal continua de salida,  es generar una serie de pulsos que se pueden variar en su duración pero a frecuencia constante. Así, la tensión promedio resultante es directamente proporcional a la duración de los pulsos dentro del rango del periodo indicado. Esto es, cuanto más juntos estén esos pulsos de +5v, mayor será la tensión promedio de nuestra salida, y cuanto más distantes sean estos, menor será la tensión. Lo anterior se puede observar en la Figura 1.

Figura 1 - P3

Figura 1 Cambio de tensión dependiendo de la duración de funcionamiento del LED. (Imagen de www.tr3sdland.com)

3.3 Montaje de la práctica:

Antes de comenzar, primero se esquematiza en el programa TinkerCad. El cátodo del LED va al pin 9. El anodo va a tierra. El circuito incluye una resistencia electrica para evitar quemar el LED, ver Figura 2. Práctica 3

Figura 2. Montaje del circuito para Encender un LED y cambiarle su intensidad usando PWM.

Note que el Protoboard  ayuda a insertar el LED e instalar el circuito a través de cables, al igual que la resistencia eléctrica. El pin 9 se conecta directamente al Protoboard, como se muestra una de las funciones que tiene tablero, es que sus orificios al estar conectados por un circuito interno. 

3.3.1 Pines digitales y de PWM

¿Por qué se ha elegido como entrada el pin 9 y no el pin 13?.

Se eligió el pin 9 ya que en la tarjeta Arduino al lado del pin hay un símbolo (~). Estos puertos  permiten enviar señal modulada, es decir, los pines que no tienen ese emblema solo mandan señales de 0 y 1. Ya que la en práctica se pretende que cambie la intensidad del LED y es necesario utilizar un pin que permita PWM.

Luego, que se tiene armado el circuito en el programa TinkerCad, se puede iniciar con el desarrollo del programa en el IDE de Arduino.

3.4 IDE del Código de Arduino:

-Primero que todo, se debe seleccionar la tarjeta Arduino:  Arduino Uno-R3, Arduino Mega 2560, Nano.

-Seguidamente, se selecciona bajo que puerto USB se va a conectar el Arduino con el computador.

-Antes de comenzar el código, se colocar el título del programa, esto se hace a través del símbolo // a los fines de  introducir comentarios dentro del programa.

3.4.1 Procedimiento de cómo llevar a cabo el codificado del programa:

  • El pin del LED se declara  const  y int. Se le asignara el valor de 9.
  • Se declara una variable entera i con valor cero (0). La intensidad del LED, primero será cero (0),  hasta llegar al valor máximo de 255.
  • Dentro de la estructura void setup (), se abre corchete ({) para saber qué es lo que contiene ese comando y al finalizar el comando se cierra corchete (}). Internamente del corchete se declara que la variable LED es de salida mediante el comando  pinMode(LED,OUTPUT)..
  • Luego. se procede a realizar la estructura del código a través del comando void loop (),  se abre corchete ({) y se cierra luego de terminar su cumplimiento (}). Internamente del corchete se escriben las instrucciones que ejecuta Arduino continuamente.
  •  La intensidad del LED se cambia enviando una señal PWM analogWrite(LED, i) donde i va variando desde  (0) hasta 255.
  • Se utiliza la estructura  for (i=0; i<255; i++), que permite aumentar la variable i mediante analogWrite () donde la variable i varia de 0 hasta i<255. El i++ es el contador que ira de 1 en 1  hasta llegar a su valor final de 225.
  • Para observar la diferencia de intensidad se establece un delay de 10 milisegundos, es necesario realizar este delay ya que de no colocarlo no se nota el cambio en la intensidad del LED.
  • Luego de llevar al LED al valor mas alto (255) se baja la intensidad del mismo con el comando for, pero en vez se emplea i– para que el contador baje de 1 en 1,  for (i=255; i>0; i–) A fin de observar la diferencia de intensidad se establece un delay de 10 milisegundos.

2.4.2 Algoritmo de la práctica 3

El siguiente código muestra como queda plasmado en el IDE de Arduino:


// Práctica encender un LED y cambiar su intensidad
const int LED=9;
int i;
void setup(){
pinMode(LED,OUTPUT);
}
void loop() {
for  (i=1;i<255; i++){
analogWrite(LED,i);
delay(5);
}
for  (i=255;i>0; i--){
analogWrite(LED,i);
delay(5);
}
}

Algoritmo  1 Código para encender y variar la intensidad de un LED utilizando PWM.  

  • Al terminar el desarrollo del programa, se debe compilar para verificar si existen errores dentro del codificado.
  • De no existir errores, se procede a cargar el código en la tarjeta Arduino para que pueda ser ejecutado.

Implementación del algoritmo 1 en el simulador TinkerCad:

https://www.tinkercad.com/things/iPUe3CpAAPs

3.5 Conclusiones:

Los comandos que se utilizan para realizar la práctica permitió emular una señal analógica a partir de una digital. El rango de salida de una señal analógica en arduino varia de 0 a 255. Un voltage específico se obtiene introduciendo un valor entre 0 = 0v y 255 = 5v. Por ejemplo, un valor 2,5v  se logra al  asignar 127.  Se debe transformar mediante una simple operación matemática la señal tomada para adaptarla a la señal de salida PWM.

Si nuestro contenido te fue de utilidad, por favor considera dar tu apoyo a lo que hacemos: