Para empezar a programar con Arduino primero debemos tener claro algunos principios básicos. Un programa diseñado para Arduino (sketch) sigue una estructura básica que siempre se compone de tres secciones:
La sección de declaraciones variables globales: ubicada directamente al principio del sketch.
La sección llamada “void setup()”: delimitada por llaves de apertura y cierre.
La sección llamada “void loop()”: delimitada por llaves de apertura y cierre.

Las instrucciones escritas dentro de la sección “void setup()” se ejecutan una única vez, en el momento de encender (o reiniciar) la placa Arduino.
Las instrucciones escritas dentro de la sección “void loop()” se ejecutan inmediatamente después de las sección “void setup()” de manera infinita, hasta que se interrumpe la alimentación de la placa o se reinicia. Esto significa, que el código en la sección “void loop()” se ejecuta completo desde la primera linea de código hasta la ultima, y una vez alcanzada esta, empieza nuevamente desde la primera linea de código, y así una y otra vez.
Por lo tanto, las instrucciones en la sección “void setup()” se utilizan para realizar configuraciones en la placa, es decir, estableces cuales serán los pines de entrada o salida, configurar parámetros como velocidad o frecuencias, y todos los demás acuerdos necesarios para poder establecer todas las compatibilidades con nuestro hardware complementario.
Tabulaciones, mayúsculas y puntos y comas
Hay algunos detalles que debemos tener muy claros para poder desarrollar nuestros sketch sin mayores problemas, ya que no se le suele dar mucha importancia pero en muchas ocasiones son los causantes de errores de compilación.
El lenguaje Arduino es “case-sensitive”. Esto quiere decir que es totalmente diferentes escribir “hola”, “Hola” y “hOla”. Hay casos mas graves como por ejemplo escribir “serial.begin(9600)” en vez de “Serial.begin(9600)”. En el primer caso la instrucción esta escrita con “s” minúscula, esto arrojaría un error de compilación, ya que para el IDE de Arduino “serial” con minúscula no significa nada. Así que hay que estar muy atentos a la distinción de mayúsculas o minúsculas.

La tabulaciones no son ninguna exigencia o limitante a la hora de trabajar en la programación, pero ciertamente si son extremadamente útiles a la hora de darle compresión y legibilidad al código, ya que estas evitan que sera todo una masa de códigos incomprensible, y permite organizar de una manera mas compresible toda la estructura del código.
todas las instrucciones acaban en punto y coma. Es imprescindible añadir un punto y coma (;) al final de cada instrucción, ya que el compilador necesita localizarlo para poder detectar el final de cada instrucción escrita en el sketch. Si se olvida, se mostrará un texto de error que puede ser obvio o no.
Comentarios
Tal como pasa con las tabulaciones, los comentarios no son imprescindibles para el correcto funcionamiento del programa, pero son extremadamente útiles a la hora de desarrollar un sketch. Un Comentario es un texto escrito en el código de sketch que se utiliza para informar sobre como funciona cierta parte del código, dejar notas de interés o dar algunas instrucciones al futuro lector. Los comentarios son totalmente ignorados por el compilador, es decir, este no va a generar un código basado en lo que dice un comentario, o añadirá peso a nuestro programa, es netamente una herramienta para la persona que escribe o lee el código.

Hay dos tipos de comentarios:
Comentarios de línea ( // ): Todo lo escrito después de “//” es un comentario. Estos comentarios solo abarcan la línea donde se escribe.
Comentarios de bloque ( /*…*/ ): Este tipo de comentarios puede abarcar más de una línea, quedando así un bloque de texto que es de mucha utilidad cuando necesitas dejar un comentario más extenso. El comentario en bloque empieza con los caracteres “/*” y de ahí en adelante todo el código consiguiente será un comentario, hasta que el compilador consiga el carácter de cierre de comentario “*/”. Siempre debemos recordar cerrar el comentario en bloque, ya que de otra manera todo el código después de su apertura quedará como un comentario y tendrá errores de compilación.
Una práctica muy común en la programación es “sacar” partes del código colocándolo en comentarios, así puedes probar el comportamiento del programa sin esa parte de código pero sin borrarlo.
Variables
Una variable es un elemento de nuestro programa que actuá como un almacén temporal para algún valor que queramos manipular, el cual tendrá un nombre que nosotros le asignemos. Este valor puede ser modificado en cualquier momento por nuestro programa.
La procedencia del valor de nuestra variable pueden ser muchas, podemos asignarlo nosotros mismos, puede ser el resultado de una operación lógica o matemática, puede venir de algún sensor análogo o digital.
Declaración e inicialización de variable
Antes de empezar a usar nuestras variables en el sketch primero debemos crearla. La acción de crear una variable se le llama “declaración de variable”. En el lenguaje de Arduino cuando se declara una variable es necesario especificar de que tipo es. El tipo de la variable lo elegiremos según el tipo de dato que queramos almacenar en esa variable. Por ende cada variable solo puede almacenar datos del tipo que fue declarada. Si asignamos un tipo diferente al declarado puede ocasionar un error del sketch.

A la hora de declarar las variables, se recomienda dar a nuestras variables nombres descriptivos para hacer el código de nuestro sketch mas legible. Para nombrar una variable se puede utilizar cualquier palabra que queramos, siempre que esta no sea ya una palabra reservada del lenguaje Arduino y que no empiece por un digito.
Tipos de variable Arduino
Bolean: Las variables de este tipo solo pueden tener dos valores: cierto o falso. Se pueden usar para comprobar si se han recibido datos de un sensor (cierto) o no (falso). El valor de la variable se puede asignar de manera explicita utilizando la palabra “true” o el valor “1” para cierto, y “false” o el valor “0” para falso.
Char: Esta variable solo puede almacenar un solo carácter. Para asignar explícitamente a una variable tipo char un determinado valor se debe escribir el carácter entre comillas simples ‘A’. Cada variable de este tipo ocupa 8bits.
Byte: Este tipo de variables puede tener un valor numérico entre 0 y 255. Cada variable de este tipo ocupa 8bits.
Int: Este tipo de variables puede tener un valor numérico entre -32768 y 32767. Cada variable de este tipo ocupa 16bits. En la placa Arduino Due ocupa 32bits.
Word: Este tipo de variables puede tener un valor numérico entre 0 y 65535. Cada variable de este tipo ocupa 16bits. En la placa Arduino Due ocupa 32bits.
Short: Este tipo de variables puede tener un valor numérico entre -32768 y 32767. Cada variable de este tipo ocupa 16bits. En la placa Arduino Due ocupa 16bits.
Long: Este tipo de variables puede tener un valor numérico entre -2.147.483.648 y 2.147.483.647. Cada variable de este tipo ocupa 32bits.
Unsigned Long: Este tipo de variables puede tener un valor numérico entre 0 y 4.294.967.295. Cada variable de este tipo ocupa 32bits.
Float: Este tipo de variables puede tener un valor numérico entre -3,4028235×10^38 y 3,4028235×10^38 y permite trabajar numero decimales. Cada variable de este tipo ocupa 32bits.
Constantes
Se pueden declarar variables de tal forma que consigamos que su valor sea siempre el mismo y no se pueda modificar.Este tipo de variables se llaman “constantes” y se pueden utilizar como cualquier variable, exceptuando que si se intenta modificar el compilador arrojara un error.
Para declarar estas variables solo hay que preceder la declaración de esa variable con la palabra clave “const“.
Funciones Arduino
Arduino tiene un conjunto de funciones reservadas que realizan diferentes tareas, estas funciones son las que nos facilitan tareas como leer datos de un sensor, activar o desactivar un salida, crear ciclos repetitivos, etc.
Para tener un completo entendimiento de dichas funciones tenemos que remitirnos a la página oficial de Arduino, el cual es el mejor sitio para conseguir referencias de cada una de ellas y como usarlas.
Referencias Arduino
El lenguaje de programación de Arduino es una variación del lenguaje C++, si bien es un lenguaje con una amplia documentación y material de apoyo, hay ciertas funciones y características propias de Arduino, el mejor lugar para entender todas estas funciones especiales de Arduino es en la pagina de referencias oficiales de Arduino.cc.