Sie sind auf Seite 1von 9

Interfaces y Perifricos, Gua 7

Facultad: Ingeniera
Escuela: Electrnica
Asignatura: Interfaces y Perifricos

Tema: Introduccin a la plataforma Arduino


Objetivos Especficos

Conocer la plataforma de hardware libre Arduino


Desarrollar aplicaciones mediante sketches
Conectar el Arduino a la PC mediante la interfase USB y comunicarlos serialmente
Utilizar la terminal serie para comunicarse con el dispositivo

Material y Equipo
No

Cantidad

2
3
4
5
6

1
1
4
4
4

Descripcin
Computadora con sistema operativo Windows 98 o superior
con el programa Arduino IDE
Cable USB (tipo A hacia tipo B)
Tarjeta Arduino UNO R2
LED
Resistencias limitadoras de 4.7k
Botones pulsadores

Introduccion Teorica
El proyecto Arduino, de origen italiano, pertenece a un movimiento denominado hardware de
cdigo abierto (open source hardware), en el cual sus participantes plantean que as como
existe el software libre, el cual es compartido a nivel de cdigo fuente para poder ser
modificado, deberan existir tambin plataformas de hardware con la misma filosofa, donde
se comparten los detalles de los diagramas de circuito para que los usuarios puedan
introducir sus propias modificaciones.
La plataforma Arduino es lo que se conoce como un entrenador de microcontrolador
(pequeas computadoras contenidas en un solo circuito integrado), para la cual hace uso de
herramientas de software en PC para su programacin. De tal forma que la programacin del
Arduino puede realizarse en un lenguaje de alto nivel como lo es C++, permitiendo manipular
elementos de hardware externos con relativa facilidad, pues tanto el hardware como el

Interfaces y Perifricos, Gua 7

entorno de desarrollo de software han sido diseados considerando la facilidad de uso como
una prioridad.
La tarea de compilacin de programas en Arduino es llevada a cabo mediante una versin
modificada de gcc (el compilador de C usado en GNU/Linux) la cual ha sido adaptada
especialmente para poder generar programas especficamente para el microcontrolador AVR
que posee el Arduino. La invocacin de dicho compilador es automtica, bastando solamente
con hacer un click para compilar los programas.
Por tanto, la plataforma Arduino es un proyecto tanto de software libre como de Hardware
abierto, donde los autores hacen de conocimiento pblico todos los detalles de su
implementacin, ayudndose asimismo de otros proyectos de software libre para su
creacin. Puede encontrarse toda la informacin pertinente a la plataforma, as como
descargar el software de desarrollo en el sitio web:
http://www.arduino.cc
Plataforma de hardware del Arduino.
El Arduino consta de una tarjeta de circuito relativamente pequea, que incluye todos los
componentes bsicos que requiere el microcontrolador, as como de una interfase USB que
le permite conectarse a una PC para poder descargar los programas y proveer suministro
elctrico. Asimismo, el Arduino cuenta con la opcin de alimentarse mediante un jack de
5mm, al cual puede conectarse un transformador de pared que tenga una salida de tensin
entre 7 y 12V DC.

Figura 1. Tarjeta del circuito de Arduino UNO


El Arduino cuenta con un total de 14 pines (numerados del 0 al 13) con capacidad de entrada
y salida digital, as como de 6 pines (numerados del A0 al A5) con capacidad de entrada
analgica y tambin de entrada y salida digital.
Adicionalmente, 6 de los pines digitales (denotados con un smbolo ~) permiten realizar
salida analgica por medio de modulacin de ancho de pulso (tambin conocida como

Interfaces y Perifricos, Gua 7

PWM), mientras que 2 pines (denominados como TX y RX) permiten la comunicacin serial
mediante el puerto USB o bien hacia un dispositivo externo.
Aparte de los pines de entradas y salidas, el Arduino cuenta con varios pines que permiten
compartir su fuente de suministro hacia circuitos externos. Es as, que cuenta con un total de
3 conexiones de tierra (de las cuales al menos una debe ser conectada al tierra del circuito
externo), una salida de 5V y una salida de 3.3V.
Finalmente, existen 3 pines adicionales que son: AREF (Referencia analgica), Vin (voltaje
de entrada sin regular), y RESET (reinicio), cuya funcin no es fundamental para la operacin
del Arduino y que por tanto no se vern en esta gua introductoria.
Estructura de los programas de Arduino.
Un programa de Arduino (conocido en ingls como sketch), usa primordialmente la sintaxis
de C/C++ para definir todas las operaciones que llevara a cabo el microcontrolador, con la
diferencia de que los programas no hacen uso de la funcin main() para especificar su inicio,
sino ms bien se utilizan otras dos funciones:
void setup()
Esta funcin es la primera que se ejecuta cuando el Arduino da inicio al programa, y es
efectuada una sola vez. Su propsito es llevar a cabo todas las tareas de inicializacin (como
la configuracin de los pines) antes que inicie el programa principal.
void loop()
Esta otra funcin es ejecutada tras terminar la funcin setup(), y en caso que loop() termine,
esta es re-ejecutada continuamente por el Arduino hasta que se reinicie, se reprograme o se
apague el suministro. Su propsito es llevar a cabo el programa principal mientras el Arduino
permanezca operando.
Ntese que el Arduino, a diferencia de una computadora personal, no cuenta con un sistema
operativo al cual retornar en caso que los programas terminen. Por tanto los programas
tienen que ser ejecutados de manera permanente mientras el sistema cuente con suministro
elctrico. Sin embargo, si el usuario as lo desea, puede detener la ejecucin del programa
por medio de atraparlo en un lazo infinito. Sentencias como for(;;); o bien while(1){ } pueden
ser usadas en ese caso.
Nota: La introduccin terica no pretende ahondar ms en los detalles de la sintaxis del
lenguaje C/C++, por lo que se recomienda al estudiante que consulte otros libros o
documentacin referentes al tema. El resto de la introduccin se enfocar ms en los detalles
que se refieren al uso de perifricos externos que al lenguaje en s.
Funciones de acceso y configuracin de entradas y salidas digitales.
Una de las bondades de la plataforma Arduino es que los detalles de implementacin del
hardware son abstrados mediante funciones especiales de acceso, liberando al programador

Interfaces y Perifricos, Gua 7

de la tarea de manejar la complejidad del mismo. Existen diferentes funciones de acuerdo a


la clase de hardware con que se interacta, de las cuales las que se presentan a
continuacin son las referentes a las entradas y salidas digitales:

pinMode(numero_pin, modo): Permite establecer la modalidad de los pines ya sea


como entradas o como salidas. Los nombres de pines validos son los nmeros del 0 al
13 y los pines analgicos del A0 al A5, mientras que los modos vlidos son INPUT
(entrada) y OUTPUT (salida).
Ntese que si se configuran los pines del A0 al A5 con esta funcin, los mismos se
pueden usar como cualquier otra entrada o salida digital.
digitalRead(numero_pin): Efecta la lectura de un pin digital que haya sido configurado
como entrada, devolviendo su valor lgico ya sea como la constante LOW (0) o la
constante HIGH (1).
digitalWrite(numero_pin, valor): Efecta la escritura sobre un pin digital que haya sido
configurado como salida. El valor puede especificarse como la constante LOW (0) o la
constante HIGH (1).

Procedimiento
Parte I Descarga de programas en el Arduino.
1. Conecte la tarjeta de circuito del Arduino a su PC mediante el cable USB provisto (no
conecte ningn componente externo an). Inicie el entorno de desarrollo de Arduino
haciendo doble click sobre el archivo ejecutable llamado arduino.exe. Su docente dar
indicaciones de la ubicacin del programa en caso de ser necesario.

Figura 2. Descripcin de los elementos del entorno de desarrollo de software Arduino

Interfaces y Perifricos, Gua 7

2. Proceda a configurar el Arduino IDE para que trabaje con su hardware. Acceda al
men Tools->Board y asegrese que se encuentra seleccionada la tarjeta Arduino
Uno. Asimismo, asegrese que se encuentra seleccionado el puerto serie correcto en
el men Tools->Serial Port (el nmero correcto de puerto depender de si ya existen
otros puertos seriales definidos en la PC).
3. A continuacin haga click en el botn de abrir sketch de la barra de herramientas, y
abra el demo llamado blink en la categora basics. A continuacin se desplegar un
programa simple en la pantalla.
4. Para correrlo, haga click en el botn de subir el sketch en la barra de herramientas. El
programa compilar automticamente el cdigo fuente en pantalla y proceder de
inmediato a programarlo en el hardware.
5. Estudie lo que hace el programa y verifique el LED rotulado como L en la tarjeta de
circuito. Como podr apreciar en el programa, el LED se encuentra fsicamente
conectado al pin 13 del Arduino.
6. Modifique su sketch de tal manera que el LED parpadee ms rpido. Pruebe con
retardos de 100 milisegundos y suba nuevamente el programa usando el botn de la
barra de herramientas.
7. Desconecte el Arduino del puerto USB y espere unos breves segundos. Reconecte el
Arduino nuevamente y observe lo que hace la tarjeta. Que puede concluir al
respecto?
Parte II Manejo de salidas digitales.
8. Con el Arduino desconectado del puerto USB proceda a ensamblar el circuito de la
figura 3 en una breadboard. Asegrese de unir el tierra proveniente de su circuito con
uno de los pines de tierra del Arduino. Note tambin que para este circuito no necesita
una fuente externa.

Figura 3. Diagrama de circuito para la parte 2


9. Con el circuito correctamente armado, proceda a conectar el cable USB al Arduino, y
suba el siguiente sketch:

Interfaces y Perifricos, Gua 7

void setup() {
//Configura los pines con los LEDs como salidas
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
//Inicializa el puerto serie
Serial.begin(9600);
}
void loop() {
//Verifica si se han recibido datos
if (Serial.available() > 0) {
//Si existen datos, comprueba de cual se trata, y enciende
//o apaga un LED acordemente
switch(Serial.read()) {
case '1': digitalWrite(2, HIGH); break;
case '2': digitalWrite(2, LOW); break;
case '3': digitalWrite(3, HIGH); break;
case '4': digitalWrite(3, LOW); break;
case '5': digitalWrite(4, HIGH); break;
case '6': digitalWrite(4, LOW); break;
case '7': digitalWrite(5, HIGH); break;
case '8': digitalWrite(5, LOW); break;
}
}
}
Listado 1. Sketch para la parte 2.
10. Una vez descargado el sketch en el Arduino, abra el monitor serial desde el botn
respectivo en la barra de tareas.

Figura 4. Ventana de terminal de Arduino IDE

Interfaces y Perifricos, Gua 7

11. Digite el nmero 1 en la linea de entrada y presione la tecla Enter o bien haga click en
send. El LED conectado al pin 2 deber encenderse inmediatamente. Pruebe con los
nmeros del 1 al 8 y verifique las acciones que efectan.
12. Pruebe tambin encender o apagar simultneamente varios LEDs enviando mensajes
como 1357 o bien 2468, note que si bien los datos son enviados uno tras otro, el
Arduino los procesa tan rpido que parece que se encienden o se apagan
simultneamente.
13. Notifique a su docente que ha terminado esta parte para que le evale.
Parte III Lectura de entradas digitales.
14. Una vez ms, con el cable USB desconectado, proceda a armar el circuito de la figura
5. Procure tomar suministro de los mismos conectores de 5V y tierra que se incluyen
en tarjeta de circuito del Arduino, ya que se aprovechar el suministro de 5V que
otorga el bus USB de la computadora. Nota: No conecte la fuente de laboratorio de 5V
a su circuito.

Figura 5. Diagrama de circuito para la parte 3.


15. Con el circuito correctamente armado, conecte nuevamente el cable USB y suba el
siguiente sketch:
void setup() {
//Configura los pines conectados a los botones como entradas
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
//Inicializa el puerto serie
Serial.begin(9600);
}
void loop() {
//Envia el estado de cada uno de los botones

Interfaces y Perifricos, Gua 7

Serial.print(digitalRead(9));
Serial.print(digitalRead(10));
Serial.print(digitalRead(11));
Serial.print(digitalRead(12));
//Envia un final de linea
Serial.print("\n");
//Produce un breve retardo entre envios
delay(1000);
}
Listado 2 Sketch para la parte 3.
16. Una vez subido el sketch al Arduino, abra nuevamente el monitor serial.
17. En esta ocasin, notar que en la pantalla aparecen datos de forma peridica y
automtica. Active los botones conectados a los pines de entrada y verifique su
operacin. Note que si activa simultneamente varios botones, el estado de los
mismos aparece sin problemas en la pantalla.
18. Notifique a su docente que ha terminado esta parte para que le evale.

Anlisis de Resultados
1. Que ocurre con el programa almacenado en el Arduino cuando se interrumpe el
suministro elctrico?
2. Que debera ocurrir en el programa de la segunda parte si se envan datos que no
sean los nmeros del 1 al 8?

Investigacin Complementaria
1. Determine cmo se puede hacer para agregar entradas adicionales en el sketch de la
tercera parte.
2. En caso que se necesite comunicacin bidireccional simultnea, Que estructura
debera poseer el programa? Y Cual sera la estrategia de solucin?
3. Investigue acerca de las variantes que existen de la plataforma Arduino que son
producto de la apertura de la plataforma.

Bibliografa

Sitio web de los desarrolladores: www.arduino.cc

Referencia en lnea del lenguaje: http://arduino.cc/en/Reference/HomePage

Massimo Banzi, Getting started with Arduino O'Reilly Media / Make Publisher, Marzo
2009, ISBN: 978-0-596-15551-3

Interfaces y Perifricos, Gua 7


Hoja de cotejo: 7

Gua 7:

Introduccin a la Plataforma Arduino

Alumno:

Maquina No:

Docente:

GL:

Fecha:

EVALUACION
%
CONOCIMIEN
TO

25%

1-4

5-7

8-10

Conocimiento deficiente

Conocimiento y

Conocimiento completo

de los fundamentos

explicacin incompleta

y explicacin clara de los

tericos

de los fundamentos

fundamentos tericos

tericos

APLICACIN
DEL
CONOCIMIEN
TO

70%

ACTITUD

2.5%

No finaliz los programas

Termin parcialmente

Termin completamente

de aplicacin

los programas de

los programas de

aplicacin

aplicacin

Participa ocasionalmente

Participa propositiva e

o lo hace

integralmente en toda la

constantemente pero sin

prctica.

Es un observador pasivo.

coordinarse con su
compaero.

2.5%

Es ordenado; pero no

Hace un uso adecuado

Hace un manejo

hace un uso adecuado de

de los recursos, respeta

responsable y adecuado

los recursos

las pautas de seguridad;

de los recursos conforme

pero es desordenado.

a pautas de seguridad e
higiene.

TOTAL

100
%

Not
a

Das könnte Ihnen auch gefallen