Servomotor con Arduino: Control con Potenciómetro
Aprende a mover un servo con precisión girando un simple potenciómetro
Volvemos al Arduino "de toda la vida" después de unas semanas centradas en Raspberry Pi, ESP32 e impresión 3D. Si ya conectaste un sensor de ultrasonidos, hoy toca dar el salto a los actuadores: vamos a controlar un servomotor, un motor especial capaz de girar a un ángulo exacto (normalmente entre 0° y 180°) y mantenerse fijo en esa posición. Lo controlaremos girando un potenciómetro, así que el propio circuito se convierte en un pequeño mando físico.
⚙️ ¿Qué es un servomotor y en qué se diferencia de un motor normal?
Un motor de corriente continua normal solo gira sin control de posición: sabes que gira, pero no en qué ángulo exacto se encuentra en cada momento. Un servomotor, en cambio, incorpora internamente un pequeño circuito de control y un potenciómetro propio que le permite "saber" en qué posición está y moverse exactamente al ángulo que le pidas, manteniéndose ahí de forma estable. Por eso son tan habituales en brazos robóticos, cámaras orientables o pequeños mecanismos de apertura.
Materiales necesarios
- Placa Arduino (Uno, Nano o similar).
- Servomotor de 9g (SG90) o similar, el más común y económico.
- Potenciómetro de 10kΩ.
- Cables de conexión (jumpers).
- Protoboard.
Paso 1: Conexión del circuito
- Servomotor cable rojo → Arduino 5V
- Servomotor cable marrón/negro → Arduino GND
- Servomotor cable naranja/amarillo (señal) → Arduino Pin 9
- Potenciómetro pata izquierda → Arduino 5V
- Potenciómetro pata derecha → Arduino GND
- Potenciómetro pata central (cursor) → Arduino A0
⚠️ Cuidado con la alimentación si usas varios servos
Un único servo pequeño (SG90) puede alimentarse sin problema directamente desde el pin 5V del Arduino. Pero si en el futuro conectas varios servos a la vez, necesitarás una fuente de alimentación externa: el Arduino no tiene corriente suficiente para mover varios motores simultáneamente sin resetearse o comportarse de forma errática.
Paso 2: La librería Servo.h
Arduino incluye de serie la librería Servo.h, así que no necesitas instalar nada adicional. Esta librería se encarga de generar automáticamente la señal PWM concreta que cada servomotor necesita para posicionarse en un ángulo exacto, algo que sería bastante más complicado de programar a mano.
Paso 3: La lógica del programa
El programa es sencillo en su planteamiento: lee continuamente el valor analógico del potenciómetro (un número entre 0 y 1023), lo convierte (mapea) a un ángulo entre 0 y 180 grados, y le indica ese ángulo al servomotor con la función write() de la librería Servo. El resultado es que, al girar el potenciómetro con la mano, el servomotor te sigue en tiempo real: es la forma más visual e intuitiva de entender cómo funciona el control PWM.
Ideas para ampliar este proyecto
- Sustituir el potenciómetro por el sensor de ultrasonidos ya conocido, para que el servomotor apunte automáticamente hacia el objeto más cercano.
- Añadir una segunda articulación con otro servomotor, para empezar a construir un pequeño brazo robótico de dos ejes.
- Controlar el servomotor desde el móvil, combinándolo con lo aprendido en las entradas de ESP32 y Wi-Fi.
🛒 Materiales para este proyecto
| COMPONENTE | DESCRIPCIÓN | ENLACE |
|---|---|---|
| Arduino UNO R3 | Placa base para este proyecto. | VER EN AMAZON |
| Kit de iniciación (incluye servo, potenciómetro y protoboard) | Trae el servomotor, el potenciómetro, cables y protoboard que necesitas para este montaje. | VER EN AMAZON |
Conclusión
Controlar un servomotor es uno de esos proyectos que, aunque sencillos, abren muchísimas puertas: robótica, cámaras orientables, mecanismos automáticos... Una vez entiendas bien esta base, combinarlo con sensores o con conexión Wi-Fi es solo cuestión de juntar piezas que ya conoces de entradas anteriores.
¿Qué proyecto harías tú con un servomotor?
Cuéntanos en los comentarios tu idea, puede que la desarrollemos juntos en una próxima entrada.
Comentarios
Publicar un comentario