Cómo construir una librería Arduino Deja un comentario

¿Alguna vez has querido simplificar o automatizar una tarea usando un Arduino? ¿Si? Bueno, ¿alguna vez has querido simplificar el código requerido para esa tarea en una colección ordenada de funciones fáciles de usar? ¿También sí? Entonces este tutorial es para ti y para tu próximo proyecto con Arduino. En este tutorial, vamos a crear una librería para inicializar y controlar un pequeño circuito alimentado por Arduino; pero primero, ¿qué es una librería?

¿Qué es una librería y cómo funciona?

Una librería es un conjunto de recursos diseñados para simplificar un proceso o una tarea. Estos recursos pueden incluir (pero no están limitados a): subrutinas, funciones, clases, valores o especificaciones de tipo. Una biblioteca suele estar formada por:

  • Un Header File (.h) – Contiene las definiciones de la librería
  • Código fuente (.cpp) – Contiene el código de la librería
  • Un archivo de texto (.txt) – Contiene las palabras clave utilizadas en la librería
  • Un archivo Léeme (.txt) – Contiene otra información sobre la librería (Número de revisión, TODO’s, etc.)
  • Ejemplos (.ino) – Estos son para mostrar al usuario cómo operar la librería

Todos estos archivos deben ser colocados en una sola carpeta (llamada con el nombre de tu librería) que luego debe ser colocada dentro del directorio de librerías de Arduino de tu ordenador, Arduinolibraries. Esto se mostrará más adelante en el tutorial.

Propósito y descripción de esta librería

El propósito de esta librería es controlar fácilmente 3 LEDs conectados a 3 pines digitales en el Arduino. Tendrá la capacidad de hacer lo siguiente:

  • Declarar a qué pines están conectados los LEDs (los pines 3, 5 y 6 no son necesariamente necesarios)
  • Encender todos los LEDs
  • Apagar todos los LEDs
  • Flash todos los LEDs 4 veces

Esto es sólo una introducción a la creación de librerías; una vez que entiendas cómo se escriben y combinan el archivo fuente y el archivo de cabecera, podrás modificar este código (o escribir el tuyo propio) para realizar muchos procesos diferentes utilizando una variedad de componentes eléctricos.

Creación del fichero de cabecera

Para crear el archivo de cabecera y el código fuente, necesitaremos usar un editor de palabras de algún tipo. Usaremos Notepad+++ debido a su habilidad para entender la sintaxis de Arduino. Una vez descargado, abre un nuevo documento y guárdalo como myFirstLibrary.h asegurándote de guardarlo como “C++ source file”. Una vez hecho esto, copia el código de abajo y pégalo en el documento. Echa un vistazo a los comentarios para entender cómo funciona el archivo de cabecera, esto se aclarará después de explorar el archivo fuente.

/*
* myFirstLibrary.h - An introduction to library setup
* Revision #5 - See readMe
*/
// The #ifndef statement checks to see if the myFirstLibrary.h
// file isn't already defined. This is to stop double declarations
// of any identifiers within the library. It is paired with a
// #endif at the bottom of the header and this setup is known as
// an 'Include Guard'.
#ifndef myFirstLibrary_h

// The #define statement defines this file as the myFirstLibrary
// Header File so that it can be included within the source file.
#define myFirstLibrary_h

// The #include of Arduino.h gives this library access to the standard
// Arduino types and constants (HIGH, digitalWrite, etc.). It's
// unneccesary for sketches but required for libraries as they're not
// .ino (Arduino) files.
#include "Arduino.h"

// The class is where all the functions for the library are stored,
// along with all the variables required to make it operate
class myFirstLibrary{

// 'public:' and 'private:' refer to the security of the functions
// and variables listed in that set. Contents that are public can be
// accessed from a sketch for use, however private contents can only be
// accessed from within the class itself.
public:

// The first item in the class is known as the constructor. It shares the
// same name as the class and is used to create an instance of the class.
// It has no return type and is only used once per instance.
myFirstLibrary(int pinOne, int pinTwo, int pinThree);

// Below are the functions of the class. They are the functions available
// in the library for a user to call.
void on();
void off();
void flash(int delayTime);

private:

// When dealing with private variables, it is common convention to place
// an underscore before the variable name to let a user know the variable
// is private.
int _pinOne, _pinTwo, _pinThree;
};

// The end wrapping of the #ifndef Include Guard
#endif

Creación de archivo de palabras y archivos Léame

Dentro de la carpeta myFirstLibrary, guarda dos documentos de texto en blanco, palabras clave y léame. Es dentro de estos dos archivos que haremos lo siguiente:

  • Decirle al IDE de Arduino qué palabras son ‘importantes’ para que pueda resaltarlas cuando sean llamadas en un programa (no es necesario, sólo una buena práctica y hace que la depuración sea más fácil).
  • Identificar el número de revisión de la librería y lo que hace
  • Enumerar las funciones de la librería

El archivo de palabras clave es el archivo que le dice al IDE qué palabras son importantes y deben ser resaltadas. Existen dos tipos diferentes de palabras clave (KEYWORD1 -> Clases, KEYWORD2 -> Funciones) y deben tener un espacio entre ellas. El archivo de palabras clave para esta biblioteca se muestra a continuación. El archivo Léame debe explicar qué hace la biblioteca, su número de revisión y la fecha en que se revisó por última vez, de modo que un usuario sin conocimientos de la biblioteca pueda entender para qué se utiliza y cuándo se editó por última vez.

myFirstLibrary KEYWORD1
on KEYWORD2
off KEYWORD2
flash KEYWORD2

Ejemplos, comprimir e incluir

Ahora que todo lo anterior se ha completado, lo último que hay que hacer es crear algunos ejemplos para que los usuarios tengan un programa de trabajo que explique cómo usar las capacidades de la librería. Una vez que hayas hecho algunos bocetos de ejemplos, crea una carpeta llamada ejemplos dentro de la carpeta myFirstLibrary y colócalos dentro. A continuación, vuelve a la carpeta myFirstLibrary, haz clic con el botón derecho y comprímela en un archivo.zip. Finalmente, abre el IDE de Arduino y navega hasta Sketch>Include Library>Add.ZIP Library. Encuentra tu carpeta comprimida a través de su directorio y listo. A través de File>Examples>myFirstLibrary (puede que tenga que desplazarse hacia abajo) te llevará a los ejemplos que se encuentran en la carpeta myFirstLibrary.

Circuito 1:

Circuito 2:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?