led rgb controlado por arduino desde el...
Post on 30-Sep-2018
239 Views
Preview:
TRANSCRIPT
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.
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.
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.
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.
top related