Beruflich Dokumente
Kultur Dokumente
Facultad: Ingeniera
Escuela: Electrnica
Asignatura: Interfaces y Perifricos
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
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.
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
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.
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.
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.
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.
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
Massimo Banzi, Getting started with Arduino O'Reilly Media / Make Publisher, Marzo
2009, ISBN: 978-0-596-15551-3
Gua 7:
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
tericos
de los fundamentos
fundamentos tericos
tericos
APLICACIN
DEL
CONOCIMIEN
TO
70%
ACTITUD
2.5%
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
prctica.
Es un observador pasivo.
coordinarse con su
compaero.
2.5%
Es ordenado; pero no
Hace un manejo
responsable y adecuado
los recursos
pero es desordenado.
a pautas de seguridad e
higiene.
TOTAL
100
%
Not
a