Todo lo que necesitas saber sobre el código ArduinoBlog Postcircuito teamMarch 11, 2018
Desde el lanzamiento de la plataforma de código abierto Arduino, la marca se ha establecido en el centro de una comunidad de código abierto expansiva. El ecosistema Arduino está compuesto por una combinación diversa de hardware y software. La versatilidad de Arduino y su sencilla interfaz lo convierten en una opción líder para una amplia gama de usuarios de todo el mundo, desde aficionados, diseñadores y artistas hasta prototipos de productos.
La placa Arduino se conecta a un ordenador mediante USB, donde se conecta con el entorno de desarrollo Arduino (IDE). El usuario escribe el código de Arduino en el IDE, y luego lo carga en el microcontrolador que ejecuta el código, interactuando con entradas y salidas como sensores, motores y luces.
Tanto los principiantes como los expertos tienen acceso a una gran cantidad de recursos y materiales gratuitos de apoyo. Los usuarios pueden buscar información sobre cómo configurar su placa o incluso cómo codificar en Arduino. El código abierto que hay detrás de Arduino lo ha hecho especialmente amigable para los usuarios nuevos y experimentados. Hay miles de ejemplos de código Arduino disponibles en línea. En este post, te llevaremos a través de algunos principios básicos de codificación para Arduino.
Planifica tu próximo proyecto Arduino >>
Entorno de codificación Arduino y herramientas básicas
¿Qué lenguaje es Arduino?
El código de Arduino está escrito en C++ con un añadido de métodos y funciones especiales, que mencionaremos más adelante. C++ es un lenguaje de programación legible para el ser humano. Cuando creas un ‘sketch’ (el nombre que reciben los archivos de código de Arduino), se procesa y se compila a lenguaje de máquina.
Arduino IDE
El Entorno de Desarrollo Integrado (IDE) de Arduino es el principal programa de edición de texto utilizado para la programación de Arduino. Es donde escribirás tu código antes de subirlo a la placa que quieres programar. El código de Arduino se conoce como bocetos.
Nota: Es importante utilizar la última versión de Arduino IDE. De vez en cuando, comprueba si hay actualizaciones aquí.
Ejemplo de código Arduino
Como puedes ver, el IDE tiene un diseño minimalista. Sólo hay 5 encabezados en la barra de menú, así como una serie de botones debajo que le permiten verificar y cargar sus bocetos. Básicamente, el IDE traduce y compila tus bocetos en código que Arduino puede entender. Una vez que el código de Arduino se compila, se carga en la memoria de la placa.
Todo lo que el usuario tiene que hacer para comenzar a compilar su boceto es pulsar un botón (una guía para esto se puede encontrar a continuación).
Si hay algún error en el código de Arduino, un mensaje de advertencia aparecerá pidiendo al usuario que haga cambios. La mayoría de los nuevos usuarios suelen tener dificultades con la compilación debido a los estrictos requisitos de sintaxis de Arduino. Si comete algún error de puntuación al utilizar Arduino, el código no compilará y se encontrará con un mensaje de error.
Monitor de serie y trazador de serie
El monitor de serie de Arduino se puede abrir haciendo clic en el icono de la lupa en la parte superior derecha del IDE o en herramientas. El monitor serie se utiliza principalmente para interactuar con la placa Arduino utilizando el ordenador, y es una gran herramienta para la monitorización y depuración en tiempo real. Para usar el monitor, necesitarás usar la clase Serial.
El código que descargas de circuito.io tiene una sección de prueba que te ayuda a probar cada uno de los componentes usando el monitor serie, como puedes ver en la captura de pantalla de abajo:
El trazador serie de Arduino es otro componente del IDE de Arduino, que te permite generar un gráfico en tiempo real de tus datos serie. El trazador de serie hace que sea mucho más fácil para usted para analizar sus datos a través de una pantalla visual. Puedes crear gráficos, gráficos de valores negativos y realizar análisis de formas de onda.
Depuración del código y el hardware de Arduino
A diferencia de otras plataformas de programación de software, Arduino no tiene un depurador integrado. Los usuarios pueden utilizar software de terceros, o pueden utilizar el monitor de serie para imprimir los procesos activos de Arduino para la supervisión y depuración.
Al utilizar la clase Serial, puede imprimir en el monitor de serie, los comentarios de depuración y los valores de las variables. En la mayoría de los modelos de Arduino, esto será utilizando los pines serie 0 y 1 que están conectados al puerto USB.
Estructura del código
Bibliotecas
En Arduino, al igual que en otras plataformas de programación líderes, existen bibliotecas incorporadas que proporcionan funcionalidad básica. Además, es posible importar otras bibliotecas y ampliar las capacidades y características de la placa Arduino. Estas librerías se dividen a grandes rasgos en librerías que interactúan con un componente específico o aquellas que implementan nuevas funciones.
Para importar una nueva librería, tienes que ir a Sketch > Importar Librería
Además, en la parte superior de tu archivo .ino, tienes que usar ‘#include’ para incluir librerías externas. También puedes crear librerías personalizadas para usarlas en sketches aislados.
Definiciones de los pines
Para usar los pines de Arduino, necesitas definir qué pin se está usando y su funcionalidad. Una forma conveniente de definir los pines utilizados es utilizando:
La funcionalidad es de entrada o de salida y se define utilizando el método pinMode () en la sección de configuración.
Declaraciones
Variables
Cuando se utiliza Arduino, es necesario declarar variables globales e instancias para ser utilizadas posteriormente. En pocas palabras, una variable le permite nombrar y almacenar un valor para ser utilizado en el futuro. Por ejemplo, almacenarías los datos adquiridos de un sensor para utilizarlos más tarde. Para declarar una variable basta con definir su tipo, nombre y valor inicial.
Cabe mencionar que declarar variables globales no es una necesidad absoluta. Sin embargo, es aconsejable que declare sus variables para facilitar la utilización de sus valores más adelante.
Instancias
En la programación de software, una clase es una colección de funciones y variables que se mantienen juntas en un solo lugar. Cada clase tiene una función especial conocida como constructor, que se utiliza para crear una instancia de la clase. Para poder utilizar las funciones de la clase, necesitamos declarar una instancia para ella.
Setup()
Todo sketch de Arduino debe tener una función setup. Esta función define el estado inicial del Arduino al arrancar y se ejecuta sólo una vez.
Aquí definiremos lo siguiente:
- Funcionalidad de los pines usando la función pinMode
- Estado inicial de los pines
- Inicializar clases
- Inicializar variables
- Lógica de código
- Primero, compila el código. Para ello simplemente haz clic en el icono de verificación (o haz clic en el boceto > Verificar / Compilar en la barra de menú.
- Elige el puerto serie al que está conectado actualmente tu Arduino. Para ello, haz clic en Herramientas > Puerto serie en el menú para designar el puerto serie elegido (como se muestra anteriormente). A continuación, puede cargar el sketch compilado.
- Para cargar el sketch, haga clic en el icono de carga junto a la marca. También puedes ir al menú y hacer clic en File> upload. Los LEDs de tu Arduino parpadearán una vez que se estén transfiriendo los datos.
- Haz clic en herramientas > Tablas > Gestor de placas
- Busca la placa que quieres añadir en la barra de búsqueda y haz clic en «instalar».
- Haz clic en Archivos > Preferencias
- En el campo Administrador de placas adicionales, pega la URL del paquete de instalación de tu placa. Por ejemplo, para nodeMCU, añade la siguiente URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Haga clic en Aceptar
- Vaya a herramientas > Tableros > Administrador de tableros
- Busque el tablero que desea añadir en la barra de búsqueda y haga clic en «instalar».
Loop()
La función loop también es imprescindible en todo sketch de Arduino y se ejecuta una vez que setup() ha finalizado. Es la función principal y como su nombre indica, se ejecuta en un bucle una y otra vez. El bucle describe la lógica principal de tu circuito.
Por ejemplo:
Nota: El uso del término ‘void’ significa que la función no devuelve ningún valor.
Cómo programar Arduino
La lógica básica del código de Arduino es una estructura «si-entonces» y se puede dividir en 4 bloques:
Configuración – normalmente se escribirá en la sección de configuración del código de Arduino, y realiza cosas que deben hacerse una sola vez, como la calibración del sensor.
Entrada – al principio del bucle, lee las entradas. Estos valores se utilizarán como condiciones («if») como la lectura de la luz ambiental de una LDR utilizando analogRead().
Manipular datos – esta sección se utiliza para transformar los datos en una forma más conveniente o realizar cálculos. Por ejemplo, el AnalogRead() da una lectura de 0-1023 que se puede mapear a un rango de 0-255 para ser utilizado para PWM.(ver analogWrite())
Salida – esta sección define el resultado final de la lógica («entonces») según los datos calculados en el paso anterior. Mirando nuestro ejemplo de la LDR y el PWM, enciende un LED sólo cuando el nivel de luz ambiental pasa por debajo de un determinado umbral.
Librerías de código de Arduino
Estructura de la biblioteca
Una biblioteca es una carpeta compuesta por archivos con archivos de código C++ (.cpp) y archivos de cabecera C++ (.h).
El archivo .h describe la estructura de la biblioteca y declara todas sus variables y funciones.
El archivo .cpp contiene la implementación de las funciones.
Importación de Bibliotecas
Lo primero que tienes que hacer es encontrar la biblioteca que quieres utilizar de entre las muchas disponibles en Internet. Después de descargarla en tu ordenador, sólo tienes que abrir el IDE de Arduino y hacer clic en Sketch > Incluir Biblioteca > Gestionar Bibliotecas. A continuación, puedes seleccionar la biblioteca que quieres importar al IDE. Una vez completado el proceso la librería estará disponible en el menú del sketch.
En el código proporcionado por circuito.io en lugar de añadir librerías externas como se ha mencionado anteriormente, les proporcionamos la carpeta del firmware. En este caso, el IDE sabe cómo encontrarlas al usar #include.
Del software al hardware
Hay mucho que decir de las capacidades de software de Arduino, pero es importante recordar que la plataforma se compone tanto de software como de hardware. Los dos trabajan en conjunto para ejecutar un sistema operativo complejo.
Código → Compilar → Cargar → Ejecutar
En el núcleo de Arduino, está la capacidad de compilar y ejecutar el código.
Después de escribir el código en el IDE es necesario cargarlo en el Arduino. Haciendo clic en el botón Upload (el icono de la flecha que mira hacia la derecha), se compilará el código y se subirá si ha pasado la compilación. Una vez que la subida esté completa, el programa comenzará a ejecutarse automáticamente.
También puedes hacer esto paso a paso:
Como puedes ver, el icono de verificación se encuentra en la parte superior izquierda debajo de la etiqueta «Archivo» en la sección del menú.
Una vez que hayas hecho esto, Arduino comenzará a compilar. Una vez que haya terminado, recibirás un mensaje de finalización que se parece a esto:
Como puedes ver, la línea verde en la parte inferior de la página te indica que has «terminado de compilar». Si tu código no se ejecuta, se te notificará en la misma sección, y se resaltará el código problemático para que lo edites.
Una vez que hayas compilado tu sketch, es el momento de subirlo.
Una vez completado, te aparecerá un mensaje de finalización que te indica que Arduino ha terminado de subir los datos.
Cómo configurar tu IDE
Para conectar una placa Arduino a tu ordenador necesitas un cable USB. Cuando se utiliza el Arduino UNO, el USB transfiere los datos del programa directamente a su placa. El cable USB se utiliza para alimentar su Arduino. También puedes hacer funcionar tu Arduino a través de una fuente de alimentación externa.
Antes de que puedas cargar el código, hay algunos ajustes que debes configurar.
Elige tu placa – Tienes que designar qué placa Arduino vas a utilizar. Hazlo haciendo clic en Herramientas > Placa > Tu placa.
Elige tu procesador- hay ciertas placas (por ejemplo Arduino pro-mini) para las que necesitas especificar qué modelo de procesador tienes. En herramientas > procesador > selecciona el modelo que tienes.
Elige tu puerto – para seleccionar el puerto al que está conectada tu placa, ve a herramientas > Puerto > COMX Arduino (Es el puerto serie de Arduino).
Cómo instalar placas no nativas (por ejemplo. NodeMCU)
Algunos modelos de placas no están preinstalados en el IDE de Arduino, por lo que tendrás que instalarlos antes de poder cargar el código.
Para instalar una placa no nativa como NodeMCU, necesitas:
Algunos tableros no se pueden encontrar a través del Administrador de tableros. En este caso, tendrás que añadirlos manualmente. Para ello:
Una vez que hayas completado este paso, verás las placas instaladas en la lista de placas bajo herramientas.
Nota: el proceso puede diferir ligeramente para diferentes placas.
Arduino: Una plataforma extremadamente versátil
Arduino es mucho más que un simple microcontrolador. Con un IDE expansivo y una amplia gama de configuraciones de hardware, Arduino es realmente una plataforma diversa. La variedad de sus librerías y su diseño intuitivo la convierten en una de las favoritas tanto de los nuevos usuarios como de los creadores experimentados. Hay miles de recursos de la comunidad para ayudarte a empezar tanto con el hardware como con el software.
A medida que avanzas en tus habilidades, puedes enfrentarte a problemas que requieran depuración, que es un punto débil del IDE de Arduino. Por suerte, existen varias herramientas y métodos para depurar el hardware y el software de Arduino. En el siguiente artículo, vamos a ver cómo depurar Arduino (y cómo probar el código de Arduino), así como el uso de simuladores y emuladores.