Trastejant

Crea, comparte, aprende y disfruta

Crea tus propias librerías

Libreria

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 están definidas en nuestra librería, mientras que el fichero .cpp contiene todo el código.
Si, por ejemplo, creásemos una librería para sumar dos números naturales este sería su código:

1
2
3
4
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 tendría la función completa.

Creando nuestra propia librería

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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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:

1
2
3
4
5
6
7
8
9
10
11
12
#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:

1
2
3
4
5
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 librería.
Otros
Podemos evitar que nuestra librería sea llamada más de una vez añadiendo la

1
2
#ifndef nombreDeNuestraLibreria;
includenombreDeNuestraLibreria.h;

A tener en cuenta

Siempre se debería colocar comentarios en nuestro código para que los demás puedan entender como funciona. Si demás estos comentarios están en ingles permitirás que mucha más gente pueda usar tu creación.

Las funciones deben ser lo más independientes posible. No puedes dar por hecho que el usuario 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.


También te puede interesar...

No hay temas relacionados

Una respuesta a “Crea tus propias librerías”

  1. Pablo Estrella dice:

    Muy útil pero no indica cada fichero que nombre ponerle y donde guardarlo

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.