0% encontró este documento útil (0 votos)
75 vistas8 páginas

Guía de Arduino: Introducción y Prácticas

Este documento presenta una guía introductoria sobre la plataforma Arduino. Explica que Arduino es una plataforma de hardware y software libre que permite el desarrollo de aplicaciones mediante el lenguaje de programación C/C++. Describe los objetivos de la guía, que incluyen conocer Arduino, desarrollar aplicaciones con sketches, comunicar el Arduino con una PC y utilizar la terminal serie. También presenta conceptos teóricos sobre Arduino y describe funciones para la configuración y acceso de entradas/salidas digitales. Finalmente,
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
75 vistas8 páginas

Guía de Arduino: Introducción y Prácticas

Este documento presenta una guía introductoria sobre la plataforma Arduino. Explica que Arduino es una plataforma de hardware y software libre que permite el desarrollo de aplicaciones mediante el lenguaje de programación C/C++. Describe los objetivos de la guía, que incluyen conocer Arduino, desarrollar aplicaciones con sketches, comunicar el Arduino con una PC y utilizar la terminal serie. También presenta conceptos teóricos sobre Arduino y describe funciones para la configuración y acceso de entradas/salidas digitales. Finalmente,
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

ARQUITECTURA DE COMPUTADORAS

GUIA 01

OBJETIVOS
1. Conocer la plataforma de hardware libre Arduino
2. Desarrollar aplicaciones mediante sketches
3. Conectar el Arduino a la PC mediante la interface USB y comunicarlos serialmente
4. Utilizar la terminal serie para comunicarse con el dispositivo

Material y Equipo

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.
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 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 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:
[Link]
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 interfase 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.

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.
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:
• 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.
1. 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
click sobre el archivo ejecutable llamado [Link]
2. 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).
3. A continuación haga click 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.
4. Para correrlo, haga click 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.
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 físicamente conectado al pin 13 del
Arduino.
6. Modifique su sketch de tal manera que el LED parpadee más rápido. Pruebe con retardos de 100
milisegundos y suba nuevamente el programa usando el botón 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. ¿Qué 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. 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.
9. Con el circuito correctamente armado, proceda a conectar el cable USB al Arduino, y suba el
siguiente sketch:
10. Una vez descargado el sketch en el Arduino, abra el monitor serial desde el botón respectivo en
la barra de tareas.

11. Digite el número 1 en la línea 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 números del 1 al 8 y
verifique las acciones que efectúan.
12. 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.
13. Notifique a su docente que ha terminado esta parte para que le evalúe.

Parte III – Lectura de entradas digitales.

14. 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.
15. Con el circuito correctamente armado, conecte nuevamente el cable USB y suba el siguiente
sketch:
16. Una vez subido el sketch al Arduino, abra nuevamente el monitor serial.
17. 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.
18. 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?

Investigación 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.

También podría gustarte