Crea tus propias librerias

para Arduino

Introducción

Lo primero que debemos saber es que cualquier librería para Arduino consta, al menos, de dos ficheros. Uno con extensión .h y el otro .cpp El fichero .h contiene las cabeceras de todas las funciones a las que estan definidas en nuestra librería, mientras que el fichero .cpp contiene todo el código.

Si, por ejemplo, creasemos una librería para sumar dos numeros naturales este sería su código:
		function suma(int num1,int num2){
			int resultado = num1 + num2;
			return resultado;
		}

El fichero .h contendría la cabecera de la función, es decir function suma(int num1, int num2). Y el fichero .cpp tendria la función completa.

Creando nuestra propia libreria

Vamos a realizar una librería muy simple para demostrar como se hace paso a paso.

Siguiendo con el ejemplo anterior, vamos a crear una librería que contenga funciones para realizar cuatro funciones matemáticas básicas, sumar, restar, multiplicar y dividir.

comenzaremos creando el fichero .cpp, que como sabemos contendrá todas las funciones, seria algo como lo siguiente:

		#include "mates.h";
		#include "Arduino.h";
		
		function suma(int num1,int num2){
			int resultado = num1 + num2;
			return resultado;
		}

		function resta(int num1,int num2){
			int resultado = num1 - num2;
			return resultado;
		}
		
		function divide(int num1,int num2){
			int resultado = num1 / num2;
			return resultado;
		}
		
		function multiplica(int num1,int num2){
			int resultado = num1 * num2;
			return resultado;
		}
	 

Como vemos, a parte de las funciones hay que incluir dos lineas más al principio del todo #include "Arduino.h" nos permite usar todas las constantes,funciones y propiedades a las que estamos acostumbrados en Arduino.

#mates.h enlazamos estas funciones al fichero de declaración de cabeceras que crearemos a continuación. Ahora hay que crear el fichero .h, que ser´ algo tan sencillo como esto:

		#include "Arduino.h";
		class mates{
			public:
				suma(int num1, int num2);
				resta(int num1, int num2);
				multiplicacion(int num1, int num2);
				division(int num1, int num2);
			private:
				int _num1;
				int _num2;
				int _resultado;
		}
	

Primero volvemos a incluir el fichero Arduino.h, a continuación ponemos class y el nombre de la librería

dentro de los corchetes colocamos las cabeceras de todas las funciones que contiene nuestro fichero .cpp. Una vez terminado de colocar todas las cabeceras, cerramos el corchete y abrimos private, entre sus corchetes iran definidas todas las variables que utilicemos.

Otros ficheros importantes

El fichero ketword.txt

Ahora,si queremos crear una librería con un mejor acabado, el siguiente paso sería crear otro fichero llamado keywords.txt

La función de este fichero es indicarle al IDE de Arduino ( el programa que usamos para programar, compilar y enviar nuestros programas a nuestro Arduino) que palabras debe resaltar y cuales no.

Es un fichero muy simple, solamente hay que escribir una linea por cada palabra que queremos que sea resaltada. Esta linea consta de la palabra que queremos resaltar, una tabulación y la palabra KEYWORD1 (para el nombre de la librería) o KEYWORD2 (para las funciones).

Por ejemplo, el fichero keywords para nuestro ejemplo sería:

	mates	KEYWORD1
	suma	KEYWORD2
	resta	KEYWORD2
	divide	KEYWORD2
	multiplica	KEYWORD2
Carpeta de ejemplos

También es una buena incluir una carpeta llamada examples en la que incluiremos algunos sketchs que muestren la forma de utilizar nuestra libreria.

Otros
Podemos evitar que nuestra librería sea llamada más de una vez añadiendo la
		#ifndef nombreDeNuestraLibreria;
		includenombreDeNuestraLibreria.h;
	

A tener en cuenta

Siempre se deberia colocar comentarios en nuestro código para que los demás puedan entender como funciona. Si demás estos comentarios estan en ingles permitirás que mucha más gente pueda usar tu creacionón.

Las funciones deben ser lo más independientes posible. No puedes dar por hecho que el usario incluirá en su código algo si tu no se lo pides expresamente.

Hay que evitar emplear variables globales y tener muy presente como debe funcionar una función, recibe una cosa y devuelve algo.

Plantilla Basada en la obra de © 2011 Ansimuz.