Está en la página 1de 9

1 Interfaces y Periféricos. Guía 1.

Facultad: Ingeniería Agrícola


Introducción a la Plataforma Escuela: Electrónica
Arduino. Asignatura: Simulación.

ObjetivosEspecíficos.
 Conocer la plataforma de hardware libre Arduino.
 Desarrollar aplicaciones mediante sketches.
 Conectar el Arduino a la PC mediante la interface USB y comunicarlos serialmente.
 Utilizar la terminal serie para comunicarse con el dispositivo.

Materiales y equipos.
 1 Computadora con sistema operativo Windows y con el programa Arduino IDE
instalado.
 1 Cable USB (tipo A hacia tipo B).
 1 Tarjeta Arduino UNO R2 o R3.
 4 Resistencias de 4.7 kΩ.
 4 LEDs.
 4 Botones (pulsadores).
 1 Breadboard.
 1 Pinza punta plana.
 1 Cortadora (pinza de corte diagonal).
 Cables UTP.

Introducción Teórica.

El proyecto Arduino, de origen italiano, pertenece a un movimiento denominado hardware


de código abierto (open source hardware), en el cual sus participantes plantean que así
como existe el software libre, el cual es compartido a nivel de código fuente para poder ser
modificado, deberían existir también plataformas de hardware con la misma filosofía,
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


(pequeñas computadoras contenidas en un solo circuito integrado), para la cual hace uso de
herramientas de software en PC para su programación. De tal forma que la programación
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 diseñados considerando la facilidad de
uso como una prioridad.

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com
2 Interfaces y Periféricos. Guía 1.
2

La tarea de compilación de programas en Arduino es llevada a cabo mediante una versión


modificada de gcc (el compilador de C usado en GNU/Linux) la cual ha sido adaptada
especialmente para poder generar programas específicamente para el microcontrolador
AVR que posee el Arduino. La invocación de dicho compilador es automática, bastando
solamente con hacer un clic 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 público todos los detalles de su
implementación, ayudándose asimismo de otros proyectos de software libre para su
creación. Puede encontrarse toda la información 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 pequeña, que incluye todos los
componentes básicos que requiere el microcontrolador, así como de una interface USB que
le permite conectarse a una PC para poder descargar los programas y proveer suministro
eléctrico. Asimismo, el Arduino cuenta con la opción de alimentarse mediante un Jack de
5mm, al cual puede conectarse un transformador de pared que tenga una salida de tensión
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 analógica y también de entrada y salida digital.

Adicionalmente, 6 de los pines digitales (denotados con un símbolo ~) permiten realizar


salida analógica por medio de modulación de ancho de pulso (también conocida como
PWM), mientras que 2 pines (denominados como TX y RX) permiten la comunicación
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.

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com
3 Interfaces y Periféricos. Guía 1.
3

Finalmente, existen 3 pines adicionales que son: AREF (Referencia analógica), Vin (voltaje
de entrada sin regular), y RESET (reinicio), cuya función no es fundamental para la
operación del Arduino y que por tanto no se verán en esta guía introductoria.

Estructura de los programas de Arduino.


Un programa de Arduino (conocido en inglés 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 función main() para especificar su
inicio, sino más bien se utilizan otras dos funciones:

void setup()
Esta función es la primera que se ejecuta cuando el Arduino da inicio al programa, y es
efectuada una sola vez. Su propósito es llevar a cabo todas las tareas de inicialización
(como la configuración de los pines) antes que inicie el programa principal.

void loop()
Esta otra función es ejecutada tras terminar la función 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 propósito es llevar a cabo el programa principal mientras el
Arduino permanezca operando.

Nótese 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
eléctrico. Sin embargo, si el usuario así lo desea, puede detener la ejecución 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 introducción teórica no pretende ahondar más en los detalles de la sintaxis del lenguaje
C/C++, por lo que se recomienda al estudiante que consulte otros libros o documentación
referentes al tema. El resto de la introducción se enfocará más en los detalles que se
refieren al uso de periféricos externos que al lenguaje en sí.

Funciones de acceso y configuración de entradas y salidas digitales.


Una de las bondades de la plataforma Arduino es que los detalles de implementación del
hardware son abstraídos mediante funciones especiales de acceso, liberando al programador
de la tarea de manejar la complejidad del mismo. Existen diferentes funciones de acuerdo a
la clase de hardware con que se interactúa, de las cuales las que se presentan a continuación
son las referentes a las entradas y salidas digitales:

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com
4 Interfaces y Periféricos. Guía 1.
4

 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 números del 0 al
13 y los pines analógicos del A0 al A5, mientras que los modos válidos son INPUT
(entrada) y OUTPUT (salida). Nótese que si se configuran los pines del A0 al A5 con
esta función, los mismos se pueden usar como cualquier otra entrada o salida digital.
 digitalRead (numero_pin): Efectúa la lectura de un pin digital que haya sido
configurado como entrada, devolviendo su valor lógico ya sea como la constante LOW
(0) o la constante HIGH (1).
 digitalWrite (numero_pin, valor): Efectúa 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 o utilización de la herramienta virtual


tinkercad.
1. Encienda la computadora. E s p e r a a q u e cargue el sistema operativo

2. Conecte la tarjeta de circuito del Arduino a su PC mediante el cable USB provisto (no
conecte ningún componente externo aún). Inicie el entorno de desarrollo de Arduino
haciendo doble clic izquierdo sobre el archivo ejecutable llamado arduino.exe. Su
docente dará indicaciones de la ubicación del programa en caso de ser necesario.

Figura 2. Descripción de los elementos del entorno de desarrollo de software Arduino.

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com
5 Interfaces y Periféricos. Guía 1.
5

3. Proceda a configurar el Arduino IDE para que trabaje con su hardware. Acceda al menú
Tools->Board y asegúrese que se encuentra seleccionada la tarjeta Arduino Uno.
Asimismo, asegúrese que se encuentra seleccionado el puerto serie correcto en el menú
Tools->Serial Port (el número correcto de puerto dependerá de si ya existen otros
puertos seriales definidos en la PC).
4. A continuación haga clic izquierdo en el botón de abrir sketch de la barra de
herramientas, y abra el demo llamado blink en la categoría basics. A continuación, se
desplegará un programa simple en la pantalla.
5. Para correrlo, haga clic izquierdo en el botón de subir el sketch en la barra de
herramientas. El programa compilará automáticamente el código fuente en pantalla y
procederá de inmediato a programarlo en el hardware.
6. 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 físicamente
conectado al pin 13 del Arduino.
7. Modifique su sketch de tal manera que el LED parpadee más rápido. Pruebe con
retardos de 100 milisegundos y suba el programa nuevamente al Arduino usando el
botón de la barra de herramientas.
8. Desconecte el Arduino del puerto USB y espere unos breves segundos. Reconecte el
Arduino nuevamente y observe lo que hace la tarjeta. ¿Qué puede concluir al respecto?

Parte II: Manejo de salidas digitales.


9. Con el Arduino desconectado del puerto USB proceda a ensamblar el circuito de la
figura 3 en una breadboard. Asegúrese de unir el tierra proveniente de su circuito con
uno de los pines de tierra del Arduino. Note también que para este circuito no necesita
una fuente externa.

Figura 3. Diagrama de circuito para la parte 2.

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com
6 Interfaces y Periféricos. Guía 1.
6

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

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;
}
}
}
Código 1. Sketch para la parte 2.

11. Una vez descargado el sketch en el Arduino, abra el monitor serial desde el botón
respectivo en la barra de tareas.

Figura 4. Ventana de terminal de Arduino IDE.

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com
7 Interfaces y Periféricos. Guía 1.
7

12. Digite el número 1 en la linea de entrada y presione la tecla Enter o bien haga clic
izquierdo en send. El LED conectado al pin 2 deberá encenderse inmediatamente.
Pruebe con los números del 1 al 8 y verifique las acciones que efectúan.
13. Pruebe también encender o apagar simultáneamente 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 rápido que parece que se encienden o se apagan
simultáneamente.
14. Notifique a su docente que ha terminado esta parte para que le evalúe.

Parte III: Lectura de entradas digitales.


15. Una vez más, 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.

16. 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);
}

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com
8 Interfaces y Periféricos. Guía 1.
8

void loop() {
//Envía el estado de cada uno de los botones
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 envíos
delay(1000);
}
Código 2: Sketch para la parte 3.

17. Una vez subido el sketch al Arduino, abra nuevamente el monitor serial.
18. En esta ocasión, notará que en la pantalla aparecen datos de forma periódica y
automática. Active los botones conectados a los pines de entrada y verifique su
operación. Note que si activa simultáneamente varios botones, el estado de los mismos
aparece sin problemas en la pantalla.
19. Notifique a su docente que ha terminado esta parte para que le evalúe.

Análisis de Resultados.
1. ¿Qué ocurre con el programa almacenado en el Arduino cuando se interrumpe el
suministro eléctrico?
2. ¿Qué debería ocurrir en el programa de la segunda parte si se envían datos que no sean
los números del 1 al 8?

Actividad complementaria.
1. Determine cómo se puede hacer para agregar entradas adicionales en el sketch de la
tercera parte.
2. En caso que se necesite comunicación bidireccional simultánea, ¿Que estructura
debería poseer el programa? Y ¿Cuál sería la estrategia de solución?
3. Investigue acerca de las variantes que existen de la plataforma Arduino que son
producto de la apertura de la plataforma.

Bibliografía.
 Sitio web de los desarrolladores: www.arduino.cc
 Referencia en línea 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

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com
9 Interfaces y Periféricos. Guía 1.
9

 https://vimeo.com/18390711
 https://botscience.wordpress.com/2012/06/05/historia-de-arduino-y-su-nacimiento/

Jose ordoney Cuellar M


Ing en Electronica y telecomunicaciones
Jocuellar22@hotmail.com

También podría gustarte