LED RGB controlado por Arduino desde el...

25
UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS PROGRAMACION PARA DISPOSITIVOS MOVILES PDM115 Ciclo I-2014 GUIA DE PRACTICA (EX Aula opcional) LED RGB controlado por Arduino desde el computador. Objetivos General: Implementar un circuito con la placa Arduino para controlar un led RGB con determinados caracteres, a través de comunicación serial vía el puerto USB. Específicos: Conocer las generalidades y funcionamiento de la placa Arduino. Identificar y utilizar la mayoría de los pines de la placa Arduino uno. Familiarizarse con la estructura y sintaxis del lenguaje con el que trabaja Arduino. Controlar las distintas combinaciones digitales que se pueden conseguir por medio de las 14 salidas digitales de una tableta Arduino uno por medio de la comunicación serial vía USB. Montar un circuito para la manipulación de un led RGB ánodo común.

Transcript of LED RGB controlado por Arduino desde el...

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA

ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS

PROGRAMACION PARA DISPOSITIVOS MOVILES

PDM115 Ciclo I-2014

GUIA DE PRACTICA (EX Aula opcional)

LED RGB controlado por Arduino desde el computador.

Objetivos

General:

Implementar un circuito con la placa Arduino para controlar un led RGB con determinados

caracteres, a través de comunicación serial vía el puerto USB.

Específicos:

Conocer las generalidades y funcionamiento de la placa Arduino.

Identificar y utilizar la mayoría de los pines de la placa Arduino uno.

Familiarizarse con la estructura y sintaxis del lenguaje con el que trabaja Arduino.

Controlar las distintas combinaciones digitales que se pueden conseguir por medio

de las 14 salidas digitales de una tableta Arduino uno por medio de la

comunicación serial vía USB.

Montar un circuito para la manipulación de un led RGB ánodo común.

2

Tabla de contenido Descripción general del proyecto a implementar: .............................................................................. 1

Planteamiento del problema: ............................................................................................................. 2

Flujo grama para la solución parte programática: .............................................................................. 3

Código Fuente: .................................................................................................................................... 4

Codificando el LedTricolor.INO: ...................................................................................................... 5

Solución a nivel de circuitería: ............................................................................................................ 9

Generalidades de Arduino .............................................................................................................. 9

¿Qué es Arduino? ........................................................................................................................ 9

Modelos:.................................................................................................................................... 10

¿Qué puedo encontrar en un Arduino Uno R3? ....................................................................... 10

Pinado del Arduino Uno. ................................................................................................................... 11

Pines de poder: ............................................................................................................................. 11

Pines Digitales: .............................................................................................................................. 11

Comunicación: ............................................................................................................................... 12

Pines Analógicos: ........................................................................................................................... 12

Materiales necesarios para montaje del circuito: ............................................................................. 13

Esquema de conexión del led RGB al Arduino. ................................................................................. 13

Explicación: ................................................................................................................................ 13

Diagrama de conexión del led RGB con Arduino: ............................................................................. 14

Anexos ............................................................................................................................................... 16

Configurando nuestro Arduino: .................................................................................................... 17

Conceptos básicos para el montaje del circuito............................................................................ 21

Aclaraciones sobre el LED RGB ánodo común:......................................................................... 21

Detalles de la breadboard. ........................................................................................................ 22

Identificar las patillas del led Tricolor. .......................................................................................... 22

1

Descripción general del proyecto a implementar:

En la siguiente guía se encuentra detallado el proceso que hay que seguir para la elaboración de

un circuito implementado con la placa Arduino con la cual se controlará un LED RGB (Diodo Emisor

de Luz de 3 colores: rojo, verde, azul) que responderá a determinados caracteres reflejando la

combinación que corresponde a dicho carácter en las salidas digitales del Arduino; encendiendo el

color que le corresponde; para llevar a cabo dicho ejercicio necesitamos conocer muchos

conceptos que más adelante aclararemos, por el momento narraremos a grandes rasgos el

proceso a seguir para poder llevar a cabo el desarrollo de esta guía.

En primero lugar deberemos tener instalado el IDE Arduino para poder realizar nuestro programa

fuente que tendrá extensión .INO y que son conocidos comúnmente como sketch, este será el

encargado de comunicar nuestros deseos al circuito físico; Una vez elaborado nuestro programa

en Arduino que es una lenguajes que se basa en C/C++ por lo que asumimos que muchos se

sentirán cómodos con la sintaxis que encontraran, procedemos a cargarlo en nuestra placa para

que este se ejecute cíclicamente, si tenemos algún tipo de error el programa no se cargara y habrá

que revisar que está impidiendo que este se compile exitosamente.

Una vez nuestro sketch esté cargado en nuestra placa, procederemos a montar nuestro circuito de

leds y resistencias teniendo muy en cuenta los pines del Arduino que declaramos en nuestro

programa como salidas para controlar nuestros led, teniendo ya el circuito acoplado a la tableta

procedemos a abrir la consola que nos proporciona el IDE y procedemos a comunicarnos con el

Arduino por medio del cable USB, comunicando así el led que deseamos encender por medio del

carácter asignado.

2

Proceso

Salidas Entradas

1. Carácter r o R.

2. Carácter v o V.

3. Carácter a o A.

4. Carácter x.

5. Carácter Desconocido.

1. Enciende LED Rojo.

2. Enciende LED Verde.

3. Enciende LED Azul.

4. Apaga el led.

5. No hace nada.

Planteamiento del problema:

Implementar un circuito con la placa Arduino para controlar un led tricolor (RGB) por medio del

envió de parámetros desde la consola que el IDE de dicha placa nos facilita, a continuación se

presenta el diagrama de sistemas a seguir.

Detalles del diagrama:

Entradas:

En este caso en particular nuestras entradas serán los parámetros enviados desde la consola del

IDE hacia el Arduino, definiendo así los caracteres que encenderán determinado LED según su

inicial en inglés. Claro está que estos parámetros pueden ser perfectamente modificados por el

alumno.

Proceso:

Aquí comparamos la orden enviada por el usuario desde consola con el fin de conocer que

combinación de bits desea obtener en las salidas digitales del Arduino para obtener el resultado

deseado.

Salidas:

Una vez obtenido la combinación deseada en los pines digitales de la placa Arduino, estos se ven

reflejados en el circuito, según haya sido nuestro carácter enviado.

3

Flujo grama para la solución parte programática:

Ignorar el pin13, no incluir.

4

Código Fuente:

Para comenzar debemos abrir el IDE de Arduino como se muestra a continuación:

Si no se cuenta con el IDE, perfectamente lo puede descargar desde:

http://arduino.cc/en/Main/Software

En la versión más reciente que es la versión 1.0.5.

5

Codificando el LedTricolor.INO:

Todo programa en Arduino o Sketch como son mejor conocidos está compuesto por 2 partes

vitales, las cuales son el setup y el loop ya que si el sketch no cuenta con esa estructura mínima, el

programa no se cargara a la placa.

En el setup definiremos el comportamiento que tendrán nuestros pines, ya sea que los utilicemos

como entrada o como salida, al igual que si deseamos inicializarlos dichos pines lo hacemos dentro

del setup.

Y luego tenemos el loop que es el ciclo infinito que estará ejecutando nuestra placa Arduino. Aquí

programamos el comportamiento repetitivo que deseamos que nuestra placa este realizando

durante ese sketch este corriendo dentro de la placa Arduino.

Codificando:

/*************************************************************************/

/*Variable del tipo para almacenar el dato enviado desde consola*/

char Byte_entrada;

// Definimos los pines y estados iniciales de ellos.

void setup() {

Serial.begin(9600); // Abrimos la conexión con el puerto serie.

/* Inicializamos los pines que utilizaremos y como los utilizaremos,

en este caso como OUTPUT (Salidas).*/

pinMode(2, OUTPUT);//Azul

pinMode(3, OUTPUT);//Verde

pinMode(4, OUTPUT);//Rojo

/*Ponemos todos los pines en (5v) para apagar el led.

Es necesario ponerlos en 1 lógico ya que por default arduino asigna 0

lo cual encendería el led, ya que es ánodo común.*/

digitalWrite(2,1);//Azul

digitalWrite(3,1);//Verde

digitalWrite(4,1);//Rojo

} // Fin del setup

6

/*Definimos el comportamiento que estará repitiendo la placa Arduino*/

void loop() {

if(Serial.available())//Ve si el puerto está habilitado.

{

Byte_entrada=Serial.read(); //Leemos lo que se está en el puerto serie.

Serial.write(Byte_entrada); //Enviamos el dato leído al puerto serie.

char dato= (char)Byte_entrada; //Cateamos para la comparación.

switch(dato){

case 'A':

case 'a':

digitalWrite(2,0); //Azul, Cierra el circuito para el led Azul.

digitalWrite(3,1); //Verde

digitalWrite(4,1); //Rojo

break;

case 'V':

case 'v':

digitalWrite(2,1); //Azul

digitalWrite(3,0); //Verde, Cierra el circuito para el led Verde.

digitalWrite(4,1); //Rojo

break;

case 'R':

case 'r':

digitalWrite(2,1); //Azul

digitalWrite(3,1); //Verde

digitalWrite(4,0); //Rojo, Cierra el circuito para el led Rojo.

break;

/*Apaga el led, pone todos a 1 logico(5v)*/

case 'x':

digitalWrite(2,1);//Azul

digitalWrite(3,1);//Verde

digitalWrite(4,1);//Rojo

}

}

} //Fin del loop

/*****************************************************************/

7

1 2 3 4 5

6

Una vez se ha terminado de digitar el código se procederá a compilar y cargar el código a nuestra placa por lo que debemos conectarla a la computadora por medio del cable usb.

Antes de cargarla vamos a mencionar algunos detalles relevantes acerca del IDE de Arduino.

1. Es para compilar el

código y verificar si hay

algún error de sintaxis.

2. Es para cargar al

Arduino el programa a

ejecutar.

3. Para crear un nuevo

programa.

4. Para abrir un proyecto

anterior.

5. Para guardar.

6. Consola de

comunicación serial

con el Arduino por

medio del cable usb.

8

1

2

Ya explicado lo anterior, guardamos nuestro proyecto que se guardara con extensión .INO y luego

lo compilamos o lo cargamos directamente si deseamos ya que antes de cargarlo él lo compila

automáticamente.

1. Presionamos

cargar.

2. Luego en la barra

de progreso

podemos observar

si hay algún

inconveniente con

el programa.

9

Si no hubo ningún inconveniente, nos mostrara el siguiente mensaje de éxito.

Si tuvo algún inconveniente con el puerto COM se le invita a comprobar a que puerto está

asignado el Arduino (puede verificar esta información en los anexos) y a cambiarlo para que no

tenga este inconveniente.

Luego de cargar nuestro sketch en la tableta la desconectamos para poder proseguir con la guía.

Solución a nivel de circuitería:

Generalidades de Arduino

¿Qué es Arduino?

Es una plataforma de hardware libre que facilita el uso de la electrónica en proyectos

multidisciplinares.

Es un dispositivo que conecta el mundo físico con el mundo virtual, o el mundo

analógico con el digital.

Es una plataforma de desarrollo de computación física (physical computing) de código

abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo

para crear software (programas) para la placa.

¿Más simple? Está bien… Es un puente que nos permite manipular circuitos electrónicos

como Luces, Tv, Drones, La Temperatura de aire acondicionado, Regadíos por goteo,

Alimentar a tu mascota, entre otros, Por medio de lógica programática simple.

10

Modelos:

Existen una gran gama de placas Arduino alrededor de 22 modelos que varían según la necesidad

de los usuarios ya que hay de múltiples tamaños y capacidades, también existen una gran gama

de shields que son circuitería complementaria, lo que ayuda a expandir la capacidad de nuestra

placa, por mencionar algunas tenemos shields para servomotores, gsm, conexión inalámbrica, de

sensores de temperatura entre otros, por lo que no existe limitante en este sentido hay una placa

para cada necesidad.

En esta guía trabajaremos con un modelo de Arduino de los más básicos pero potentes, que es el

Arduino uno en su revisión 3.

¿Qué puedo encontrar en un Arduino Uno R3?

Placa Arduino Uno Version3.

11

Pinado del Arduino Uno.

Pines de poder:

Existen tres formas de alimentar este modelo de Arduino las cuales deben estar entre 7v y 12v

para su perfecto funcionamiento:

Por medio del cable USB cuando el dispositivo está conectado a la computadora.

A través de al clavija hembra tipo Jack el cual es un conector estándar para cargador de

12v.

Vía el Pin VIN.

Una vez tenemos alimentada nuestra placa podemos observar el color verde en nuestro led

indicador ON (Led de encendido).

Los pines de poder restantes se describen a continuación:

5v (Vcc): Nos brinda una fuente de alimentación de 5v.

3.3v: Nos brinda una fuente de alimentación de 3.3v normalmente utilizada para sensores

que trabajan a ese voltaje.

GND (Tierra): En esta placa contamos con 3 pines GND que nos permiten completar

nuestro circuito (cerrarlo).

Reset: Aplicando un pulso de 5v conocido como HIGH (1 lógico) reseteamos la tableta, NO

borramos el programa simplemente hacemos que comience de nuevo a ejecutarse.

Pines Digitales:

En la placa presentada contamos con 14 pines digitales con los cuales podemos obtener 2^14=

16384 combinaciones de salida distintas hablando de código binario. De 0 a 16383 suficiente para

trabajar con una gran diversidad de proyectos. El pin numero 13 cuenta con su propio led de

control, este enciende una vez hay un HIGH asignado a este pin y se apaga cuando dicho pin está

en LOW o 0 digital.

Respeto a los pines especiales PWM invitamos al lector a investigar en que tipos de proyectos se

utilizan estos pines especiales y cuál es su capacidad especial, ya en esta guía no se utilizaran pero

podrían ser de gran utilidad. Nota: Esto no impide que se utilicen simplemente solo como salidas

o entradas digitales.

A continuación hablamos de los pines especiales de comunicación que son Rx y Tx, pines 0 y 1

respectivamente.

12

Comunicación: Existe 2 formas de comunicarnos con esta placa Arduino:

1. Por medio del cable USB.

2. A través de los pines de recepción y transmisión de datos que son el Pin 0 (Rx0) y Pin 1

(Tx0) respectivamente.

Cabe aclarar que en otras placas Arduinos como por ejemplo los Atmega 2560 se cuenta con 4

pares de pines Tx y Rx con los que se puede tener diversas fuentes de comunicación.

Pines Analógicos: Estos 6 pines nos auxilian cuando necesitamos realizar mediciones de dispositivos que no son

analógicos como los son los potenciómetros o sensores de temperatura hechos de transistores,

estos pines creados específicamente para lecturas analógicas, también pueden ser utilizados para

expandir nuestros pines digitales contando así con 6 pines digitales más, pero esto conlleva a una

configuración especial y lo dejamos a iniciativa del lector investigar este tipo de configuración

especial.

Ahora que ya conocemos a grandes rasgos el pinado de las tabletas Arduino, y para qué sirven

cada uno de ellos procedemos a montar nuestro circuito junto con Arduino.

13

Materiales necesarios para montaje del circuito:

Arduino (Cualquier modelo que se ajuste a las necesidades del proyecto).

LedTricolor cátodo común, si se posee un ánodo común revisar los anexos y hacer las

cambios necesarios al circuito y al programa fuente.

Cable para pequeños proyectos electrónicos o cable UTP.

3 Resistencias de 330ohms.

BreadBoard.

Esquema de conexión del led RGB al Arduino.

Explicación:

Para poder realizar de manera correcta la conexión

de los colores debemos tener identificado que

patilla del led RGB corresponde a un color en

específico, si tiene dudas como identificar esto vea

los anexos.

Como se presenta a continuación, la parte negativa

(cátodo) del led se conectara directamente a una

patilla de las resistencias las cuales por ser

elementos pasivos no tiene ninguna polaridad por

lo que no importa a que patilla de ella se conecte, y

la patilla libre de la resistencia se conectara al pin

del Arduino que se le indica en el diagrama, por

ejemplo:

El pin 2 del Arduino tiene que ir conectado al P2

del diagrama que es la patilla de la resistencia que

está libre, ya que al conectarlo así, cerramos el

circuito una vez se envié un carácter “a o A” este

encenderá el led azul.

Y como ya se había dicho el positivo de este led RGB es común para los 3 pero solo encenderá el

que tenga un pulso negativo saliendo por el respectivo pin de Arduino.

A continuación se presenta como debería de quedar montado nuestro circuito.

14

Diagrama de conexión del led RGB con Arduino:

15

Una vez tengamos todo acoplado procedemos a conectar nuestro Arduino a la computadora y

procedemos a abrir la consola (1) para comenzar a enviar los parámetro que definimos en nuestro

sketch.

Desde consola nos aseguramos que la velocidad de transmisión sea de 9600 baudios (2) como se

muestra a continuación.

Luego procedemos a enviar de a uno los parámetros que definimos en nuestro sketch y así

encender el led rojo (caracteres “r” “R”), verde (caracteres “v” “V”) o azul (caracteres “a” “A”) y

con un carácter erróneo apagar el led.

16

Anexos

17

Configurando nuestro Arduino: Primero debemos descargar el IDE de Arduino en la siguiente dirección:

http://arduino.cc/en/Main/Software

En nuestro caso estamos utilizando la Arduino 1.5.4 (Tomar en cuenta que 1.5 está en versión

Beta) ya que contiene muchas mejoras con respecto a la versión Arduino 1.0.5.

Podemos descargar la versión zip para utilizarlo como un portable, o utilizando el respectivo

instalador, lo que más se adecue a las necesidades.

Cuando se conecta la placa, Windows debería inicializar la instalación de los drivers (siempre y

cuando no se haya utilizado ese pc con una placa Arduino anteriormente).

Pero si hubiese algún problema se solventa de la siguiente manera.

Nos dirigimos a Equipo > Propiedades > Administrador de dispositivos > Puertos (COM y LPT) una

vez ahí seleccionamos el elemento que nos muestre un icono de advertencia el cual debería de ser

el Arduino en cuestión, damos clic derecho y seleccionamos > Actualizar controlador, una vez ahí

seleccionamos > Buscar software de controlador en el equipo y buscamos la carpeta donde se

instaló el IDE o la dirección donde se encuentra descomprimido el IDE de Arduino según sea su

caso, y seleccionamos la carpeta Drivers y luego solo seguimos el procedimiento habitual.

18

Puedes comprobar que los drivers se han instalado correctamente abriendo la carpeta del

Administrador del Dispositivos.

Una vez instalado el IDE lo abrimos

y nos dirigimos a la pestaña de

>Herramientas y luego a >Tarjeta

en la cual seleccionamos el modelo

de Arduino con el que estemos

trabajando.

19

Esto no es del todo necesario ya que a la hora de compilar nuestro proyecto del IDE nos pedirá

que confirmemos el puerto con el que trabajaremos si hubiese problemas, solo bastaría con ir una

vez más a al administrador de dispositivos y ver que puerto ha sido asignado a nuestro Arduino.

20

En este caso es el puerto COM3 y este se modifica en el IDE de la siguiente manera.

Una vez seleccionamos el puerto correcto en la parte inferior derecha podemos observar que

puerto ha sido asignado por el IDE para trabajar con el Arduino.

21

Conceptos básicos para el montaje del circuito.

Aclaraciones sobre el LED RGB ánodo común:

El diagrama anterior es de un led normal, en el cual se observa que el ánodo es la patilla positiva y

el cátodo es la patilla negativa; lo que significa que nuestro led RGB comparte el pin positivo para

los 3 leds que posee internamente;

Un led RGB que es simplemente un led de tres colores distintos dentro de un mismo led físico, por

lo que debe fijarse en las patillas comunes, pues estas son las que representas a los 3 colores

distintos y la patilla única es el ánodo que deberá ser conectado a Vcc.

22

Detalles de la breadboard.

A continuación se presenta como están interconectada una breadboard.

Breadboard de un carril lateral que se utilizara en el proyecto presentado.

Breadboard de dos carriles laterales, mismo modo de interconexión que la anterior.

Identificar las patillas del led Tricolor. Para asignar correctamente los colores al momento de montar nuestro circuito debemos

identificar que patilla corresponde a un color en específico para esto debemos hacer lo siguiente.

23

Recordando que nuestro led RGB es ánodo común, debemos comenzar por ahí identificando esta

patilla en la cual aplicaremos 5 voltios, y para cerrar el circuito debemos utilizar GND (tierra) pero

siempre auxiliados de una resistencia de 330 ohms. Luego cerramos el circuito con una patilla a la

vez para identificar que patilla corresponde a cada color y así poder conectar cada color

correctamente.

Nota: para hacer esta prueba la tableta debe estar alimentada de cualquiera de las 3 formas antes

mencionadas.