Curso C para Arduino
📚 ¿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
🧰 ¿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.
🧪 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}
🧪 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}
🧪 Ejemplo 3: Pantalla OLED con Adafruit_SSD1306
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() {}
✅ 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.
🧠 ¿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 |
🧪 Proyecto sugerido: Termómetro con OLED
- Sensor DHT11 + Pantalla OLED
- Lee la temperatura cada 2 segundos
- Muestra texto e íconos con
Adafruit_GFX