Informe de La Practica ARDUINO

45
UAEH Escuela Superior de Tlahuelilpan. Ex Hacienda de San Servando. Tlahuelilpan de Ocampo, Hgo., C.P. 42780. E-mail: [email protected] UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO INSTITUTO DE CIENCIAS BÁSICAS E INGENIERÍA ESCUELA SUPERIOR DE TLAHUELILPAN LICENCIATURA EN SISTEMAS COMPUTACIONALES ELECTRÓNICA BÁSICA “CONSTRUCCIÓN DE UN CUBO DE LEDS CON ARDUINO” Grupo 301 LSC Informe de Práctica IP.LSC.EB-1201 Mayo/2012 Elaborado por: Aguilar Delgado Zuleidy Callejas Valdez Nathalie Marlem Dorantes Dorantes Marisol Estrada Cruz Damián Flores de la Rosa Fausto Alfonso Galván Morales Teresa García Escamilla Edgar Jiménez Jiménez Silvia Moreno Zúñiga Alberto Pérez Gutiérrez Joel Bernardo Trujillo Cruz Javier

Transcript of Informe de La Practica ARDUINO

Page 1: Informe de La Practica ARDUINO

UAEH – Escuela Superior de Tlahuelilpan. Ex Hacienda de San Servando. Tlahuelilpan de Ocampo, Hgo.,

C.P. 42780. E-mail: [email protected]

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO

INSTITUTO DE CIENCIAS BÁSICAS E INGENIERÍA

ESCUELA SUPERIOR DE TLAHUELILPAN

LICENCIATURA EN SISTEMAS COMPUTACIONALES

ELECTRÓNICA BÁSICA

“CONSTRUCCIÓN DE UN CUBO DE LEDS CON ARDUINO”

Grupo 301

LSC

Informe de Práctica

IP.LSC.EB-1201

Mayo/2012

Elaborado por:

Aguilar Delgado Zuleidy

Callejas Valdez Nathalie Marlem

Dorantes Dorantes Marisol

Estrada Cruz Damián

Flores de la Rosa Fausto Alfonso

Galván Morales Teresa

García Escamilla Edgar

Jiménez Jiménez Silvia

Moreno Zúñiga Alberto

Pérez Gutiérrez Joel Bernardo

Trujillo Cruz Javier

Page 2: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. ii

RESUMEN

Desarrollo de una serie, bajo la plataforma de Arduino, que permite encender un cubo de

LEDS 3 * 3 (27 unidades) mediante la programación. El proyecto buscó la sencillez de

uso, para facilitar con pequeños 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.

Page 3: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. iii

CONTENIDO

INTRODUCCIÓN 1

1. PLANTEAMIENTO DEL PROBLEMA 3

2. OBJETIVO 3

3. NOTACIONES Y DEFINICIONES 4

4. FUNDAMENTOS 6

5. DESARROLLO TEÓRICO

5.1. Análisis del problema 9

5.2. Diseño de la solución 10

5.3. Resultados esperados 15

6. DESARROLLO EXPERIMENTAL

7.1. Construcción de los sistemas 15

7.2. Resultados experimentales 32

8. ANÁLISIS DE RESULTADOS 33

CONCLUSIONES 39

REFERENCIAS 40

ANEXO I. INFRAESTRUCTURA 41

Lista de Figuras

Figura 1. Familia de microcontroladores Atmel 7

Figura 2. Lenguaje de programación Arduino 1.0

Figura 3. Diseño de la construcción del cubo de leds

Figura 4. Plantilla para colocar el cubo de leds

Figura 5. Doblamos los cátodos y nos ayudamos con el molde

Page 4: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. iv

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 sección 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. Instalación del controlador correspondiente

Figura 22. Finalización del asistente para hardware

Figura 23. Interfaz del compilador arduino

Figura 24. Creación de un nuevo archivo de código

Figura 25. Utilización de código prediseñado por el compilador

Figura 26. Código generado por el compilador

Figura 27. Interfaz donde se muestra la selección del modelo de arduino

Figura 28. Interfaz de la selección del puerto

Figura 29. Lugar donde se encuentra el botón upload

Figura 30. Muestra como están conectadas las terminales del leds

Figura 31. Cubo conectado con cada uno de los elementos mencionados

Figura 32. Botón RESET indicando su ubicación

Page 5: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. v

Figura 33. Prototipo funcionando

Figura 34. Resultado experimental con arduino

Figura 35. Código fuente de la secuencia de una serie navideña.

Figura 36. Muestra la declaración de los arreglos y parte de la lógica de programación

Figura 37. Muestra la otra parte de la lógica de programación

Figura 38. Muestra la otra parte de la lógica de programación

Figura 39. Imagen que demuestra como el arduino funciona formando el número tres

Figura 40. Imagen que demuestra como el arduino funciona formando el número cero

Figura 41. Imagen que demuestra como el arduino funciona formando en número uno

Page 6: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 1

INTRODUCCIÓN

Arduino, es una plataforma de prototipos electrónica de código 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 recepción 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 autónomos o se pueden comunicar con software en ejecución

en un ordenador.

Existen muchos microcontroladores y plataformas microcontroladores disponibles para

computación física. Todas estas herramientas toman los desordenados detalles de la programación

del microcontrolador y la encierran en un paquete fácil 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 Diseño Interactivo Ivrea en el año

2005; Aunque su origen está implícito en otros proyectos ya trabajados, con el objetivo de hacer

una herramienta para los estudiantes más moderna que las existentes en el mercado, incluyendo a la

BASIC Stamp, con un costo aproximado de 100 dólares y que los estudiantes no estaban dispuestos

a pagar y con la necesidad de adquirir varias placas.

Además, los fundadores estaban ante la problemática de un posible cierre de la escuela, por lo que

diseñaron a Arduino como un hardware open source.

Así, nació la primera placa Arduino, establecida sólo para los estudiantes: La primera versión RS-

232 para soldar.

Tiempo después, se llegó a un acuerdo con otros Institutos, con el fin de hacer comercial el

producto.

Se trabajó con la versión USB ya montada, probada y lista para funcionar, y que en el año de 2010,

se llevaban vendidos más 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 analógicas, un oscilador de cuarzo a 16MHz, una conexión USB, un

conector para alimentación, una cabecera ICSP y un botón 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 batería para comenzar.

Page 7: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 2

El Arduino puede ser alimentado a través de la conexión USB o con un suministro de energía

externa. La fuente de energía se selecciona mediante el jumper PWR_SEL

La alimentación externa (es decir, no USB) puede venir desde un adaptador AC a DC o desde una

batería. El adaptador puede ser conectado mediante un enchufe centro-positivo en el conector de

alimentación de la placa. Los cables de la batería pueden insertarse en las cabeceras de los pines

Gnd y Vin del conector POWER.

Un regulador de bajo abandono proporciona eficiencia energética. 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 podría ser inestable. Si se usa más de 12 V, el regulador

de tensión puede sobrecalentarse y dañar la placa. El rango recomendado es de 7 a 12 V.

Page 8: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 3

1. PLANTEAMIENTO DEL PROBLEMA

A partir de la revolución de la electrónica, comienza en el mundo una rápida escala de

avances tecnológicos en todas sus manifestaciones: la educación y la industria. Es por ello

que debemos aprovechar nuestra facultad intelectual y capacidad de razonamiento para

innovar, crear, experimentar y aprender más sobre prototipos electrónicos.

El desarrollo de la electrónica es una necesidad que no se puede dejar a un lado en los

avances tecnológicos. Los constantes avances y la aparición de nuevas tecnologías han

dado un impulso a la creación de nuevas ideologías científicas, tecnológicas y sociales,

provocando un cambio radical a las actividades educativas.

Analizando dispositivos que ayudan a los estudiantes proporcionándoles una herramienta

que les permita crear sus propios prototipos electrónicos, integrado sus conocimientos

adquiridos en las diferentes materias, se encontró una placa denominada “Arduino”.

Basado en la documentación, que se ha analizado surgió la inquietud de como llevar acabo

una pequeña demostración con el dispositivo electrónico “ARDUINO”, entre algunas de las

incógnitas por resolver están; ¿cómo se utiliza?, ¿cómo se conecta?, ¿cómo se programa?,

¿Cuál es su comportamiento?

De acuerdo a lo expuesto en relación a la problemática nos queda una gran interrogante

¿cómo funciona el arduino?

2. OBJETIVO

El objetivo de esta práctica consiste en ampliar el conocimiento del funcionamiento del

dispositivo Arduino Uno, haciendo uso de la información teórica previa que se tiene de

éste, y de la programación requerida, con el fin de lograr que el cubo de LED construido

funcione satisfactoriamente.

Page 9: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 4

1. NOTACIONES Y DEFINICIONES

Diecimila: Es la placa Arduino más popular. Se conecta al ordenador con un cable

estándar 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 diseñar para uso como tabla de pruebas, el Nano se

conecta al ordenador usando un cable USB Mini-B.

Mini: Esta es la placa más pequeña de Arduino. Trabaja tablas, aplicaciones en las

que prima su espacio. Se conecta al ordenador usando el cable Mini USB.

Serial: Es una placa básica que usa RS232 como una interfaz con su ordenador para

la programación y comunicación. Esta placa puede ejercerse de aprendizaje.

Serial Single Sided: Esta placa está diseñada para ser grabadas y ensambladas a

mano. Es compatible con los dispositivos.

VIN: Es la entrada de la tensión a la placa Arduino cuando está usando por una

fuente de alimentación externa. También se puede suministrar su tensión a través 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 analógica por la salida pulsante. Esto

es para iluminar LED.

Page 10: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 5

BASIC STAMP: Es un microcontrolador que posee un intérprete especializado de

BASIC (PBASIC) que se encuentra en su memoria ROM. Posee la forma de un chip

DIP (Dual In Package), encontrándose 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: Aplicación a varias disciplinas.

OPEN SOURCE: Software Abierto (Open Source) es un movimiento en círculos

de programadores caracterizado por la creación de código 'abierto' que puede ser

modificado o distribuido sin pagar una licencia. .

OSCILADOR: Un oscilador es un sistema capaz de crear perturbaciones o cambios

periódicos o cuasi periódicos en un medio, ya sea un medio material (sonido) o un

campo electromagnético (ondas de radio, microondas, infrarrojo, luz visible, rayos

X, rayos gamma, rayos cósmicos).

PROCCESING: Lenguaje de programación que ofrece un completo entorno

donde podamos desarrollar nuestro prototipo.

WIRING: tarjeta de entrada y salida multi-propósito basada en un

microcontrolador y un ambiente de desarrollo integrado basado en Processing.

Page 11: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 6

WRITTING: Es una aplicación que almacena datos en el registro del sistema, que

es probable que su registro haya sufrido una fragmentación y acumulado en entradas

no válidas que pueden afectar al rendimiento del PC.

2. FUNDAMENTOS TEÓRICOS

ARDUINO

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador

y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos

multidisciplinares.

El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de

entrada/salida. 4 Los microcontroladores más usados son el Atmega168, Atmega328,

Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de

múltiples diseños.

Figura 1. Familia de microcontroladores Atmel

Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje

de programación Processing/Wiring y el cargador de arranque (boot loader) que corre en la

placa.

Page 12: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 7

Arduino se puede utilizar para desarrollar objetos interactivos autónomos 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 diseño como su distribución 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 máximo 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 comunicación USB. Diecimila también tiene 6

entradas analógicas que proporcionan una resolución de 10 bits. Por defecto miden de 0

voltios (masa) hasta 5 voltios, aunque es posible cambiar el nivel más alto, utilizando el pin

Aref y algún código de bajo nivel.

LENGUAJE DE PROGRAMACIÓN DE ARDUINO

La plataforma Arduino se programa mediante el uso de un lenguaje propio basado en el

popular lenguaje de programación de alto nivel Processing. Sin embargo, es posible utilizar

otros lenguajes de programación y aplicaciones populares en Arduino. Algunos ejemplos

son:

Java

Flash (mediante ActionScript)

Processing

Pure Data

MaxMSP (entorno gráfico de programación para aplicaciones musicales, de audio y

multimedia)

VVVV (síntesis de vídeo en tiempo real)

Page 13: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 8

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 (síntesis de audio en tiempo real)

Instant Reality (X3D)

Liberlab (software de medición y experimentación)

BlitzMax (con acceso restringido)

Squeak (implementación libre de Smalltalk)

Mathematica

Matlab

Minibloq (Entorno gráfico de programación, corre también 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 transmisión de datos en

formato serie que es algo que la mayoría 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

comunicación 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 comunicación que ofrece.

Page 14: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 9

Figura 2. Lenguaje de programación Arduino 1.0

3. DESARROLLO TEÓRICO

Después 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 encenderán de manera aleatoria.

5.1. Análisis del problema

Debido a que se no se tiene el conocimiento de cómo funcionan las terminales de arduino

con la investigación previa ya hecha se conocerá la manera en que trabaja este dispositivo

así como su programación que para este caso es sencilla.

5.2. Diseño de la solución

Page 15: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 10

Diseño. Desarrollo del diseño, partiendo del conocimiento de los valores nominales

con los que trabaja el dispositivo electrónico: arduino y sabiendo que se puede

combinar con otros dispositivos electrónicos, se plantea el siguiente bosquejo.

Figura 3. Diseño de la construcción del cubo de leds.

. (Fuente: http://electronicavm.files.wordpress.com/2011/07/cubo.png)

Análisis. Para la construcción 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

Page 16: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 11

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 constituirán el cubo, la manera de soldar será la

siguiente: dentro de forma que queden los cátodos (patilla más corta) hacia adentro del

cubo. Deben quedar los cátodos hacia adentro ya que son éstos los que conectaremos para

formar el primer “nivel” del cubo, así que doblamos y conectamos los cátodos de los leds

para que quede un “cátodo común” para todos los leds.

Figura 5. Doblamos los cátodos y nos ayudamos con el molde

. (Fuente: http://electronicavm.files.wordpress.com/2011/07/catodos-y-pinzas1.jpg)

Una vez soldados los cátodos retiramos la estructura que queda, y realizamos el mismo

paso 3 veces, para obtener 3 estructuras de 9 leds conectados por sus cátodos, que serán

los 3 niveles o filas del cubo.

Page 17: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 12

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 cátodos.

Si se observa de un modo informático, es un array bidimensional de leds, tenemos

“columnas” y “filas”, y así es como accederemos a cada uno de los leds con Arduino.

Page 18: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 13

Figura 8. Cubo de Leds 3x3x3

. (Fuente: http://electronicavm.files.wordpress.com/2011/07/cubo3x3x3.jpg)

Terminado el cubo procedemos a la conexión con Arduino. Dado que son leds, necesitan de

una pequeña 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 cátodos ó los 3 niveles del cubo, debemos utilizar 3 transistores NPN, en

este caso se usarán 2N3904, puesto que al conectar los cátodos a 3 pines digitales del

Arduino podemos encender el cubo enviando valores lógicos 0 ó LOW, pero cuando

queramos apagar el cubo no podemos enviar un valor lógico HIGH, ya que quemaremos los

leds, estaríamos 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 conectaría a los pines digitales del Arduino, y cada uno de los

niveles del cubo.

Así utilizamos el transistor en conmutación, de modo que al enviar con Arduino un valor

lógico HIGH a uno de los transistores, éste entrará en saturación, “conectando” el colector

con el emisor, de forma que el cátodo se conectaría 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 continuación se muestra la programación para encender los

leds.

Page 19: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 14

Código fuente

01 int Columnas[] = 1, 2, 3, 4, 5, 6, 7, 8, 9;

03 int Filas[] = 12, 11, 10;

04 int RandFila; //Variable para fila aleatoria

05 int RandColumna; //Variable para columna aleatoria

06

07 void setup()

08

09 int contador;

10

11 for (int contador = 0; contador < 10; contador++)

12 pinMode(Columnas[contador], OUTPUT);

13

14 for (int contador = 0; contador < 4; contador++)

15 pinMode(Filas[contador], OUTPUT);

16

17

18 void loop()

19

20 RandLed();

21

22

23 void RandLed()

24

25 RandFila = random(0,3);

26 RandColumna = random(0,9);

27

Page 20: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 15

28 digitalWrite(Filas[RandFila], HIGH);

29 digitalWrite(Columnas[RandColumna], HIGH);

30

31 delay(75);

32

33 digitalWrite(Filas[RandFila], LOW);

34 digitalWrite(Columnas[RandColumna], LOW);

35

36 delay(50);

37

5.3. Resultados esperados

En esta práctica 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

comprensión de Arduino.

7. DESARROLLO EXPERIMENTAL

La metodología 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 diseño,

posteriormente se conectarán los transistores y las resistencias para finalmente conectarlas a

la placa arduino como se describió en el diseño de la solución. Finalmente se procederá a

programar en el compilador de arduino para que enciendan los leds.

7.1. Construcción de los sistemas

Materiales necesarios:

27 Leds

Page 21: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 16

9 Resistencias de 220 Ω

3 Resistencias de 10 kΩ

9 pines digitales de arduino

Arduino UNO

Cable

Estaño

Cautín

3 Transistores 2N3904

1 Tabla perforada

El primer pasó en la construcción 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

serán 3 cuadrados unidos de la siguiente manera como se muestra en la imagen.

Cada led se une a otro a través del cátodo que es la pata más 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 cátodos formando un ángulo de 90º con

respecto al ánodo de cada led para soldarlos uno a otro con ayuda del estaño y del

cautín deben quedar colocados dela siguiente manera.

Page 22: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 17

Figura 10. Muestra como debe de estar doblado Figura 11. Se muestra como van unidos los leds

(Fuente: propia) (Fuente: propia)

2. Una vez que tengamos cada sección de leds procederemos a unirlas una por una de

para formar el cubo, uniendo cada ánodo de la sección 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 sección de nueve leds 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.

(Fuente:

http://electronicavm.files.wordpress.com/2011/07/e

structuras.jpg)

Page 23: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 18

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 electrónicos. Para

poder alimentar cada sección 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.

Figura 15. Partes del transistor

(Fuente: propia)

*Emisor

*Base

*Colector

Page 24: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 19

Figura 16. Terminales de salida de arduino UNO

(Fuente: propia)

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

Tierra

Salidas de 5v (repartida en todas

las terminales

Page 25: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 20

5. Una vez que se tiene terminado el circuito con la conexión mostrada en la imagen

siguiente se procederá a programar el dispositivo arduino con su compilador

facilitado de la página 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 través de su cable USB Windows

automáticamente 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 seguirán los pasos

mismos que incluye para instalar los drivers correspondientes.

Page 26: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 21

Figura 19. Asistente para nuevo hardware de Windows XP

(Fuente: propia)

Seleccionamos la segunda opción que es instalar desde una ubicación en nuestra

PC ya que no contamos con el cd de instalación, 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 están firmados por Windows.

Page 27: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 22

Figura 21. Instalación del controlador correspondiente

(Fuente: propia)

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

arduino.

Figura 22. Finalización 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)

Page 28: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 23

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. Creación de un nuevo archivo de código

(Fuente: propia)

9. Una vez que abrimos un nuevo proyecto para su codificación lo primero que

haremos será usar un código prediseñado para poder encender y apagar un led el

cual está en file/examples/basic/blick.

Page 29: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 24

Figura 25. Utilización de código prediseñado por el compilador

(Fuente: propia)

El cual nos creará el siguiente código:

Figura 26. Código generado por el compilador

(Fuente: propia)

10. Ahora para enviar nuestro código a Arduino lo primero es seleccionar el modelo de

nuestro arduino en el menú 24 Tools/board y el modelo es arduino UNO.

Page 30: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 25

Figura 27. Interfaz donde se muestra la selección del modelo de arduino

(Fuente: propia)

11. Después seleccionamos el puerto donde está conectado el arduino en la misma

sección para este caso el puerto COM16.

Figura 28. Interfaz de la selección del puerto

(Fuente: propia)

Page 31: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 26

12. Ya seleccionado el modelo y puerto solo enviamos el código con el botón upload

indicado en la figura.

Figura 29. Lugar donde se encuentra el botón upload

(Fuente: propia)

En la sección inferior nos aparecerá el mensaje Upload y cuando finalice él envió

del código aparecerá el mensaje de done upload y el código ya estará en nuestro

arduino.

13. Con el arduino programado se usara como fuente de alimentación 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 cátodo a la terminal

GND que es tierra esto hará que el led encienda y apague cada segundo.

Figura 30. Muestra como están conectadas las terminales del leds (Fuente: propia)

Botón Upload

Page 32: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 27

Figura 31. Cubo conectado con cada uno de los elementos mencionados

(Fuente: propia)

14. Una vez probado el código y el funcionamiento correcto de nuestro arduino creamos

nuestro código 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 números de terminales

donde están conectados los leds al ánodo

int Filas[] = 12, 11, 10;//arreglo que contiene las terminales 12,11,10 que están

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

Page 33: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 28

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

for (int contador = 0; contador < 10; contador++) //ciclo para usar el número de

pin entre 0 y 10 y que cada ciclo incremente 1 cifra mas

pinMode(Columnas[contador], OUTPUT); //sirve para indicar el número 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 número de

pin entre 0 y 4 y que cada ciclo incremente 1 cifra mas

pinMode(Filas[contador], OUTPUT); //sirve para indicar el número 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 función para encender y apagar los leds

void RandLed()//Contiene las acciones que hará esta función

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);

Page 34: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 29

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);

Page 35: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 30

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 código:

El termino INT declara que la variable es de tipo entero.

La función Rand se utiliza para crear valores aleatorios que tienen la siguiente

sintaxis:

Rand(min,max) Donde min y max solo los valores numéricos asignados para la

creación de estos valores.

Page 36: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 31

pinMODE.OUTPUT establece el pin como salida en las terminales

digitalWrite[], HIGH; indica que la terminal esta activa entre los corchetes se

indica el número de terminal.

digitalWrite([], LOW); indica que la terminal esta inactiva entre los corchetes se

indica el número de terminal.

Delay indica un rango de tiempo definido en microsegundos con la siguiente

sintaxis:

Delay(ms);

15. Se envía el código al dispositivo arduino con el modelo y puerto indicados

anteriormente y lo enviamos con el botón upload.

16. Ahora con el prototipo terminado y conectado ya con la programación hecha solo se

conecta prototipo con el USB para alimentarlo a 5V. y encenderán los leds de

manera aleatoria usando el botón RESET que está en arduino podremos reiniciar el

ciclo del código al inicio del mismo.

Figura 32. Botón RESET indicando su ubicación

(Fuente: propia)

Una captura del prototipo finalizando funcionando así finalizando la construcción del

sistema.

Page 37: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 32

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 electrónico “Arduino”; además también se logró

programarlo para formar los números 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

programación.

Se concluye de los resultados experimentales que se han adquirido nuevos conocimientos y

demostrado que desarrollamos nuestra capacidad de análisis y comprensión.

Figura 34. Resultado experimental con arduino

Page 38: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 33

(Fuente: propia)

8. ANÁLISIS DE RESULTADOS

Utilizando ARDUINO 1.0 para crear una serie de leds que realizó una iluminación

inicialmente como la de las series navideñas para la cual se utilizó el código 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 código

con el que se programado y descargado a la placa arduino.

Figura 35. Código fuente de la secuencia de una serie navideña.

(Fuente: proia)

Después de haber visto el funcionamiento del cubo de leds con esta programación se

determino a cambiar la programación que mostrará el número 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.

Page 39: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 34

A continuación se muestra una parte de la programación ilustrando con imágenes

capturadas del nuevo código fuente que se empleo para formar el número 301, cada una de

ellas explicada para que se puedan comprender mejor los cambios realizados:

Figura 36. Muestra la declaración de los arreglos y parte de la lógica de programación

(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 números, 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

Page 40: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 35

.

Figura 37. Muestra la otra parte de la lógica de programación

(Fuente: proia)

loop ()

Después de llamar a void setup() la función 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.

Page 41: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 36

Figura 38. Muestra la otra parte de la lógica de programación

(Fuente: proia)

digitalWrite (pin,value)

Productos de alto nivel ya sea lógica 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 número 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

número mediante la programación que se realizó.

Page 42: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 37

Figura 39. Imagen que demuestra como el arduino funciona formando el número tres.

(Fuente: propia)

Figura 40. Imagen que demuestra como el arduino funciona formando el número cero.

(Fuente: propia)

Figura 41. Imagen que demuestra como el arduino funciona formando en número uno.

(Fuente: propia)

Page 43: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 38

CONCLUSIONES

Arduino, es una plataforma sencilla, pequeña y fácil de manejar; cuenta con su propio

compilador, además 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 energía, lo cual es bastante práctico; 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 práctica desarrollada de la construcción 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 electrónico, pero esto nos permitió conocerlo y

darnos cuenta de que en verdad no se requiere un extenso conocimiento de electrónica para

poder manipularlo solo es cuestión de que tengas iniciativa.

Este fue un pequeño proyecto que probó que si quieres puedes construir tus propios

prototipos con la documentación 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 problemática 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.

Page 44: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 39

REFERENCIAS

[1] http://www.arduino.cc/es/

[2] http://electronicavm.wordpress.com/2011/07/27/cubo-de-leds-3x3x3-con-

arduino/#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] Electrónica - Teoría de Circuitos y Dispositivos Electrónicos, 8E (R.L. Boylestad,

L. Nashelsky) (Pearson) (2003) (9789702604365)

[8] Morton, P. L. et al. (1985). «John Robert Woodyard, Ingeniero eléctrico: Berkeley».

Universidad de California.

[9] Giordano, José Luis El conductor eléctrico (Ley de Ohm) Profísica. Chile [13-5-

2008]

Page 45: Informe de La Practica ARDUINO

Lic. En Sistemas Computacionales 301 Construcción de un cubo de leds con arduino pág. 40

ANEXO I. INFRAESTRUCTURA

MATERIALES UTILIZADOS EN EL PROYECTO ARDUINO

Equipo de cómputo:

MARCA MEMORIA WINDOWS DISCO DURO

SONY 2 GB 7 2 TB

DELL 3 GB 7 HOME BASIC 500 GB

Componentes electrónicos:

CANTIDAD NOMBRE VALOR MARCA

1 ARDUINO UNO

27 LEDS

9 RESISTENCIAS 220Ω

3 RESISTENCIAS 10 KΩ

9 PINES

DIGITALES DE

ARDUINO UNO

2 CABLE 2 metros

2 CAUTÍN

ESTAÑO 1.2 KΩ

3 TRANSISTORES

2N3904

4.7 KΩ

1 TABLA

PERFORADA

2 KΩ

1 COMPUTADORA

DE CASA

6.8 KΩ