Control de un Servomotor con Arduino en 3 posiciones

El control de un servomotor es uno de los proyectos de electrónica más gratificantes para los entusiastas de Arduino. Un servomotor, a diferencia de un motor de corriente continua simple, nos permite posicionar su eje en un ángulo específico dentro de un rango determinado (típicamente de 0 a 180 grados) y mantener esa posición con precisión.



🔩Funcionamiento

En este artículo, desglosaremos la teoría, la conexión y la programación necesaria para lograr que un servomotor se mueva cíclicamente a tres posiciones clave: 0°, 90° y 180°, con una pausa de 2 segundos en cada una, creando un bucle infinito de movimiento.

En este proyecto, utilizaremos una placa Arduino para controlar un servomotor. El objetivo es programar el Arduino para que mueva el servomotor a tres posiciones diferentes: 0 grados, 90 grados y 180 grados, alternando entre estas posiciones cada 2 segundos.


🔨Componentes

ComponenteCantidadEspecificaciónFunción
Placa Arduino1Arduino Uno, Nano, etcControl de componentes(cerebro)
Servomotor 1SG90 o similarRotar los grados indicados
Cables de conexiónNUnir los componentes
Fuente de Alimentación15V DCSuministro de energía


🔌Conexiones

  • Conecta el pin de alimentación (VCC) del servomotor al positivo de la fuente(5v).
  • Conecta el pin de tierra (GND) del servomotor al negativo de la fuente(5v).
  • Conecta el pin de señal del servomotor al pin digital 2 del Arduino.
  • Conecta negativo de la fuente a (GND) del Arduino (unir GND)
  • Conectar el puerto del arduino a la PC para cargar el programa

Nota importante sobre la alimentación:

Para servos pequeños como el SG90, puedes alimentarlo directamente desde los 5V del Arduino. Sin embargo, para servos más potentes o cuando uses varios, es fundamental alimentar los servos con una fuente externa de 5V y solo conectar las tierras (GND) de la fuente y del Arduino, además del cable de señal, para asegurar una referencia de tierra común.


0️⃣Código

El control del servomotor se simplifica enormemente gracias a la librería estándar Servo.h de Arduino, la cual encapsula la complejidad de generar la señal de modulación por ancho de pulso (PWM) necesaria.

Nuestro objetivo es simple: Escribir la posición (0, 90, 180) y pausar 2000 milisegundos (2 segundos) antes de pasar a la siguiente.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <Servo.h>

Servo myServo;  // Crear un objeto Servo

void setup() {
  myServo.attach(9);  // Asignar el pin 9 al servomotor
}

void loop() {
  myServo.write(0);   // Mover a 0 grados
  delay(2000);        // Esperar 2 segundos

  myServo.write(90);  // Mover a 90 grados
  delay(2000);        // Esperar 2 segundos

  myServo.write(180); // Mover a 180 grados
  delay(2000);        // Esperar 2 segundos
}


🖌️Diseños


🎬Videos


📑Conclusión

Este proyecto de control de servomotor con Arduino, aunque conceptualmente simple, es una piedra angular en el aprendizaje de la electrónica y la robótica. Hemos demostrado la capacidad de la plataforma Arduino para interactuar con componentes electromecánicos y realizar tareas de automatización con precisión.

La clave del éxito reside en la potente abstracción que proporciona la librería Servo.h, la cual nos libera de la compleja tarea de generar la señal PWM exacta, permitiéndonos enfocarnos únicamente en los ángulos deseados (0°, 90° y 180°). Al combinar la función miServo.write(ángulo) con pausas controladas mediante delay(2000), hemos creado un ciclo de movimiento repetitivo y predecible.

Este ejercicio no es solo un motor girando; es la base para futuros y más complejos proyectos. Las habilidades adquiridas aquí —la comprensión del cableado de un servo, el uso de librerías, y la implementación de lógica secuencial en el loop()— son directamente aplicables al desarrollo de brazos robóticos, mecanismos de barrera, sistemas de posicionamiento de cámaras y cualquier aplicación que requiera un control angular exacto y temporizado.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito de compra