Conviértete en un
Jov Jo ven In Inv ven ento tor r
2
Introducción Introduc ción a la Programación de Arduino
En este tutorial prepararemos nuestro entorno para comenzar a programar en la plataforma Arduino. Veremos tanto la placa misma como el software necesario. La idea es que al final de esta experiencia
podamos estar listos para realizar una gran gama de proyectos como los que se verán en etapas posteriores del curso.
Plataforma Arduino Arduino es una plataforma electrónica muy popular para la creación de prototipos basada en software y hardware flexi ble y fácil de usar. Por este motivo es ideal para iniciar a las personas interesadas en el mundo de la electrónica y la robótica. Puedes obtener más información sobre el proyecto en su sitio oficial http://www.arduino.cc/
Hardware El hardware asociado al proyecto Arduino es una placa como la que se ve en la figura 1. 1. A continuación profundizaremos un poco en la estructura de la placa y sus principales componentes. Este tutorial está enfocado básicamente en la placa Arduino Uno, sin embargo, existen otras placas que funcio nan de forma análoga.
❺ Figura 1: Placa Arduino UNO
Programador. Esta zona de la placa le permite comunicarse con un comMirando la figura, en ❶ se muestra el Programador. putador a través del d el puerto USB. Por lo mismo permite que se carguen nuestros programas (o sketchs) desde el computador hacia la placa. Además se encarga de alimentarla con energía la cual puede provenir tanto desde el PC, si esta conectado el cable USB, o desde la entrada de alimentación por medio de un adaptador CA ( se recomienda utilizar 9 volts, entrada 1mm y centro positivo). En ❷ se muestran los 14 pines de entradas o salidas digitales. Permiten la comunicación de nuestra placa con los circuitos que crees. Estos están numerados del 0 al 13. Se pueden configurar desde nuestro sketch como entrada o como salida. Como son puertos digitales, admiten solo dos estados: HIGH = 5(V) y LOW = 0(V). En ❸ se muestra el Microcontrolador. Microcontrolador. Es un pequeño chip (circuito integrado) de 28 pines. Éste es realmente el corazón de nuestra placa. Podemos pensar en un microcontrolador como un pequeño computador en donde se ejecutarán nuestros programas. La placa en si misma es solo una plataforma para poder acceder a los pines del microcontrolador desde el exterior.
En ❹ se muestran las salidas de poder. poder. Hay pines para tierra (GND), 5(V) y 3.3(V) que permiten alimentar nuestros circuitos. En ❺ se muestran las 6 entradas analógicas. Están numerados desde A0 hasta A0 hasta A5. A5. Permiten leer un voltaje analógico y lo convierten a un número digital comprendido entre el 0 y el 1023, lo que los hace ideales para el uso de sensores (que serán revisados más m ás adelante).
Software: el IDE de Arduino El proyecto Arduino cuenta con su propio IDE (en sus iniciales en inglés: Integrated Development Environment ). ). Un IDE es básicamente un software que se instala en tu PC y te permite escribir y programar la placa que recién revisamos.
Instalación de IDE Ingresa a http://arduino.cc/en/Main/Software y descarga la versión compatible con tu sistema operativo. Ejecuta el instalador, acepta la licencia y prosigue hasta que el software se haya instalado completamente. Aparecerá un acceso directo en tu escritorio como el siguiente:
❶
❷
❸
❹
Instalación de Drivers Instalación Conecta la placa a tu computador. Si necesitas instalar drivers para que tu PC reconozca la placa, recomendamos revisar el siguiente tutorial oficial del Proyecto Arduino:
http://arduino.cc/es/Guide/Windows
IDE de Arduino
Figura 2: Proceso de descarga e instalación
❶❷ ❸❹❺
Una vez instalado el programa, los drivers y seleccionado correctamente los puertos, accederás a una interfaz como la
❼
que se muestra en la figura 3.
❶
Verificar: Revisa si el el código está bien escrito y listo para ❶ Verificar: ser enviado a la placa. ❷ Cargar: Carga el código a la placa. ❸ Nuevo: Abre un nuevo sketch. Permite abrir un sketch anterior. ❹ Abrir: Permite ❺ Guardar: Guarda los cambios realizados en el sketch. ❻ Monitor Serial: Permite ver los datos de transmisión serial. ❼ Nombre del Sketch: Indica el nombre del sketch actual. ❽ Área de Código: Acá escribiremos nuestros programas. ❾ Área de Mensajes: Mensajes de errores al usuario.
❻
❽
❾
Figura 3: IDE de Arduino
Programando Program ando
Declaración
Habitualmente al escuchar la palabra programar se nos viene a la mente gente con lentes escribiendo una gran cantidad de lineas de código en una computadora, con letras verdes y un fondo negro. Pues bien, la verdad es que programar no es algo tan difícil y muchas veces es más cotidiano de lo que creemos.
Inicialización void setup(){ }
En pocas palabras, programar es listar de forma secuencial cuáles son los pasos a seguir para realizar para una determinada tarea, tal como podemos ver en la figura 4. Podemos com pararlo con una receta de cocina, cocina, pero dejemos esto y veámoslo mejor con un ejemplo:
Ciclo void loop(){ }
Ejemplo: LED parpadeante Problema: Realizar Problema: Realizar un programa que nos permita prender y apagar un LED cada un segundo. Pasaremos a escribir un programa y armar un circuito para realizar la tarea. Típicamente nuestro sketch debe contar con
Figura 4: Diagrama de un programa de Arduino
3 bloques principales que se muestran en la figura 4.
1) Declaración: La declaración es igual al comienzo de las recetas de cocina, en donde se deben listar todos los materiales que debemos utilizar. En este caso, debemos decirle al programa cuál es el pin que elegiremos para encender y apagar el LED. Elijamos el pin 7. Para que esto funcione primero debemos armar un circuito simple que use como fuente de voltaje al pin 7 de las entradas o salidas Digitales. Digitales . Arma el siguiente circuito:
330 (ohm)
Como línea de declaración, escribe lo siguiente en tu sketch: // En el pin 7 tendremos la salida int led int led = 7;
2) Inicialización: Ahora debemos decirle al programa cómo se utilizarán nuestras definiciones anteriores. Esto se realiza en una función que se denomina setup(). Ésta instrucción se ejecutará una sola vez al principio del programa. En este caso necesitamos que el pin 7 elegido funcione como una salida digital para digital para esto debemos escribir el siguiente código: // Rutina de inicialización void setup() { // Inicializamos el pin 7 como una salida digital pinMode(led, pinMode (led, OUTPUT); }
La función pinMode pinMode() () convierte el pin 7 (guardado en la variable led) como una salida digital ( OUTPUT). 3) Ciclo: Finalmente debemos explicar paso a paso que es lo que queremos que haga nuestro programa. Habi tualmente queremos que ésto se repita por siempre, para eso se utiliza la función loop(). En nuestro caso debemos realizar los siguientes pasos: Paso 1: Prender el LED Paso 2: Esperar 1 segundo Paso 3: Apagar 3: Apagar el LED Paso 4: Esperar 1 segundo La función loop()llegará al paso 4 y luego volverá al paso 1 para repetir el ciclo. En nuestro código escribimos los pasos de la siguiente forma: void loop() { digitalWrite(led digitalWrite (led , HIGH); // Encendemos el led poniendo un voltaje alto en el pin 7 delay(1000); delay (1000); // Espera de 1 segundo digitalWrite(led, digitalWrite (led, LOW); // Apagamos el led poniendo un voltaje bajo en el pin 7 delay(1000); delay (1000); // Espera de 1 segundo }
La función digitalWrite digitalWrite() () permite asignarle un valor especifico a nuestra salida ubicada en el pin “ led”. Si elegimos el valor LOW en la salida veremos un voltaje igual al de la tierra de la placa. Por otro lado si elegimos el valor HIGH veremos en la salida un voltaje igual al los 5V de la placa. delay() () permite suspender la ejecución del programa por un valor arbitrario en milisegundos. Si La función delay delay(500); (500); estaremos aplicando una espera de 500 milisegundos (medio segundo). escribimos delay
RECUERDA:
Cada línea de código en Arduino en Arduino termina con un
punto y coma; Las líneas en verde escritas en el código son comentarios. Estas líneas no se ejecutan. Para comentar una línea de código simplemente aplica dos slash (// (//)) a su izquierda. // Esto es un comentario
El código final, sin comentarios, se ve como sigue: int led int led = 7; void setup() { pinMode(led, pinMode (led, OUTPUT); } void loop() { digitalWrite(led digitalWrite (led , HIGH); delay(1000); delay (1000); digitalWrite(led, digitalWrite (led, LOW); delay(1000); delay (1000); }
Con el código listo, y el circuito armado, ya puedes conectar el puerto USB y presionar el botón cargar del IDE de Arduino:
Cargar Si todo está bien. Verás que el led parpadea cada 1 segundo. La placa está haciendo exactamente lo que le dijimos, paso
por paso, repitiéndose cíclicamente.
Funciones de Arduino Con el ejemplo pudiste darte cuenta que para darle instrucciones a Arduino, es necesario conocer ciertas funciones que nos permiten realizar distintas acciones. En el ejemplo anterior utilizamos tres funciones: pinMode pinMode() (), digitalWrite digitalWrite() (), delay delay() (). Para revisar el listado de completo, puedes revisar la documentación oficial del proyecto Arduino:
http://arduino.cc/es/Reference/HomePage
Conviértete en un
Jov Jo ven In Inv ven ento tor r