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 servomotores
  • DHT.h: para leer sensores de temperatura y humedad DHT11/DHT22
  • LiquidCrystal.h: para pantallas LCD
  • Adafruit_SSD1306.h: para pantallas OLED

🧰 ¿Cómo instalar una librería?

🔹 Opción 1: Desde el Arduino IDE

  1. Ve a: Programa → Incluir librería → Gestionar bibliotecas…
  2. Escribe el nombre de la librería (ej. DHT)
  3. Selecciona e instala

🔹 Opción 2: Manual (menos recomendada)

  1. Descarga la librería en formato .zip desde GitHub o una web confiable.
  2. En el IDE: Programa → Incluir librería → Añadir biblioteca .ZIP...
  3. Selecciona el archivo .zip descargado.

🧪 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 SSD1306
  • Adafruit 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?

CasoRecomendació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