Laboratorio de Mecatrónica y Róbotica

 3.2 Materiales y Métodos:

  1. Un LED.
  2. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560, dependiendo de cuál te toque dentro del desarrollo de la práctica.
  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.

Antes de comenzar con el desarrollo del programa, debemos saber cuál es el significado de modulación de ancho de pulsos (Pulse Width Modulation PWM).

A menudo necesitaremos algo más que una señal de 0 o 1 en nuestras proyectos, por ejemplo: para variar la velocidad de giro de un motor, para variar la intensidad con la que luce un LED, o para transmitir los grados de giro de un servo, entre otros ejemplos.

Para todo esto nos servirá el 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, emite una serie de pulsos que podremos variar su duración pero con una frecuencia constante, de manera que la tensión promedio resultante es directamente proporcional a la duración de los pulsos dentro del rango de nuestro periodo, es decir, 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á dicha tensión, podemos observarlo en la Figura 3.1:

Figura 1 - P3

Figura 3.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 la realización del montaje del circuito electrónico, primero lo elaboraremos en el programa Fritzing, se debe tener en cuenta el conocimiento de cuál es el cátodo y ánodo del LED. Se coloca el ánodo en el pin 9 y el cátodo a tierra (ground), como se muestra en la Figura 3.2:

Figura 2 - P3

Figura 3.2. Montaje del circuito en el programa Fritzing.

Podemos observar en la Figura 2 que se está utilizando el Arduino Uno-R3, al igual si utilizamos la tarjeta Arduino Mega 2560 es el mismo procedimiento. El Protoboard nos 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 cable están todos conectados entre sí. La señal proveniente del pin 9 va conectada con el positivo del LED, la parte negativa o cátodo estará conectada a una resistencia que a su vez se conectará de nuevo a la tarjeta Arduino hacia tierra (GND).

Un dato importante es ¿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 (  ̴), los puertos o pines así indicados nos permiten enviar señal modulada, es decir, los pines que no tienen ese emblema solo mandan señales de 0 y 1; como la práctica nos mandan a desarrollar un programa que cambie la intensidad del LED y es necesario emular una señal analógica a partir de una señal digital (PWM), utilizamos el pin 9.

Luego que tengamos armado el circuito en el programa Fritzing, podemos empezar con el desarrollo del programa en el IDE de Arduino.

3.4 IDE del Código de Arduino:

- Debemos seleccionar la tarjeta Arduino que estamos utilizando sea Arduino Uno-R3 o Arduino Mega 2560.

- Se selecciona el Puerto Serial. Bajo que puerto USB se va a conectar el Arduino con el computador.

- Se realiza el código:

  • Inicialmente debemos darle un nombre de qué es lo que estamos desarrollando a través del símbolo //, podemos colocar el título de la práctica o del programa en sí. También se puede utilizar como comentarios dentro del programa.
  • Se declaran las variables. En la práctica se declaran de tipo constante, una variable que no cambiara durante el desarrollo del programa, su comando es const. Además, se debe especificar qué tipo de variable es la constante. En nuestro caso caso será entero y su comando es int. Luego se le da el nombre de la variable; en la tarjeta Arduino se coloca el ánodo en el pin 9 la variable se le asignara el valor de 9. También se declara la variable entero i igual a cero (0), la cual será un contador. Para cambiar la intensidad del LED, primero la intensidad del mismo será cero (0), después va subiendo poco a poco por porcentajes hasta llegar al valor máximo de 255.
  • Se define si la variable declarada son de tipo entrada o de salida, para eso se utiliza el comando void setup (), Se inicia  corchete para saber qué es lo que contiene ese comando y al finalizar el comando cierro corchete. Internamente del corchete se declarara que la variable LED es de salida, esto se realiza a través del comando pinMode, este a su vez necesita como argumento la variable y el tipo de señal de la misma, es decir pinMode(LED,OUTPUT); en la que OUTPUT nos indica que la señal saldrá del pin 9 permitiendo encender el LED.
  • Luego de definir las variables, se procede a realizar la estructura del código a través del comando void loop (), de igual manera se abre corchete y se cierra luego de terminar su cumplimiento. Internamente del corchete se establecerá las instrucciones que ejecutara Arduino continuamente. Como se debe cambiar la intensidad del LED es necesario utilizar un contador que vaya desde cero (0) hasta 255, la cual se declaró anteriormente del contador i=0. La estructura que permite contar es for (i=0; i<255; i++), que significa que para i=0 hasta i<255, el i++ es el contador que ira de 1 en 1 hasta llegar a su valor final que en es este caso será los 225. Luego para saber que va dentro del lazo for se abre corchete en la misma estructuray se declara el comando analogWrite (), este a su vez necesita como argumento la variable y el tipo de señal de la misma, es decir analogWrite(LED, i); en la que i es el valor de intensidad que cambiara el LED desde cero (0) la cual variara hasta 255, nos indica que la señal saldrá del pin 9. Para observar la diferencia de intensidad se establecerá un delay de 10 milisegundos, es necesario realizar este delay ya que si no optamos a este comando no nos permitirá ver el cambio de intensidad sino, nos llevara directamente al valor de 255 del LED. Ya obteniendo el incremento de frecuencia del LED ahora debemos bajarle esa intensidad del mismo, para eso utilizamos el mismo comando for, pero en vez de utilizar un contador para incrementar utilizaremos un contador para disminuir la señal de 255 hasta llegar a cero, es decir, for (i=255; i>0; i--). Igualmente se abre corchete en la misma estructura for y se declara el comando analogWrite (), este a su vez necesita como argumento la variable y el tipo de señal de la misma, es decir analogWrite(LED, i); en la que i es el valor de intensidad que cambiara el LED desde 255 la cual variara hasta cero (0), nos indica que la señal saldrá del pin 9. Para observar la diferencia de intensidad se establecerá un delay de 10 milisegundos.
  • Al terminar el desarrollo del programa se debe compilar para verificar si existen errores dentro del codificado. Luego si no existen errores se debe cargar el código en la tarjeta Arduino para que pueda ser ejecutado.

NOTA: Para quel IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

En la siguiente imagen se mostrara como quedo plasmado en el IDE de Arduino, los procedimientos anteriormente señalados:

// 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  3.1 Código para encender y variar la intensidad de un LED utilizando PWM.  

https://123d.circuits.io/circuits/2173143-practica-3-laboratorio-mecabot

 

3.5 Conclusiones:

Los comandos que se utilizan para realizar la práctica nos permitió emular una señal analógica a partir de una digital en nuestros circuitos. El rango de salida de una señal analógica  varia de 0 a 255, siendo 0 = 0v y 255 = 5v, por lo que para obtener un voltage dentro del rango se puede realizar  introduciendo un valor determinado para la tensión de salida que nosotros queramos conseguir, si quisiéramos conseguir 2,5v el valor a asignar sería 127. Así que lo único que debemos hacer es transformar mediante una simple operación matemática la señal tomada para adaptarla a nuestra salida PWM.


 ¿Que Hacemos?

Mecatrónica:  Unimos la ingeniería mecánica, ingeniería electrónica, ingeniería de control e ingeniería informática para diseñar y desarrollar productos que involucren procesos inteligentes.

 

Robótica:  Utilizamos la técnica que aplica la informática al diseño y empleo de aparatos que, en sustitución de personas, realizan operaciones o trabajos, por lo general en instalaciones industriales.