Librerías externas en Arduino
1. Qué es una librería externa? #
Una librería es un conjunto de archivos .h y .cpp que contiene funciones preprogramadas para interactuar con hardware o realizar tareas complejas fácilmente.
Por ejemplo:
Servo.h: para controlar servomotoresDHT.h: para leer sensores de temperatura y humedad DHT11/DHT22LiquidCrystal.h: para pantallas LCDAdafruit_SSD1306.h: para pantallas OLED
2. Cómo instalar una librería? #
Opción 1: Desde el Arduino IDE #
- Ve a: Programa → Incluir librería → Gestionar bibliotecas…
- Escribe el nombre de la librería (ej.
DHT) - Selecciona e instala
Opción 2: Manual (menos recomendada) #
- Descarga la librería en formato
.zipdesde GitHub o una web confiable. - En el IDE: Programa → Incluir librería → Añadir biblioteca .ZIP...
- Selecciona el archivo
.zipdescargado.
3. Ejemplo 1: Control de servomotor con Servo.h #
1#include <Servo.h> // Incluimos la librería 2 3Servo miServo; // Creamos el objeto 4 5void setup() { 6 miServo.attach(9); // Pin conectado al servo 7} 8 9void loop() { 10 miServo.write(0); // Gira a 0° 11 delay(1000); 12 miServo.write(90); // Gira a 90° 13 delay(1000); 14 miServo.write(180); // Gira a 180° 15 delay(1000); 16}
4. Ejemplo 2: Sensor de temperatura y humedad con DHT.h #
Requiere librerías:
DHT sensor library(de Adafruit)Adafruit Unified Sensor(dependencia)
1#include <DHT.h> 2 3#define DHTPIN 2 // Pin digital del sensor 4#define DHTTYPE DHT11 // o DHT22 5 6DHT dht(DHTPIN, DHTTYPE); 7 8void setup() { 9 Serial.begin(9600); 10 dht.begin(); 11} 12 13void loop() { 14 float h = dht.readHumidity(); 15 float t = dht.readTemperature(); 16 17 Serial.print("Humedad: "); 18 Serial.print(h); 19 Serial.print(" %\t"); 20 Serial.print("Temperatura: "); 21 Serial.print(t); 22 Serial.println(" ºC"); 23 24 delay(2000); 25}
5. Ejemplo 3: Pantalla OLED con AdafruitSSD1306 #
Requiere librerías:
Adafruit SSD1306Adafruit GFX
1#include <Adafruit_GFX.h> 2#include <Adafruit_SSD1306.h> 3 4#define ANCHO 128 5#define ALTO 64 6#define RESET -1 7 8Adafruit_SSD1306 pantalla(ANCHO, ALTO, &Wire, RESET); 9 10void setup() { 11 pantalla.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Dirección I2C típica 12 pantalla.clearDisplay(); 13 pantalla.setTextSize(1); 14 pantalla.setTextColor(SSD1306_WHITE); 15 pantalla.setCursor(0, 0); 16 pantalla.println("Hola, mundo!"); 17 pantalla.display(); 18} 19 20void loop() {}
6. Buenas prácticas con librerías #
- Lee los ejemplos: casi todas las librerías tienen ejemplos accesibles desde el IDE.
- Usa
begin(),read(),write()u otras funciones según la documentación. - Siempre verifica la compatibilidad con tu placa.
- Evita duplicar librerías con el mismo nombre.
7. Cuándo usar una librería externa? #
| Caso | Recomendación |
|---|---|
| Sensor común (DHT11, HC-SR04...) | ✅ Usa librería si está bien documentada |
| Pantallas o displays | ✅ Usa librerías (ej. Adafruit, U8g2) |
| Motores, RFID, GPS, etc. | ✅ Usa librería para ahorrar tiempo |
| Operaciones simples (LEDs, botones) | ❌ No es necesario |
8. Proyecto sugerido: Termómetro con OLED #
- Sensor DHT11 + Pantalla OLED
- Lee la temperatura cada 2 segundos
- Muestra texto e íconos con
Adafruit_GFX
Resumen del tema
Conceptos clave #
- Bibliotecas Externas: paquetes modulares de código C++ (
.hy.cpp) que proporcionan clases y funciones para controlar periféricos y sensores avanzados sin implementar protocolos desde cero. - Instalación y Gestión: a través del Administrador de Bibliotecas oficial del IDE de Arduino o mediante archivos
.zip. - Instanciación y Métodos: inclusión con
#include <Nombre.h>, creación de objetos con constructores específicos e inicialización obligatoria en elsetup()mediante métodos como.begin()o.attach(). - Librerías Comunes:
Servo.h(servomotores),DHT.h(temperatura/humedad),LiquidCrystal.h(pantallas LCD) yAdafruit_SSD1306.h(pantallas OLED).
Qué debes recordar #
Las librerías encapsulan la complejidad de los protocolos de hardware, permitiendo interactuar con sensores y pantallas complejas mediante métodos intuitivos de alto nivel.