Lo que vas a aprender
- Qué es un microcontrolador y qué tiene la placa Arduino Uno.
- La estructura de un programa de Arduino.
- Cómo encender un LED y leer un pulsador.
- Las entradas analógicas y el conversor analógico-digital.
- Qué es el PWM y para qué sirve.
- La comunicación serie y los sensores más habituales.
Fundamentos
La placa Arduino Uno
Otras placas habituales: el Arduino Nano (igual pero pequeño), el ESP32 (con wifi y Bluetooth, 3,3 V) y la Raspberry Pi Pico.
Estructura de un programa
Un programa (sketch) se escribe en C++ simplificado y tiene dos funciones obligatorias:Salidas digitales: el LED
Entradas digitales: el pulsador
Una entrada al aire lee valores aleatorios: hay que fijar su nivel con una resistencia. Arduino tiene resistencias de pull-up internas:Entradas analógicas
analogRead(A0) convierte una tensión de 0 a 5 V en un número de 0 a 1023 (10 bits). Cada paso son mV. Así se leen potenciómetros, LDR, termistores o sensores de temperatura como el TMP36. La teoría está en muestreo y conversión ADC.
PWM
Arduino no tiene salidas analógicas reales: las patillas marcadas con ~ generan modulación por ancho de pulsos, una onda cuadrada de unos 490 Hz cuyo ciclo de trabajo se fija conanalogWrite(pin, valor), de 0 (siempre apagado) a 255 (siempre encendido). La tensión media es . Sirve para regular el brillo de un LED o la velocidad de un motor.
Comunicación serie
Sensores y actuadores habituales
Ejemplos resueltos
Ejemplo 1 · Regular el brillo con un potenciómetro
Ejemplo 1 · Regular el brillo con un potenciómetro
map(pot, 0, 1023, 0, 255).Ejemplo 2 · Termómetro con TMP36
Ejemplo 2 · Termómetro con TMP36
El TMP36 da 0,5 V a 0 °C y sube 10 mV por grado: .Con una lectura de 153, V y °C. La resolución es de unos 0,5 °C.
Ejemplo 3 · Parpadeo sin bloquear el programa
Ejemplo 3 · Parpadeo sin bloquear el programa
delay() detiene todo el programa. Para hacer varias cosas a la vez se usa millis(), que da los milisegundos desde el arranque:Ejemplo 4 · Distancia con ultrasonidos
Ejemplo 4 · Distancia con ultrasonidos
El HC-SR04 da un pulso cuya duración es el tiempo de ida y vuelta del sonido (343 m/s):Un eco de 1166 µs corresponde a 20 cm.
Errores frecuentes
- Conectar un LED sin resistencia o un motor directamente a una patilla: se quema la patilla o el microcontrolador.
- Dejar entradas al aire sin pull-up ni pull-down: leen valores aleatorios.
- Mezclar placas de 5 V y 3,3 V sin adaptar niveles: un ESP32 se puede dañar con 5 V en una entrada.
- Usar
delay()largos cuando el programa tiene que atender varias cosas a la vez. - Olvidar unir las masas de la placa y de una fuente externa.
Preguntas frecuentes
¿Arduino o Raspberry Pi?
¿Arduino o Raspberry Pi?
Arduino es un microcontrolador: arranca al instante, controla hardware con precisión de microsegundos y consume muy poco, pero tiene poca memoria. La Raspberry Pi es un ordenador completo con Linux: sirve para tareas con red, cámara, interfaz gráfica o mucho cálculo, pero no es tan buena para el control en tiempo real. Muchos proyectos combinan las dos.
¿Se puede programar en Python?
¿Se puede programar en Python?
En Arduino Uno, no (tiene muy poca memoria). En placas más potentes como la Raspberry Pi Pico o el ESP32 se puede usar MicroPython, una versión reducida de Python.
Temas relacionados
Divisor de tensión
Conectar sensores resistivos.
Código de colores
Identificar las resistencias.
Controlador PID
Un PID programado en un microcontrolador.