Por un lado, Arduino es una compañía especializada en el desarrollo de hardware y software libre que lleva su nombre. Pero, cuando hacemos referencia a él, comúnmente nos referimos a las placas que podemos comprar, formadas por un microcontrolador (generalmente un AVR Atmel de 8 bits), una memoria y un sistema de almacenamiento con el que poder llevar a cabo cualquier proyecto. Las placas, normalmente, tienen también una serie de pines o conectores con los que podremos conectarlas a otros circuitos electrónicos más complejos para controlarlos.
¿Cómo se programa en Arduino?
Estas placas están basadas en un microcontrolador del tipo ATMEL, es decir, un controlador en el que podemos grabar instrucciones para que las ejecute sin necesidad de estar introduciendo los comandos a mano una y otra vez. Para escribir estas instrucciones es necesario usar un software llamado Arduino IDE, el Entorno de Desarrollo Integrado oficial que cuenta con todo lo necesario para poder dar forma a los programas que creamos para este dispositivo.
Aunque Arduino utiliza un lenguaje de programación propio, este está basado en C++. Por lo tanto, comparte las principales ventajas de este lenguaje de programación. Además, en las versiones más recientes del IDE, es posible incluso enviarle las instrucciones directamente en C++ sin tener que traducirlas a su propio lenguaje para programar esta placa.
Además de usar C++, el Arduino IDE también soporta otros lenguajes de programación alternativos, como es el caso de C (sin las extensiones de C++), Wiring (una plataforma de prototipado electrónico formada por un lenguaje de programación, un entorno de desarrollo integrado (IDE) y un microcontrolador), así como en Processing (un lenguaje de programación basado en Java, pero enfocado a placas electrónicas).
¿Cuál es el mejor de todos? Al final dependerá del usuario en cuestión. Si ya dominamos uno de los lenguajes anteriores, lo más cómodo y rápido será usarlo para mandar instrucciones a nuestra placa. Si no dominamos ninguno, y queremos empezar de cero, lo mejor es aprender el propio lenguaje de Arduino IDE.
IDE 2.0 (Arduino Pro)
En 2019, Arduino lanzó un nuevo IDE de programación bajo el nombre de «Arduino Pro IDE», el cual fue renombrado en 2021 por «IDE 2.0«. Este nuevo entorno de desarrollo sigue usando el clásico Arduino CLI, pero incluye una gran cantidad de mejoras y novedades de todo tipo para facilitar el desarrollo profesional de todo tipo de proyectos. Este nuevo IDE está basado en Eclipse Theia, y cuenta con características como, por ejemplo:
Es mucho más completo y moderno.
Tres modos de funcionamiento: Modo dual, modo clásico (idéntico al IDE clásico de Arduino) y modo profesional (vista del sistema de archivos).
Nuevo Board Manager.
Nuevo Library Manager.
Para placas ARM, auto-completado de Basic.
Integración con GIT.
Modo oscuro.
Este IDE se puede descargar igualmente desde la web de descargas de Arduino. Y, por supuesto, es totalmente gratuito y de código abierto.
Primeros pasos en la programación
Programar para Arduino no es muy diferente a hacerlo para cualquier otro microcontrolador, e incluso para hacerlo en cualquier lenguaje de programación. Simplemente debemos tener en cuenta las características especiales del IDE y del lenguaje que vamos a utilizar.
A grandes rasgos, la sintaxis es muy similar, como ya hemos explicado, a la de C++. Si ya conocemos este lenguaje de programación, seguramente nos hagamos muy rápido a los cambios que encontraremos para dar forma a este sistema. Mientras programamos en el IDE podemos añadir comentarios que nos ayudarán a entender mejor el código y, además, ayudarán a otras personas a entenderlo en caso de que lo compartamos. Igual que en otros lenguajes, cada sentencia debe acabar en una coma (,) o en punto y coma (;), ya que, de lo contrario, el compilador tratará todo como una misma sentencia y el compilador dará error.
Dentro de la sintaxis nos encontraremos con otro elemento muy importante: las variables. Estas se utilizarán para guardar distinta información en la memoria, acceder a ella cuando lo necesitemos, y podremos modificarla en función de las necesidades del programa.
Y también debemos tener en cuenta las funciones, o métodos. Especialmente aquellas que están relacionadas con la comunicación con los pines. Por ejemplo, una de las más básicas es «digitalWrite()«, la cual nos permite, mediante parámetros, activar o desactivar la corriente en un pin concreto.
Otras funciones esenciales para la programación son setup(), la función que se ejecutará en primer lugar nada más cargar la placa y que nos permitirá preparar el dispositivo para el programa que vamos a ejecutar, y la función loop(), función que se ejecutará una y otra vez para actualizar, por ejemplo, la información que se muestra en pantalla. Es recomendable tener cuidado con esta última, ya que el dispositivo quedará encerrado dentro de ella y podemos dar lugar a bucles infinitos.
Cuando tengamos el programa creado, gracias al Arduino IDE podremos compilarlo, o lo que es lo mismo, traducirlo a lenguaje máquina (un lenguaje de muy bajo nivel) para que se pueda ejecutar en el microcontrolador.