El lenguaje de programación usado por Arduino está basado en Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil uso y que sirve como medio para la enseñanza y producción de proyectos multimedia e
Para programar un Arduino, el lenguaje estándar es C++, aunque es posible programarlo en otros lenguajes. No es un C++ puro sino que es una adaptación que proveniente de avr-libc que provee de una librería de C de alta calidad para usar con GCC en los microcontroladores (uC) AVR de ATmel y muchas funciones específicas para los MCU AVR de ATmel.
El IDE Arduino (Integrated Development Environment) es de fuente abierta. Existen versiones desktop para Windows, MAC y Linux. También existe un versión en linea.
Consiste de un editor de textos
El Arduino ISP (In System Programmer) es una pequeña AVR basada en el proyecto de David Mellis' FabISP. Con este programador puede cargar bocetos y grabar el gestor de arranque en cualquier placa basada en AVR, incluyendo Arduinos. Al cargar un boceto con un programador externo, puede eliminar el gestor de arranque y usar el espacio adicional para su boceto. El Arduino ISP también se puede usar para grabar el gestor de arranque Arduino, por lo que puedes recuperar tu chip si accidentalmente corrompes el gestor de arranque. También es necesario quemar el gestor de arranque cuando usa un nuevo uC ATmega en su Arduino, y desea usar el gestor de arranque para cargar un boceto a través de la conexión USB-Serial.
Los programas escritos usando el software Arduino (IDE) se llaman bocetos (sketch). Estos bocetos están escritos en el editor de texto y se guardan con la extensión de archivo .ino. El editor tiene funciones para cortar/pegar y para buscar/reemplazar texto. El área de mensajes brinda comentarios al guardar y exportar y también muestra los errores. La consola muestra el texto generado por el software Arduino (IDE), incluidos los mensajes de error completos y otra información. La esquina inferior derecha de la ventana muestra la placa configurada y el puerto serie usado. Los botones de la barra de herramientas le permiten verificar y cargar programas, crear, abrir y guardar bocetos, y abrir el monitor en serie.
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.
void setup(){ ... } void loop(){ ... }
En donde setup() es la parte encargada de la configuración, declaración de variables e inicializar los pines y solo se ejecuta una vez y loop() es la que contiene el programa que se ejecutará cíclicamente. Ambas funciones son indispensable para que el programa trabaje.
void setup(){ pinMode(3, OUTPUT); Serial.begin(9600); } void loop(){ digitalWrite(3, HIGH); delay(300); digitalWrite(3, LOW); delay(300); }
Muestra los datos en serie que se envían desde la placa Arduino via USB. Para enviar datos a la pizarra, ingrese el texto y haga clic en el botón "enviar" o presione enter. Elija la velocidad en baudios del menú desplegable que coincida con la velocidad que configuro con la función Serial.begin(baudios) en su boceto. Tenga en cuenta que en Windows, MAC o Linux, la placa Arduino se reiniciará (vuelva a ejecutar la ejecución de su boceto al comienzo) cuando se conecte con el monitor serie.
También puede hablar con la pizarra desde Processing, Flash, MaxMSP , etc.
Desde la versión 1.6.6 del IDE de Arduino se dispone de una herramienta llamada Serial Plotter que nos permite hacer gráficas múltiples de los datos enviados por Arduino vía puerto serie. Sirve principalmente para hacer análisis de la forma de onda. Es un trazador de gráficos con desplazamiento en el eje x (500 puntos en el ancho total), diferentes colores para cada variable, admite valores negativos ya que el eje y se ajusta automáticamente.
Para imprimir mas de una variable deje un espacio entre los datos con " " o "\t". Puedes cargar un ejemplo desde 01.Basics
const float pi = 3.14; void setup() { Serial.begin(9600); } void loop() { for (float n=0; n<100 n++) { //Onda sinusoidal Serial.print(sin(n*pi/50)); Serial.print("\t"); //Onda cuadrada if (n<50){ Serial.print(0); }else{ Serial.print(1); } Serial.print("\t"); //Onda triangular Serial.println(n/100); delay(1); } }
void setup(){ Serial.begin(9600); } void loop(){ int valor; valor = random(0,100); Serial.println(valor); delay(100); }
Se usa para poner comentarios de autor. Serán ignorados por el compilador.
//Comentario de una sola linea /*Comentario de varias lineas*/
e usa para incluir librerías externas en su boceto. Esto le da al programador acceso a un gran grupo de librerías C estándar prefabricadas que traen nuevos métodos y funciones. El nombre de la librería deberá estar entre < >. No debe poner terminador de punto y coma o el compilador dará un error.
#include <libreria.h>
Es un componente C útil que le permite al programador dar un nombre a un valor constante antes de compilar el programa. Las constantes definidas en Arduino no ocupan ningún espacio de memoria de programa en el CHIP. El compilador reemplazará las referencias a estas constantes con el valor definido en tiempo de compilación. Sin embargo, esto puede tener algunos efectos secundarios no deseados, si, por ejemplo, un nombre de constante que ha sido #defined se incluye en alguna otra constante o nombre de variable. En ese caso, el texto se reemplazará por el número # definido (o texto).
En general, la palabra clave const es preferida para definir constantes y debe usarse en lugar de #define. No debe poner terminador de punto y coma o el compilador dará un error.
#define ledPin 3
En general son todas las palabras que cambia de color en el IDE.
Palabra | Descripción |
---|---|
HIGH / LOW | |
true / false | |
INPUT / INPUT_PULLUP / OUTPUT | |
LED_BUILTIN | Es un LED interno con una resistencia limitadora en pin 13 |