04/12/2018
Arduino se ha convertido en una plataforma fundamental para la creación de proyectos electrónicos, y una de las claves para optimizar el desarrollo y la reutilización de código es la creación de librerías personalizadas. Esta tutorial te enseñará paso a paso cómo crear una librería en Arduino, desde la estructura básica hasta la gestión avanzada de dependencias.

- ¿Qué es una librería de Arduino?
- Estructura básica de una librería de Arduino
- Pasos para crear una librería en Arduino
- Ejemplo práctico: Librería para controlar un sensor
- Gestión avanzada de librerías
- Consultas habituales sobre la creación de librerías en Arduino
- Tabla comparativa: Creación de funciones vs. creación de librerías
¿Qué es una librería de Arduino?
Una librería de Arduino es un conjunto de funciones y clases que encapsulan funcionalidades específicas. Esto permite:
- Reutilización de código: Evita escribir el mismo código repetidamente.
- Organización del código: Mantiene tu código limpio y fácil de entender.
- Modularidad: Divide tu proyecto en módulos independientes y fáciles de gestionar.
- Abstracción: Oculta la complejidad de la implementación, facilitando su uso.
Estructura básica de una librería de Arduino
Una librería de Arduino generalmente se compone de dos archivos principales:
- Archivo .h (Header): Contiene las declaraciones de las funciones y clases que ofrece la librería. Es el archivo que se incluye en el código principal mediante la directiva
#include. - Archivo .cpp (Source): Contiene la implementación de las funciones y clases declaradas en el archivo .h.
Ejemplo de estructura:
| Archivo | Contenido |
|---|---|
MiLibreria.h | #ifndef MiLibreria_h #define MiLibreria_h void funcionEjemplo(); #endif |
MiLibreria.cpp | #include "MiLibreria.h" void funcionEjemplo() { // Implementación de la función } |
Pasos para crear una librería en Arduino
Crear los archivos .h y .cpp:
Crea dos nuevos archivos en tu proyecto de Arduino. Nombra uno con la extensión .h (ej: MiLibreria.h) y el otro con la extensión .cpp (ej: MiLibreria.cpp). Puedes usar cualquier editor de texto o el propio IDE de Arduino.
Declarar las funciones en el archivo .h:
En el archivo .h, declara las funciones que formarán parte de tu librería. Utiliza las directivas de preprocesador #ifndef, #definey #endifpara evitar problemas de inclusión múltiple.
Implementar las funciones en el archivo .cpp:
En el archivo .cpp, implementa el código de cada función declarada en el archivo .h. Incluye el archivo .h al comienzo del archivo .cpp usando #include "MiLibreria.h".
Incluir la librería en tu proyecto:
En tu programa principal de Arduino, incluye la librería usando la directiva #include "MiLibreria.h". Asegúrate de que los archivos .h y .cpp estén en la misma carpeta que tu sketch de Arduino o en una subcarpeta dentro del directorio del proyecto.
Compilar y probar:
Compila y ejecuta tu programa para verificar que la librería funciona correctamente.
Ejemplo práctico: Librería para controlar un sensor
Supongamos que queremos crear una librería para controlar un sensor de temperatura. El archivo SensorTemperatura.hpodría contener:

#ifndef SensorTemperatura_h #define SensorTemperatura_h class SensorTemperatura { public: SensorTemperatura(int pin); float leerTemperatura(); private: int pinSensor; }; #endifY el archivo SensorTemperatura.cpp:
#include "SensorTemperatura.h" #include <OneWire.h> #include <DallasTemperature.h> // ... implementación de la clase SensorTemperatura ...En tu sketch principal:
#include "SensorTemperatura.h" SensorTemperatura sensor(2); void setup() { Serial.begin(9600); } void loop() { float temp = sensor.leerTemperatura(); Serial.println(temp); delay(1000); }Gestión avanzada de librerías
Para proyectos más complejos, considera:
- Uso de namespaces: Para evitar conflictos de nombres con otras librerías.
- Manejo de errores: Implementar mecanismos para gestionar posibles errores.
- Documentación: Documentar tu librería para facilitar su uso por otros desarrolladores. Puedes usar Doxygen para generar documentación automáticamente.
- Pruebas unitarias: Realizar pruebas unitarias para asegurar la calidad del código.
- Librerías externas: Añadir dependencias a tu librería utilizando gestores de dependencias como Arduino Library Manager.
Consultas habituales sobre la creación de librerías en Arduino
¿Cómo agregar una librería existente a mi proyecto?
Puedes agregar librerías existentes a través del Arduino Library Manager. Busca la librería deseada, instálala y luego inclúyela en tu código usando #include <nombreLibreria.h>.
¿Cómo organizar las carpetas de mi librería?
Una buena práctica es organizar las carpetas de tu librería de la siguiente manera:
- Carpeta principal (nombre de la librería)
- Archivo
keywords.txt(opcional, para palabras clave de búsqueda en el Library Manager) - Archivo
library.properties(opcional, para metadatos de la librería) - Archivo
.h(archivo de cabecera) - Archivo
.cpp(archivo de código fuente) - Ejemplos (carpeta con ejemplos de uso de la librería)
¿Cómo publicar mi librería en la comunidad de Arduino?
Para compartir tu librería con la comunidad, puedes subirla a plataformas como GitHub y luego agregarla al Arduino Library Manager. Necesitarás seguir las directrices específicas para la creación y la publicación en esta plataforma.
Tabla comparativa: Creación de funciones vs. creación de librerías
| Característica | Creación de funciones | Creación de librerías |
|---|---|---|
| Reutilización | Limitada | Alta |
| Organización | Puede ser compleja en proyectos grandes | Mejor organización y modularidad |
| Mantenibilidad | Difícil de mantener en proyectos grandes | Fácil mantenimiento |
| Escalabilidad | Dificultad para escalar | Fácil escalabilidad |
| Colaboración | Compleja | Fácil colaboración |
En resumen, crear librerías en Arduino es una práctica fundamental para cualquier desarrollador que busca eficiencia, organización y reutilización de código. Siguiendo estos pasos y consejos, podrás crear tus propias librerías y mejorar significativamente tus proyectos.
Si quieres conocer otros artículos parecidos a Crear tu propia librería en arduino puedes visitar la categoría Libros y Librerías.
