En esta sección vamos a aprender a controlar un servomotor usando una placa UNO. Vas a ver cómo realizar las conexiones necesarias y cómo cargar el código para que el motor se mueva a ángulos específicos de forma automática.
Descripción general
Un servo es un tipo de motor con engranajes que solo puede rotar 180 grados. Se controla enviando pulsos eléctricos desde tu placa UNO; estos pulsos le indican al servo a qué posición debe moverse. El servo tiene tres cables: el marrón es el de tierra (GND), el rojo es el de alimentación (debe conectarse al puerto de 3.3V o 5V) y el naranja es el de señal (va conectado a un puerto GPIO).
Componentes requeridos
- (1) x Elegoo Uno R3
- (1) x Servo (SG90)
- (3) x Cables puente M-M (Macho a Macho)
Introducción del componente: SG90
Este servo es universal para conectores JR y FP. Cuenta con un cable de 25 cm y opera a una velocidad de 0.12 seg / 60 grados (a 4.8V). Tiene un torque de bloqueo de 1.6kg/cm y funciona en un rango de temperatura de -30 a 60°C. Su voltaje de trabajo ideal es de 3.5 a 6V y es extremadamente ligero, pesando apenas unos 134 g con sus accesorios.
Esquema de conexión y Diagrama de cableado
Es fundamental seguir el orden de los cables para no dañar el componente. Conectá el cable de señal al pin digital 9 de tu placa UNO para que el código pueda enviar las instrucciones de posición correctamente.
Código
Podés hacer clic en el enlace para descargar el archivo del programa a tu dispositivo. Antes de abrirlo, asegururate de tener instalado el Arduino IDE y los drivers correspondientes a la placa UNO. Si tenés dudas sobre este proceso, fijate en el capítulo "Parte 1" del documento para una guía detallada.
📥 DESCARGAR servo.ino
Antes de ejecutar el programa, chequeá si tenés instalada la librería Servo en tu IDE. Si no está instalada, el código no va a funcionar.
Configuración de Librería y Objetos
Usamos #include <Servo.h> para importar las funciones necesarias. Al declarar Servo myservo;, estamos creando un objeto que representa a nuestro motor, lo que nos permite usar comandos simples para controlar su movimiento.
Conceptos de Programación Orientada a Objetos (OOP)
En este código, "Servo" funciona como una clase que encapsula toda la lógica de control. "myservo" es una instancia u objeto de esa clase, lo que te permite acceder a funciones específicas como attach() para asignar el pin y write() para definir el ángulo.
Función setup()
Esta función inicializa el sistema. Con myservo.attach(9) conectamos el objeto al pin físico 9. Luego, usamos myservo.write(90) para que el servo arranque siempre en la posición central (90°), evitando movimientos inesperados al encender la placa.
Función loop()
Es el bucle principal que controla la secuencia de movimiento. El programa le ordena al servo moverse al centro (90°), esperar un segundo, girar a la izquierda (60°), volver al centro y finalmente girar a la derecha (150°). Esta secuencia se repite indefinidamente mientras la placa tenga energía.
Patrón de movimiento del Servo
La secuencia sigue un orden lógico de ángulos (90° -> 60° -> 90° -> 150°) con pausas de 1000 milisegundos entre cada movimiento para permitir que el motor alcance la posición deseada con total precisión.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.