La estructura básica del lenguaje de programación de Arduino es bastante simple y se compone de al menos dos partes.
Estas dos partes necesarias, o funciones, encierran bloques que contienen declaraciones, estamentos o instrucciones.
Veamos un ejemplo sencillo:
int led1; // antes de la función setup() podemos utilizar esta zona para declarar variables
int led2;
void setup()
{
instrucciones; // aquí realizamos la configuración inicial de variables
}
void loop()
{
instrucciones; //el código que se va a repetir de forma indefinida
}
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 12, 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 declaración de las variables. 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.