Antes de comentar cómo funciona arduino creo que la mejor manera de motivar es citando algunas de las posibilidades que se nos abren en el universo Arduino, es decir, ¿qué podemos hacer con esta placa? Algunas de ellas son:
- Controlar sistemas a partir de entradas y salidas.
- Controlar luces, motores, timbres y otros actuadores a partir de sensores como pulsadores, LDR, sensores de distancia, de presión…
- Construir robots que funcionen de forma automática.
- Conectar programas con la realidad mediante sensores.
… casi nada, ¿verdad?
.
La estructura básica de un programa (o Sketch) en Arduino, basado en una variante del lenguaje de programación C++, es bastante simple y se compone de al menos tres partes.
Estas tres partes necesarias, o funciones, encierran bloques que contienen declaraciones, estamentos o instrucciones.
Veamos un ejemplo sencillo:
.
1º ZONA: DECLARACIONES – En esta parte se declaran variables, funciones, objetos, se incluyen librerías (conjuntos de funciones ya programadas) y estructuras GLOBALES.
int led1= 13; // antes de la función setup() podemos utilizar esta zona para declarar variables, en este caso declaro que en el pin digital 13 conectaré el un led que lo enumero como led1
int led2= 12; // en este caso declaro que en el pin digital 12 conectaré el un led que lo enumero como led2
Hay que tener en cuenta que las declaraciones que hagamos aquí se tendrán en cuenta en todo el programa y no sólo para determinadas instrucciones (de ahí que las denominemos GLOBALES), lo veremos más en detalle en el Reto1 al programar nuestro primer coche fantástico.
2º ZONA: FUNCIÓN SETUP – Esta función se ejecuta cada vez que se enciende la placa de Arduino, o se pulsa la tecla Reset. Realiza funciones de inicialización de periféricos, comunicaciones, variables, etc.
void setup()
{
pinMode(led1, OUTPUT); // aquí realizamos la configuración inicial de variables, en este caso configuro el led1 como una salida digital o OUTPUT, lo que hago en definitiva es informarle a Arduino de que vamos a utilizar el pin 13 para escribir valores.
Es importante fijarse en que a pesar de ser una única instrucción, hemos delimitado el bloque de esta función mediante abrir y cerrar llaves { }, si no las escribiéramos la verificación del código daría error, haced la prueba [el código se verifica antes de que el compilador lo procese].
}
3º ZONA: FUNCIÓN LOOP – Instrucciones varias que se ejecutarán continuamente al compilar el programa.
void loop()
{
digitalWrite(led1, HIGH); //el código que se va a repetir de forma indefinida, en este caso encender el led1.
}
.
En la primera parte del código nos encontramos con la zona donde podemos declarar e inicializar las variables. Las variables son “símbolos” que usamos en programación y que van a almacenar valores temporales, que pueden ser alterados durante la ejecución del programa.
En este ejemplo declaramos las variables led1 y led2, que bien podrían ser utilizadas para declarar las salidas digitales que vamos a utilizar en Arduino para colocar ambos leds, de tal forma que podamos programar su encendido y apagado. Utilizando variables nos evitamos poner el valor de esa salida digital en el código de forma constante, de tal forma que si por alguna razón queremos cambiar esa salida digital y conectar un led que estaba conectado a la salida 13, a la 10, sólo tendríamos que realizar ese cambio en la declaración de la variable, y no en todas las veces que la utilizamos en el código.
La función setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que se ejecutará cíclicamente (de ahí el término loop – bucle).
Ambas funciones son necesarias para que el programa trabaje. La función de configuración setup() debe contener la configuración de las variable anteriormente declaradas. Es la primera función a ejecutar en el programa, se ejecuta sólo una vez, y se utiliza por ejemplo para configurar o inicializar las entradas/salidas digitales con la instrucción pinMode(), la comunicación por el puerto serie y otras configuraciones iniciales.
La función loop() contiene el código que se ejecutará continuamente (lectura de entradas, activación de salidas, etc) Esta función es el núcleo de todos los programas de Arduino y la que realiza la mayor parte del trabajo..
Como se observa en este bloque de código cada instrucción acaba con ; y los comentarios se indican con // al principincio de la línea que va a ser “comentada”. Al igual que en el lenguaje de programación C se pueden introducir bloques de comentarios con /* …líneas de código */, de tal forma que podemos escribir un comentario literal informativo de nuestro código en varias líneas empezando y acabando con estos símbolos.
Una vez escrito nuestro código, haciendo click en la flecha de Upload lo compilaremos y enviaremos a nuestra placa de Arduino para que lo ejecute.
.
En la anterior imagen podemos diferenciar las siguientes partes:
- Corrector de programas.
- Compilar los programas.
- Consola de salida: errores.
- Upload: Carga del programa.
- Monitor Serie: Permite la comunicación bidireccional.
- Modelo de placade Arduino seleccionada y puerto serie de comunicación .
DOCUMENTACIÓN IMPORTANTE
- Esquema lenguaje programación en Arduino. Aquí en .pdf
- Manual muy completo de programación. Título original «Arduino Notebook: A Beginner’s Reference Written and compiled by Brian W. Evans», que incluye material escrito por el mismisimo David Cuartielles, zaragozano cofundador de Arduino, junto con Massimo Banzi, entre otros. Aquí en .pdf
INSTALAR ARDUINO SOFTWARE
En esta página oficial podrás descargar el software que necesites según tu sistema operativo (Windows, Mac, Linux…).
ARDUINO CREATE EDITOR
La siguiente web resulta de gran utilidad, se trata de una plataforma web muy completa: Arduino Web Editor, recomendada para el navegador Chrome, en resumen sirve para trabajar con arduino de forma simulada, online, sin necesidad de instalar nada.
Aparte de escribir código y cargarlo a tu placa de arduino, con este editor podrás también diseñar esquemas de montaje (frizting) o inspirarte en el HUB Project con increíbles proyectos (y sus tutoriales), incluso compartir los tuyos (se guardan tus sketches en la nube para que dispongas de ellos allá donde vayas). Todo lo que necesitas es crearte tu cuenta de Arduino.
¡Te la recomiendo! Echa un vistazo al vídeo: