Después de haber hablado de como instalar el Arduino IDE en Windows y en Linux, e incluso de haber hecho nuestro primer «Hola mundo», toca aprender algunos conceptos básicos sobre como programar en Arduino.
Acceso directo a la plataforma con todo el contenido ya publicado. Incluye acceso al Soporte Personalizado y a la Zona de Descargas de contenido Premium.
Programar Arduino consiste en traducir a líneas de código las tareas automatizadas que queremos hacer leyendo de los sensores y en función de las condiciones del entorno programar la interacción con el mundo exterior mediante unos actuadores.
[click_to_tweet tweet=»Cómo programar en Arduino desde cero» quote=»Cómo programar en Arduino desde cero»]
Descarga mi guía gratuita de impresión 3D y aprende en tan solo 10 sencillos pasos.
"*" señala los campos obligatorios
Lo bueno es que Arduino ofrece una forma de programar sencilla, potente y las herramientas necesarias para compilar nuestro programa en la memoria flash de la placa. Por otro lado el Arduino IDE ofrece un sistema de gestión de librerías muy practico con las que nos facilitará nuestro trabajo.
Índice de contenidos
Estructura de un proyecto
Todo proyecto de Arduino se guarda en un archivo con extensión .ino y la estructura del proyecto, o también llamado skectch, se forma de al menos dos partes de código muy importantes.
Estas dos partes, las cuales son dos funciones llamadas [mark]setup()[/mark] y [mark]loop()[/mark], son obligatorias y en ellas iniciaremos variables, modos de pin, librerías, realizar bucles consecutivos, etc.
void setup() { // Solo se ejecuta una vez, después de cada encendido o reinicio. } void loop() { // Se ejecuta de forma consecutiva, una detrás de otra. }
Así que ya sabemos de las dos funciones que deberán estar en todo proyecto hecho para nuestra placa Arduino, por lo que ahora explicaré sobre las diferentes variables y funciones que veremos y usaremos.
Comentarios
Los comentarios, como su propio nombre indica, sirve para comentar partes de nuestro código, ya sea para interés nuestro o para terceras personas.
Acceso directo a la plataforma con todo el contenido ya publicado. Incluye acceso al Soporte Personalizado y a la Zona de Descargas de contenido Premium.
Arduino ignora todo aquello que se encuentre entre [mark]/*[/mark] y [mark]*/[/mark] por lo que podremos agregar una pequeña explicación del programa, cómo funciona o para que sirve.
/* Todo aquello que esté agregado en estas líneas será ignorado. */
También podremos agregar comentarios para una sola línea agregando [mark]//[/mark] antes del texto.
int ledPin = 13 ; // LED conectado al pin digital 13
Variables
Las variables se emplean para almacenar cierto tipo de información y estas, están formadas por un nombre un tipo y un valor. Por ejemplo en la línea anterior tenemos de nombre [mark]ledPin[/mark], el tipo [mark]int[/mark] ya que es un número íntegro y el valor inicial [mark]13[/mark].
Ahora en cada parte de nuestro código donde aparezca [mark]ledPin[/mark] se recuperará el valor 13, y así de esta forma nos ahorramos el poner el valor 13 en todas partes. Además nos ayudará a la hora de hacer alguna modificación ya que tan solo lo tendremos que cambiarlo una vez.
Funciones
Las funciones son fragmentos de código que pueden usar desde cualquier parte de nuestro proyecto. Por ejemplo la función [mark]setup()[/mark].
void setup() { pinMode(ledPin, OUTPUT); // Establece el pin digital como salida }
La primera línea del código establece el nombre, en este caso [mark]setup[/mark] y el código entre [mark]{[/mark] y [mark]}[/mark] se llama el cuerpo de la función, que básicamente es lo que hace la función.
Este código llamaría a una función ya definida. Por ejemplo, la línea [mark]pinMode(ledPin, OUTPUT);[/mark] llama a la función [mark]pinMode()[/mark], pasándole dos parámetros: [mark]ledPin[/mark] y [mark]OUTPUT[/mark]. La función [mark]pinMode()[/mark] utiliza estos parámetros para decidir qué pin y que modo usar.
pinMode(), digitalWrite(), digitalRead() y delay()
La función [mark]pinMode()[/mark] configura un pin como entrada o como salida, por lo que para usarlo tan solo tendremos que especificar el número del pin y configurarlo como [mark]INPUT[/mark] o [mark]OUTPUT[/mark].
La función digitalWrite() establece el valor de un pin, el cual puede ser [mark]HIGH[/mark] o [mark]LOW[/mark].
digitalWrite(ledPin, HIGH);
Esta línea establece [mark]ledPin[/mark], que recordemos que los habíamos establecido en el valor 13, como HIGH o 5 voltios. Si estuviera como LOW el pin se establecería en 0 voltios.
Acceso directo a la plataforma con todo el contenido ya publicado. Incluye acceso al Soporte Personalizado y a la Zona de Descargas de contenido Premium.
Con la función [mark]digitalRead()[/mark] podremos leer el valor de un pin. Que como en la función digitalWrite(), puede ser HIGH o LOW.
La función delay() hace que Arduino espera un número especifico de milisegundos antes de continuar con la siguiente línea.
delay(1000);
Con esta simple línea estableceríamos un retraso de un segundo hasta continuar nuestro código.
Y bueno, estas serían las funciones más importantes que usaremos en nuestros futuros proyectos Arduino. En próximas entradas del blog escribiré sobre otras funciones que también nos van a venir muy bien.