Está en la página 1de 45

UNIVERSIDAD AUTNOMA

DEL

ESTADO

DE

HIDALGO

INSTITUTO DE CIENCIAS BSICAS E INGENIERA ESCUELA SUPERIOR DE TLAHUELILPAN

LICENCIATURA EN SISTEMAS COMPUTACIONALES

ELECTRNICA BSICA

CONSTRUCCIN DE UN CUBO DE LEDS CON ARDUINO

Elaborado por:

Aguilar Delgado Zuleidy Callejas Valdez Nathalie Marlem Dorantes Dorantes Marisol Estrada Cruz Damin Flores de la Rosa Fausto Alfonso Galvn Morales Teresa Garca Escamilla Edgar Jimnez Jimnez Silvia Moreno Ziga Alberto Prez Gutirrez Joel Bernardo Trujillo Cruz Javier

Grupo 301 LSC Informe de Prctica IP.LSC.EB-1201 Mayo/2012

UAEH Escuela Superior de Tlahuelilpan. Ex Hacienda de San Servando. Tlahuelilpan de Ocampo, Hgo.,
C.P. 42780. E-mail: grupsystems@hotmail.com

RESUMEN

Desarrollo de una serie, bajo la plataforma de Arduino, que permite encender un cubo de LEDS 3 * 3 (27 unidades) mediante la programacin. El proyecto busc la sencillez de uso, para facilitar con pequeos esquemas el entorno del proyecto. El software del proyecto utiliza exclusivamente soluciones libres y de uso gratuito.

Desarrollado en Sistema Operativo Windows XP. Una vez determinado el como fuimos capaces de enlazar todos los elementos y hacer que interactuaran entre si y funcionara, se pueden utilizar estos conocimientos y participar con el proyecto: cubo de LEDS con Arduino.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. ii

CONTENIDO

INTRODUCCIN 1. PLANTEAMIENTO DEL PROBLEMA 2. OBJETIVO 3. NOTACIONES Y DEFINICIONES 4. FUNDAMENTOS

1 3 3 4 6

5. DESARROLLO TERICO 5.1. Anlisis del problema 5.2. Diseo de la solucin 5.3. Resultados esperados 6. DESARROLLO EXPERIMENTAL
7.1. 7.2. 8.

9 10 15

Construccin de los sistemas Resultados experimentales

15 32 33 39 40 41

ANLISIS DE RESULTADOS

CONCLUSIONES REFERENCIAS ANEXO I. INFRAESTRUCTURA

Lista de Figuras

Figura 1. Familia de microcontroladores Atmel Figura 2. Lenguaje de programacin Arduino 1.0 Figura 3. Diseo de la construccin del cubo de leds Figura 4. Plantilla para colocar el cubo de leds Figura 5. Doblamos los ctodos y nos ayudamos con el molde

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. iii

Figura 6. Estructuras de leds Figura 7. Estructuras montadas para soldar los nodos Figura 8. Cubo de Leds 3x3x3 Figura 9. Es esta figura se muestran los terminales de un led Figura 10. Muestra como debe de estar doblado Figura 11. Se muestra como van unidos los leds Figura 12. Estructura de cada seccin de nueve leds Figura 13. Muestra como quedan Figura 14. Resistencias conectadas a los nodos resultantes de cada fila Figura 15. Partes del transistor Figura 16. Terminales de salida de arduino UNO Figura 17. Muestra como quedo finalmente el circuito siguiendo los pasos descritos Figura 18. Windows reconociendo al dispositivo arduino Figura 19. Asistente para nuevo hardware de Windows XP Figura 20. Examinador de archivos para los controladores de arduino Figura 21. Instalacin del controlador correspondiente Figura 22. Finalizacin del asistente para hardware Figura 23. Interfaz del compilador arduino Figura 24. Creacin de un nuevo archivo de cdigo Figura 25. Utilizacin de cdigo prediseado por el compilador Figura 26. Cdigo generado por el compilador Figura 27. Interfaz donde se muestra la seleccin del modelo de arduino Figura 28. Interfaz de la seleccin del puerto Figura 29. Lugar donde se encuentra el botn upload Figura 30. Muestra como estn conectadas las terminales del leds Figura 31. Cubo conectado con cada uno de los elementos mencionados Figura 32. Botn RESET indicando su ubicacin

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. iv

Figura 33. Prototipo funcionando Figura 34. Resultado experimental con arduino Figura 35. Cdigo fuente de la secuencia de una serie navidea. Figura 36. Muestra la declaracin de los arreglos y parte de la lgica de programacin Figura 37. Muestra la otra parte de la lgica de programacin Figura 38. Muestra la otra parte de la lgica de programacin Figura 39. Imagen que demuestra como el arduino funciona formando el nmero tres Figura 40. Imagen que demuestra como el arduino funciona formando el nmero cero Figura 41. Imagen que demuestra como el arduino funciona formando en nmero uno

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. v

INTRODUCCIN
Arduino, es una plataforma de prototipos electrnica de cdigo abierto basada en hardware y software flexibles y sencillos de usar. Est pensado para cualquier interesado en crear objetos o entornos interactivos. Este artefacto, puede sentir el entorno mediante la recepcin de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa usando su propio software, "Arduino Programming Language" basado en Wiring y el Arduino Development Environment basado en Processing. Los proyectos de Arduino pueden ser autnomos o se pueden comunicar con software en ejecucin en un ordenador. Existen muchos microcontroladores y plataformas microcontroladores disponibles para

computacin fsica. Todas estas herramientas toman los desordenados detalles de la programacin del microcontrolador y la encierran en un paquete fcil de usar. Arduino simplifica el proceso de trabajo con microcontroladores y ofrece grandes ventajas. Arduino inici como un proyecto que se hizo en el Instituto de Diseo Interactivo Ivrea en el ao 2005; Aunque su origen est implcito en otros proyectos ya trabajados, con el objetivo de hacer una herramienta para los estudiantes ms moderna que las existentes en el mercado, incluyendo a la BASIC Stamp, con un costo aproximado de 100 dlares y que los estudiantes no estaban dispuestos a pagar y con la necesidad de adquirir varias placas. Adems, los fundadores estaban ante la problemtica de un posible cierre de la escuela, por lo que disearon a Arduino como un hardware open source. As, naci la primera placa Arduino, establecida slo para los estudiantes: La primera versin RS232 para soldar. Tiempo despus, se lleg a un acuerdo con otros Institutos, con el fin de hacer comercial el producto. Se trabaj con la versin USB ya montada, probada y lista para funcionar, y que en el ao de 2010, se llevaban vendidos ms de 40,000 placas. El Arduino contiene 14 pines de entrada/salida digital (de los cuales 6 pueden ser usados como salidas PWM). 6 entradas analgicas, un oscilador de cuarzo a 16MHz, una conexin USB, un conector para alimentacin, una cabecera ICSP y un botn de reset. Contiene todo lo necesario para soportar el microcontrolador simplemente conectado a un ordenador con un cable USB o enchufado con un adaptador AC/DC o batera para comenzar.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 1

El Arduino puede ser alimentado a travs de la conexin USB o con un suministro de energa externa. La fuente de energa se selecciona mediante el jumper PWR_SEL La alimentacin externa (es decir, no USB) puede venir desde un adaptador AC a DC o desde una batera. El adaptador puede ser conectado mediante un enchufe centro-positivo en el conector de alimentacin de la placa. Los cables de la batera pueden insertarse en las cabeceras de los pines Gnd y Vin del conector POWER. Un regulador de bajo abandono proporciona eficiencia energtica. La placa puede operar con un suministro externo de 6 a 20 volts. Si es suministrada con menos de 7V, sin embargo, el pin de 5V puede suministrar menos de 5 V y la placa podra ser inestable. Si se usa ms de 12 V, el regulador de tensin puede sobrecalentarse y daar la placa. El rango recomendado es de 7 a 12 V.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 2

1. PLANTEAMIENTO DEL PROBLEMA

A partir de la revolucin de la electrnica, comienza en el mundo una rpida escala de avances tecnolgicos en todas sus manifestaciones: la educacin y la industria. Es por ello que debemos aprovechar nuestra facultad intelectual y capacidad de razonamiento para innovar, crear, experimentar y aprender ms sobre prototipos electrnicos. El desarrollo de la electrnica es una necesidad que no se puede dejar a un lado en los avances tecnolgicos. Los constantes avances y la aparicin de nuevas tecnologas han dado un impulso a la creacin de nuevas ideologas cientficas, tecnolgicas y sociales, provocando un cambio radical a las actividades educativas.

Analizando dispositivos que ayudan a los estudiantes proporcionndoles una herramienta que les permita crear sus propios prototipos electrnicos, integrado sus conocimientos adquiridos en las diferentes materias, se encontr una placa denominada Arduino. Basado en la documentacin, que se ha analizado surgi la inquietud de como llevar acabo una pequea demostracin con el dispositivo electrnico ARDUINO, entre algunas de las incgnitas por resolver estn; cmo se utiliza?, cmo se conecta?, cmo se programa?, Cul es su comportamiento? De acuerdo a lo expuesto en relacin a la problemtica nos queda una gran interrogante cmo funciona el arduino?

2. OBJETIVO

El objetivo de esta prctica consiste en ampliar el conocimiento del funcionamiento del dispositivo Arduino Uno, haciendo uso de la informacin terica previa que se tiene de ste, y de la programacin requerida, con el fin de lograr que el cubo de LED construido funcione satisfactoriamente.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 3

1. NOTACIONES Y DEFINICIONES Diecimila: Es la placa Arduino ms popular. Se conecta al ordenador con un cable estndar USB que contiene todo los que se necesita para programar y usar la placa bien. GND: Tierra, ubicada en los pines de Arduino. Nano: Una placa compacta disear para uso como tabla de pruebas, el Nano se conecta al ordenador usando un cable USB Mini-B.

Mini: Esta es la placa ms pequea de Arduino. Trabaja tablas, aplicaciones en las que prima su espacio. Se conecta al ordenador usando el cable Mini USB. Serial: Es una placa bsica que usa RS232 como una interfaz con su ordenador para la programacin y comunicacin. Esta placa puede ejercerse de aprendizaje. Serial Single Sided: Esta placa est diseada para ser grabadas y ensambladas a mano. Es compatible con los dispositivos. VIN: Es la entrada de la tensin a la placa Arduino cuando est usando por una fuente de alimentacin externa. Tambin se puede suministrar su tensin a travs de este pin. SPI: 10 (SS), 12 (SCK): Son pines de soportar las comunicaciones SPI, la cual se proporciona por el hardware. PWM: Es una forma de falsificar una salida analgica por la salida pulsante. Esto es para iluminar LED.
Lic. En Sistemas Computacionales 301 Construccin de un cubo de leds con arduino pg. 4

BASIC STAMP: Es un microcontrolador que posee un intrprete especializado de BASIC (PBASIC) que se encuentra en su memoria ROM. Posee la forma de un chip DIP (Dual In Package), encontrndose en una placa de circuito impreso que contiene los elementos esenciales para un microprocesador:

MICROCONTROLADOR: Es un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: unidad central de procesamiento, memoria y unidades de E/S (entrada/salida).

MULTIDISCIPLINARES: Aplicacin a varias disciplinas.

OPEN SOURCE: Software Abierto (Open Source) es un movimiento en crculos de programadores caracterizado por la creacin de cdigo 'abierto' que puede ser modificado o distribuido sin pagar una licencia. . OSCILADOR: Un oscilador es un sistema capaz de crear perturbaciones o cambios peridicos o cuasi peridicos en un medio, ya sea un medio material (sonido) o un campo electromagntico (ondas de radio, microondas, infrarrojo, luz visible, rayos X, rayos gamma, rayos csmicos).

PROCCESING: Lenguaje de programacin que donde podamos desarrollar nuestro prototipo. WIRING:

ofrece un completo entorno

tarjeta

de

entrada

salida

multi-propsito

basada

en

un

microcontrolador y un ambiente de desarrollo integrado basado en Processing.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 5

WRITTING: Es una aplicacin que almacena datos en el registro del sistema, que es probable que su registro haya sufrido una fragmentacin y acumulado en entradas no vlidas que pueden afectar al rendimiento del PC.

2. FUNDAMENTOS TERICOS

ARDUINO

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares. El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. 4 Los microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos.

Figura 1. Familia de microcontroladores Atmel

Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programacin Processing/Wiring y el cargador de arranque (boot loader) que corre en la placa.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 6

Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia Flash, Processing, Max/MSP, Pure Data). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. Al ser open-hardware, tanto su diseo como su distribucin son libres. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia.

Consta de 14 entradas digitales configurables entrada i/o salidas que operan a 5 voltios. Cada pin puede proporcionar o recibir como mximo 40 mA. Los pines 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation). Si se conecta cualquier cosa a los pines 0 y 1, eso interferir con la comunicacin USB. Diecimila tambin tiene 6 entradas analgicas que proporcionan una resolucin de 10 bits. Por defecto miden de 0 voltios (masa) hasta 5 voltios, aunque es posible cambiar el nivel ms alto, utilizando el pin Aref y algn cdigo de bajo nivel.

LENGUAJE DE PROGRAMACIN DE ARDUINO

La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el popular lenguaje de programacin de alto nivel Processing. Sin embargo, es posible utilizar otros lenguajes de programacin y aplicaciones populares en Arduino. Algunos ejemplos son:

Java Flash (mediante ActionScript) Processing Pure Data MaxMSP (entorno grfico de programacin para aplicaciones musicales, de audio y multimedia) VVVV (sntesis de vdeo en tiempo real)
Lic. En Sistemas Computacionales 301 Construccin de un cubo de leds con arduino pg. 7

Adobe Director Python Ruby C C++ (mediante libSerial o en Windows) C# Cocoa/Objective-C (para Mac OS X) Linux TTY (terminales de Linux) 3DVIA Virtools (aplicaciones interactivas y de tiempo real) SuperCollider (sntesis de audio en tiempo real) Instant Reality (X3D) Liberlab (software de medicin y experimentacin) BlitzMax (con acceso restringido) Squeak (implementacin libre de Smalltalk) Mathematica Matlab Minibloq (Entorno grfico de programacin, corre tambin en OLPC) Isadora (Interactividad audiovisual en tiempo real) Perl Visual Basic .NET VBScript Gambas

Esto es posible debido a que Arduino se comunica mediante la transmisin de datos en formato serie que es algo que la mayora de los lenguajes anteriormente citados soportan. Para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicacin fluida. Es bastante interesante tener la posibilidad de interactuar Arduino mediante esta gran variedad de sistemas y lenguajes puesto que dependiendo de cuales sean las necesidades del problema que vamos a resolver podremos aprovecharnos de la gran compatibilidad de comunicacin que ofrece.
Lic. En Sistemas Computacionales 301 Construccin de un cubo de leds con arduino pg. 8

Figura 2. Lenguaje de programacin Arduino 1.0

3. DESARROLLO TERICO

Despus de documentarnos sobre el concepto de arduino y algunas de sus funciones procederemos al armado del circuito para el prototipo para hacer funcionar un cubo de leds que encendern de manera aleatoria.

5.1.

Anlisis del problema

Debido a que se no se tiene el conocimiento de cmo funcionan las terminales de arduino con la investigacin previa ya hecha se conocer la manera en que trabaja este dispositivo as como su programacin que para este caso es sencilla.

5.2.

Diseo de la solucin

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 9

Diseo. Desarrollo del diseo, partiendo del conocimiento de los valores nominales con los que trabaja el dispositivo electrnico: arduino y sabiendo que se puede combinar con otros dispositivos electrnicos, se plantea el siguiente bosquejo.

Figura 3. Diseo de la construccin del cubo de leds. . (Fuente: http://electronicavm.files.wordpress.com/2011/07/cubo.png)

Anlisis. Para la construccin del cubo se emplearan 27 leds, nueve resistencias de 220 y tres de 10 k, tres transistores 2N3904 y una plantilla perforada.

Primero se empleara plantilla con agujeros para tener una base para el cubo

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 10

Figura 4. Plantilla para colocar el cubo de leds. . (Fuente: http://electronicavm.files.wordpress.com/2011/07/plantilla.jpg)

Una vez tengamos la plantilla terminada, colocamos un molde para ir soldando cada uno de los leds e ir formando los niveles que constituirn el cubo, la manera de soldar ser la siguiente: dentro de forma que queden los ctodos (patilla ms corta) hacia adentro del cubo. Deben quedar los ctodos hacia adentro ya que son stos los que conectaremos para formar el primer nivel del cubo, as que doblamos y conectamos los ctodos de los leds para que quede un ctodo comn para todos los leds.

Figura 5. Doblamos los ctodos y nos ayudamos con el molde . (Fuente: http://electronicavm.files.wordpress.com/2011/07/catodos-y-pinzas1.jpg)

Una vez soldados los ctodos retiramos la estructura que queda, y realizamos el mismo paso 3 veces, para obtener 3 estructuras de 9 leds conectados por sus ctodos, que sern los 3 niveles o filas del cubo.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 11

Figura 6. Estructuras de leds . (Fuente: http://electronicavm.files.wordpress.com/2011/07/estructuras.jpg)

Una vez que tengamos las estructuras de los leds, procedemos a conectarlas entre s, y para ello utilizando la misma plantilla colocamos una de las estructuras dentro, colocamos otra estructura encima y soldamos los nodos de los leds esta vez, repitiendo el paso para la ltima estructura y finalizando el cubo.

Figura 7. Estructuras montadas para soldar los nodos . (Fuente: http://electronicavm.files.wordpress.com/2011/07/c3a1nodos.jpg)

Y as, finalizamos el cubo, de modo que obtenemos un cubo con 9 patillas donde cada una de ellas corresponde al nodo de los 3 leds de esa misma columna, y 3 niveles o filas de leds conectados por sus ctodos. Si se observa de un modo informtico, es un array bidimensional de leds, tenemos columnas y filas, y as es como accederemos a cada uno de los leds con Arduino.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 12

Figura 8. Cubo de Leds 3x3x3 . (Fuente: http://electronicavm.files.wordpress.com/2011/07/cubo3x3x3.jpg)

Terminado el cubo procedemos a la conexin con Arduino. Dado que son leds, necesitan de una pequea resistencia as que conectamos cada uno de los pines del cubo con una resistencia de 220 , a 9 pines digitales del Arduino. Para conectar los ctodos los 3 niveles del cubo, debemos utilizar 3 transistores NPN, en este caso se usarn 2N3904, puesto que al conectar los ctodos a 3 pines digitales del Arduino podemos encender el cubo enviando valores lgicos 0 LOW, pero cuando queramos apagar el cubo no podemos enviar un valor lgico HIGH, ya que quemaremos los leds, estaramos aplicando positivo en ambas patillas del led, por lo que no es posible. As que conectamos cada uno de los 3 niveles al colector de 3 transistores NPN, la base de los transistores se conectara a los pines digitales del Arduino, y cada uno de los niveles del cubo.

As utilizamos el transistor en conmutacin, de modo que al enviar con Arduino un valor lgico HIGH a uno de los transistores, ste entrar en saturacin, conectando el colector con el emisor, de forma que el ctodo se conectara a tierra como se muestra en la Figura 3. Una vez conectado, declaramos los pines como un array de filas y columnas, esto significa encender unos leds. A continuacin se muestra la programacin para encender los leds.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 13

Cdigo fuente
01 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 void RandLed() { RandFila = random(0,3); RandColumna = random(0,9); } void loop() { RandLed(); } for (int contador = 0; contador < 4; contador++){ pinMode(Filas[contador], OUTPUT); } for (int contador = 0; contador < 10; contador++){ pinMode(Columnas[contador], OUTPUT); } void setup() { int contador; int Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int Filas[] = {12, 11, 10}; int RandFila; //Variable para fila aleatoria

int RandColumna; //Variable para columna aleatoria

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 14

28 29 30 31 32 33 34 35 36 37 }

digitalWrite(Filas[RandFila], HIGH); digitalWrite(Columnas[RandColumna], HIGH);

delay(75);

digitalWrite(Filas[RandFila], LOW); digitalWrite(Columnas[RandColumna], LOW);

delay(50);

5.3.

Resultados esperados

En esta prctica se espera que el cubo construido con LEDs encienda de acuerdo a lo programado, como consecuencia de un trabajo bien elaborado. Abriendo paso a una mejor comprensin de Arduino.

7. DESARROLLO EXPERIMENTAL

La metodologa del desarrollo de este proyecto a seguir en este proyecto ser la siguiente: como primer paso se soldar el cubo conectando las terminales como lo indica el diseo, posteriormente se conectarn los transistores y las resistencias para finalmente conectarlas a la placa arduino como se describi en el diseo de la solucin. Finalmente se proceder a programar en el compilador de arduino para que enciendan los leds.

7.1.

Construccin de los sistemas

Materiales necesarios: 27 Leds


Construccin de un cubo de leds con arduino pg. 15

Lic. En Sistemas Computacionales 301

9 Resistencias de 220 3 Resistencias de 10 k 9 pines digitales de arduino Arduino UNO Cable Estao Cautn 3 Transistores 2N3904 1 Tabla perforada

El primer pas en la construccin del cubo que se pretende hacer, en este caso de 3*3*3 leds para su posterior encendido de manera aleatoria siguiendo los siguientes pasos. 1. El primer paso es crear cada cuadrado integrado por 9 leds que formaran el cubo y sern 3 cuadrados unidos de la siguiente manera como se muestra en la imagen. Cada led se une a otro a travs del ctodo que es la pata ms corta del led y esta es la terminal negativa del mismo formando un cuadrado.

Figura 9. Es esta figura se muestran los terminales de un led . (Fuente: propia)

La manera de unirlos es doblando los ctodos formando un ngulo de 90 con respecto al nodo de cada led para soldarlos uno a otro con ayuda del estao y del cautn deben quedar colocados dela siguiente manera.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 16

Figura 10. Muestra como debe de estar doblado (Fuente: propia)

Figura 11. Se muestra como van unidos los leds (Fuente: propia)

2. Una vez que tengamos cada seccin de leds procederemos a unirlas una por una de para formar el cubo, uniendo cada nodo de la seccin de arriba con la de debajo de manera que todas las secciones queden unidas en un solo nodo de manera que solo quede uno nodo por la fila de tres leds.

Figura 12. Estructura de cada seccin de nueve leds (Fuente: http://electronicavm.files.wordpress.com/2011/07/e structuras.jpg)

Figura 13. Muestra como quedan interconectadas las secciones de los leds (Fuente: propia)

3. Cuando el cubo est terminado, se pasa a soldar una resistencia de 220 en cada terminal del nodo como lo muestra la imagen.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 17

Figura 14. Resistencias conectadas a los nodos resultantes de cada fila

4. Cada resistencia va colocada en una tabla perforada que es similar a un protoboard en la cual se pueden conectar y soldar diversos componentes electrnicos. Para poder alimentar cada seccin de leds va conectada a un transistor 2N3904 el cual elevara la intensidad de corriente para el encendido de cada fila de 3 leds ya que la sustentada por las terminales de arduino no es suficiente ya que esta se distribuye en las terminales de arduino.

Cada transistor va conectado de la siguiente manera: Los emisores van conectados a los niveles del cubo. La base va conectada a una resistencia de 10 k y esta a su vez a la terminal No. 12 de arduino. El colector de cada transistor va conectado a la GND de Arduino.

*Emisor *Base *Colector

Figura 15. Partes del transistor (Fuente: propia)

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 18

Salidas de 5v (repartida en todas las terminales

Tierra

Figura 16. Terminales de salida de arduino UNO (Fuente: propia)

Figura 17. Muestra como quedo finalmente el circuito siguiendo los pasos descritos. (Fuente: propia)

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 19

5. Una vez que se tiene terminado el circuito con la conexin mostrada en la imagen siguiente se proceder a programar el dispositivo arduino con su compilador facilitado de la pgina oficial del mismo fabricante www.arduino.cc.

6. Para poder programar arduino en su compilador incluye sus drivers para este caso Windows aqu se describir como instalar sus controladores. Se conectar el dispositivo arduino a la PC a travs de su cable USB Windows automticamente reconocer el dispositivo pero al no contar con los drivers correspondientes nos abrir un asistente.

Figura 18. Windows reconociendo al dispositivo arduino (Fuente: propia)

Una vez que Windows ha reconocido al dispositivo solo se seguirn los pasos mismos que incluye para instalar los drivers correspondientes.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 20

Figura 19. Asistente para nuevo hardware de Windows XP (Fuente: propia)

Seleccionamos la segunda opcin que es instalar desde una ubicacin en nuestra PC ya que no contamos con el cd de instalacin, presionamos aceptar y siguiente.

Figura 20. Examinador de archivos para los controladores de arduino (Fuente: propia)

Una vez que ya encontramos los controladores le damos en continuar ya que los controladores no estn firmados por Windows.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 21

Figura 21. Instalacin del controlador correspondiente (Fuente: propia)

Una vez instalados estos ya est disponible para utilizarse con la interfaz de arduino.

Figura 22. Finalizacin del asistente para hardware (Fuente: propia)

7. Una vez instalados los controladores de arduino procedemos a abrir el compilador de arduino.

Figura 23. Interfaz del compilador arduino (Fuente: propia)

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 22

8. Cuando ha cargado la interfaz lo primero que haremos ser probar nuestro arduino con un ejemplo que ya est prestablecido en el compilador nos vamos a File y damos clic en new.

Figura 24. Creacin de un nuevo archivo de cdigo (Fuente: propia)

9. Una vez que abrimos un nuevo proyecto para su codificacin lo primero que haremos ser usar un cdigo prediseado para poder encender y apagar un led el cual est en file/examples/basic/blick.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 23

Figura 25. Utilizacin de cdigo prediseado por el compilador (Fuente: propia)

El cual nos crear el siguiente cdigo:

Figura 26. Cdigo generado por el compilador (Fuente: propia)

10. Ahora para enviar nuestro cdigo a Arduino lo primero es seleccionar el modelo de nuestro arduino en el men 24 Tools/board y el modelo es arduino UNO.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 24

Figura 27. Interfaz donde se muestra la seleccin del modelo de arduino (Fuente: propia)

11. Despus seleccionamos el puerto donde est conectado el arduino en la misma seccin para este caso el puerto COM16.

Figura 28. Interfaz de la seleccin del puerto (Fuente: propia)

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 25

12. Ya seleccionado el modelo y puerto solo enviamos el cdigo con el botn upload indicado en la figura.

Botn Upload

Figura 29. Lugar donde se encuentra el botn upload (Fuente: propia)

En la seccin inferior nos aparecer el mensaje Upload y cuando finalice l envi del cdigo aparecer el mensaje de done upload y el cdigo ya estar en nuestro arduino.

13. Con el arduino programado se usara como fuente de alimentacin el cable USB del mismo con el voltaje de 5 V. Ahora procedemos a conectar un led en las salidas de arduino de la siguiente manera el nodo a la terminal 12 y el ctodo a la terminal GND que es tierra esto har que el led encienda y apague cada segundo.

Figura 30. Muestra como estn conectadas las terminales del leds (Fuente: propia)

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 26

Figura 31. Cubo conectado con cada uno de los elementos mencionados (Fuente: propia)

14. Una vez probado el cdigo y el funcionamiento correcto de nuestro arduino creamos nuestro cdigo para controlar la secuencia de encendido del cubo de leds que es el siguiente:

int Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};//arreglo que contiene los nmeros de terminales donde estn conectados los leds al nodo int Filas[] = {12, 11, 10};//arreglo que contiene las terminales 12,11,10 que estn conectadas a los transistores int RandFila; //variable para fila encendido aleatoria

int RandColumna; //variable para columna encendido aleatoria

void setup() //usado inicializar los nodos de los pines {

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 27

int contador; //variable para un numero contenido entre 0 y 10

for (int contador = 0; contador < 10; contador++){ //ciclo para usar el nmero de pin entre 0 y 10 y que cada ciclo incremente 1 cifra mas pinMode(Columnas[contador], OUTPUT); } //sirve para indicar el nmero de pin Activo dependiendo el valor de la variable contador para las columnas de leds for (int contador = 0; contador < 4; contador++){ //ciclo para usar el nmero de pin entre 0 y 4 y que cada ciclo incremente 1 cifra mas pinMode(Filas[contador], OUTPUT); }//sirve para indicar el nmero de pin Activo dependiendo el valor de la variable contador para las filas de leds y establece el pin como salida }

void loop() //inicia los bucles de manera consecutiva en arduino { RandLed();//nombre de la funcin para encender y apagar los leds }

void RandLed()//Contiene las acciones que har esta funcin { RandFila = random(0,3);//crea valores aleatorios para Fila entre 0 y 3 RandColumna = random(0,9); //crea valores aleatorios para columna entre 0 y 9

digitalWrite(Filas[0], HIGH);//manda voltaje al transistor 1 digitalWrite(Columnas[0], HIGH); //manda voltaje a la columna 1 digitalWrite(Columnas[1], HIGH); digitalWrite(Columnas[2], HIGH); digitalWrite(Columnas[3], HIGH); digitalWrite(Columnas[4], HIGH); digitalWrite(Columnas[5], HIGH);
Lic. En Sistemas Computacionales 301 Construccin de un cubo de leds con arduino pg. 28

digitalWrite(Columnas[6], HIGH); digitalWrite(Columnas[8], HIGH); delay(1000); //intervalo de tiempo de 1 segundo digitalWrite(Filas[0], LOW);//quita el suministro de voltaje en el transistor 1 digitalWrite(Columnas[0], LOW); //quita el suministro de voltaje el led 1 digitalWrite(Columnas[1], LOW); digitalWrite(Columnas[2], LOW); digitalWrite(Columnas[3], LOW); digitalWrite(Columnas[4], LOW); digitalWrite(Columnas[5], LOW); digitalWrite(Columnas[6], LOW); digitalWrite(Columnas[8], LOW);

delay(1000);//intervalo de tiempo de 1 segundo

digitalWrite(Filas[1], HIGH); digitalWrite(Columnas[0], HIGH); digitalWrite(Columnas[1], HIGH); digitalWrite(Columnas[2], HIGH); digitalWrite(Columnas[3], HIGH); digitalWrite(Columnas[5], HIGH); digitalWrite(Columnas[6], HIGH); digitalWrite(Columnas[7], HIGH); digitalWrite(Columnas[8], HIGH); delay(1000); digitalWrite(Filas[1], LOW); digitalWrite(Columnas[0], LOW); digitalWrite(Columnas[1], LOW); digitalWrite(Columnas[2], LOW); digitalWrite(Columnas[3], LOW); digitalWrite(Columnas[5], LOW);
Lic. En Sistemas Computacionales 301 Construccin de un cubo de leds con arduino pg. 29

digitalWrite(Columnas[6], LOW); digitalWrite(Columnas[7], LOW); digitalWrite(Columnas[8], LOW); delay(1000);

digitalWrite(Filas[21], HIGH); digitalWrite(Columnas[3], HIGH); digitalWrite(Columnas[4], HIGH); digitalWrite(Columnas[5], HIGH); delay(1000); digitalWrite(Filas[2], LOW); digitalWrite(Columnas[3], LOW); digitalWrite(Columnas[4], LOW); digitalWrite(Columnas[5], LOW); delay(1000);

digitalWrite( Filas[RandFila], HIGH); digitalWrite(Columnas[RandColumna], HIGH); delay(1000);

digitalWrite( Filas[RandFila], LOW); digitalWrite(Columnas[RandColumna], LOW); }

Definiciones del cdigo: El termino INT declara que la variable es de tipo entero. La funcin Rand se utiliza para crear valores aleatorios que tienen la siguiente sintaxis: Rand(min,max) Donde min y max solo los valores numricos asignados para la creacin de estos valores.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 30

pinMODE.OUTPUT establece el pin como salida en las terminales digitalWrite[], HIGH; indica que la terminal esta activa entre los corchetes se indica el nmero de terminal. digitalWrite([], LOW); indica que la terminal esta inactiva entre los corchetes se indica el nmero de terminal. Delay indica un rango de tiempo definido en microsegundos con la siguiente sintaxis: Delay(ms);

15. Se enva el cdigo al dispositivo arduino con el modelo y puerto indicados anteriormente y lo enviamos con el botn upload.

16. Ahora con el prototipo terminado y conectado ya con la programacin hecha solo se conecta prototipo con el USB para alimentarlo a 5V. y encendern los leds de manera aleatoria usando el botn RESET que est en arduino podremos reiniciar el ciclo del cdigo al inicio del mismo.

Figura 32. Botn RESET indicando su ubicacin (Fuente: propia)

Una captura del prototipo finalizando funcionando as finalizando la construccin del sistema.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 31

Figura 33. Prototipo funcionando (Fuente: propia)

7.2.

Resultados experimentales

El resultado experimental que se obtuvo del proyecto realizado fue satisfactorio ya que se logro el objetivo el cual era que el cubo de leds encendiera, este resultado se debi a que se comprendi como funciona el dispositivo electrnico Arduino; adems tambin se logr programarlo para formar los nmeros tres, cero y uno que juntos forman el numero 301, esto solo para demostrar que se puede lograr cualquier secuencia que se desee cambiando la programacin.

Se concluye de los resultados experimentales que se han adquirido nuevos conocimientos y demostrado que desarrollamos nuestra capacidad de anlisis y comprensin.

Figura 34. Resultado experimental con arduino

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 32

(Fuente: propia)

8. ANLISIS DE RESULTADOS

Utilizando

ARDUINO 1.0 para crear una serie de leds que realiz una iluminacin

inicialmente como la de las series navideas para la cual se utiliz el cdigo fuente que se descargo de internet y el compilador de ARDUINO (Figura 23) haciendo uso de una laptop Sony VAIO con Windows XP. En la siguiente figura se puede apreciar el primer cdigo con el que se programado y descargado a la placa arduino.

Figura 35. Cdigo fuente de la secuencia de una serie navidea. (Fuente: proia)

Despus de haber visto el funcionamiento del cubo de leds con esta programacin se determino a cambiar la programacin que mostrar el nmero 301, se opt que realizara esa cifra porque es el grupo actual al que pertenecemos siendo significativo para todo el equipo y con el cual este proyecto se identifica.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 33

A continuacin se muestra una parte de la programacin ilustrando con imgenes capturadas del nuevo cdigo fuente que se empleo para formar el nmero 301, cada una de ellas explicada para que se puedan comprender mejor los cambios realizados:

Figura 36. Muestra la declaracin de los arreglos y parte de la lgica de programacin (Fuente: proia)

Setup () El comando void setup () es llamado una vez al iniciar el programa. Se utiliza para inicializar los modos de PIN, o empezar de serie. Debe incluirse en un programa, incluso si no hay declaraciones a correr. int Los enteros son el tipo de datos primarios para el almacenamiento de nmeros, sin decimales y almacenar un valor de 16-bits con un rango de -32.768 a 32.767. int someVariable = 1500 // declara 'someVariable' // Como un tipo entero

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 34

Figura 37. Muestra la otra parte de la lgica de programacin (Fuente: proia)

loop () Despus de llamar a void setup() la funcin void loop () hace precisamente lo que sugiere su nombre, ejecuta los bucles de forma consecutiva, permitiendo que el programa responda a los cambios, y el control de la placa Arduino.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 35

Figura 38. Muestra la otra parte de la lgica de programacin (Fuente: proia)

digitalWrite (pin,value) Productos de alto nivel ya sea lgica o BAJA (se enciende o apaga) a un pin digital especificado. El pin se puede especificar ya sea como una variable o constante (0-13).

Comparando los resultados cuando arduino fue conectado mediante el cable USB a una computadora y programado para realizar las dos distintas funciones, primero una serie y posteriormente un nmero se demuestra que es posible realizar los cambios que se deseen y cuantas veces se requiera.

Lo siguiente que se muestra la imagen es el arduino con la placa de leds formando el nmero mediante la programacin que se realiz.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 36

Figura 39. Imagen que demuestra como el arduino funciona formando el nmero tres. (Fuente: propia)

Figura 40. Imagen que demuestra como el arduino funciona formando el nmero cero. (Fuente: propia)

Figura 41. Imagen que demuestra como el arduino funciona formando en nmero uno. (Fuente: propia)

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 37

CONCLUSIONES

Arduino, es una plataforma sencilla, pequea y fcil de manejar; cuenta con su propio compilador, adems de que el lenguaje en que se programa es bastante sencillo; es un hardware open source, por lo que no hay problema en usarlo una y otra vez en cualquier proyecto; tiene 2 alimentaciones de energa, lo cual es bastante prctico; y su costo no es elevado, ya que ronda de los 500 a los 1, 500 pesos de acuerdo a su modelo. Una plataforma altamente recomendable si quieres crear algo innovador. La prctica desarrollada de la construccin de los cubo de leds 301 sirvi para demostrar el funcionamiento de arduino, fue un arduo trabajo sobre todo porque no se contaba con conocimientos previos de este dispositivo electrnico, pero esto nos permiti conocerlo y darnos cuenta de que en verdad no se requiere un extenso conocimiento de electrnica para poder manipularlo solo es cuestin de que tengas iniciativa.

Este fue un pequeo proyecto que prob que si quieres puedes construir tus propios prototipos con la documentacin necesaria.

Se recomienda que para futuros proyectos que quieras desarrollar, te documentes y aproveches de todos los recursos que tengas a tu alcance para un resultado exitoso como lo fue este proyecto. La nica problemtica con la que te encuentres quiz sea la falta de ideas nuevas para tus creaciones. Sin embargo, esta poderosa herramienta te brinda alternativas para que lo uses como mejor te convenga y sigas experimentando.

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 38

REFERENCIAS

[1]

http://www.arduino.cc/es/

[2]

http://electronicavm.wordpress.com/2011/07/27/cubo-de-leds-3x3x3-conarduino/#more-777

[3]

http://arduino.cc/es/Main/ArduinoBoardDuemilanove

[4]

http://electronicavm.wordpress.com/2011/01/04/arduino/

[5]

http://blog.bricogeek.com/noticias/arduino/

[6]

http://www.steren.com.mx/catalogo/search.asp?s=programador&sugerencia=0&sear ch_type=prod

[7]

Electrnica - Teora de Circuitos y Dispositivos Electrnicos, 8E (R.L. Boylestad, L. Nashelsky) (Pearson) (2003) (9789702604365)

[8]

Morton, P. L. et al. (1985). John Robert Woodyard, Ingeniero elctrico: Berkeley. Universidad de California.

[9]

Giordano, Jos Luis El conductor elctrico (Ley de Ohm) Profsica. Chile [13-52008]

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 39

ANEXO I. INFRAESTRUCTURA

MATERIALES UTILIZADOS EN EL PROYECTO ARDUINO Equipo de cmputo:

MARCA SONY DELL

MEMORIA 2 GB 3 GB

WINDOWS 7 7 HOME BASIC

DISCO DURO 2 TB 500 GB

Componentes electrnicos:

CANTIDAD NOMBRE 1 27 9 3 9 ARDUINO UNO LEDS RESISTENCIAS RESISTENCIAS PINES DIGITALES DE ARDUINO UNO CABLE CAUTN ESTAO 3 1 1 TRANSISTORES 2N3904 TABLA PERFORADA COMPUTADORA DE CASA

VALOR

MARCA

220 10 K

2 2

2 metros 1.2 K 4.7 K 2 K 6.8 K

Lic. En Sistemas Computacionales 301

Construccin de un cubo de leds con arduino

pg. 40