CONTENIDO ►
El servomotor Arduino es un elemento importante en el diseño de diversos robots y mecanismos. Se trata de un actuador preciso, que dispone de retroalimentación para controlar con precisión los movimientos de los mecanismos. Consideremos la estructura y el principio de funcionamiento del actuador de 3 puntos. Analicemos ejemplos sencillos de código para controlar un servo 9g SG90 mediante un potenciómetro y un botón pulsador.
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
- servomotor 9g SG90
- potenciómetro
- botón pulsador
- placa de pruebas
- cables de conexion
Principio de funcionamiento servo pinout, datasheet

Características micro servo 9g SG90:
- Voltaje de funcionamiento: 3,0-7,2V
- Velocidad (4.8V sin carga): 0.12sec/60 degrees
- Fuerza: 1.2kg / 42.3oz(4.8V);1.6 kg / 56.4oz (6.0V)
- Temperatura de trabajo: -30 to +60 grados ºC
- Dimensiones: 22×11.5x27mm
Los servomotores Arduino se utilizan ampliamente para simular los movimientos mecánicos de los robots. Un servomotor se compone de un sensor (de velocidad, posición, etc.), una unidad de control de accionamiento de un sistema mecánico y circuitos electrónicos. Los engranajes del aparato son de metal, carbono o plástico. Tenga mucho cuidado al trabajar. Los engranajes de plástico del servomotor no pueden soportar grandes cargas y golpes.
El servomotor 9g SG90 para microcontrolador Arduino lleva incorporado un potenciómetro que se conecta al eje de salida. Al girar el eje, el servomotor modifica el valor de la tensión en el potenciómetro. El microcontrolador analiza la tensión de la señal de entrada y la compara con la tensión del potenciómetro. En función de la diferencia obtenida, el motor girará suavemente hasta que la tensión de salida y la del potenciómetro sean iguales.
Cómo conectar un servomotor a Arduino

La conexión del servo al Arduino suele hacerse de la siguiente manera: conecta el cable negro a GND, conecta el cable rojo a 5V, el cable naranja (amarillo) al pin digital de propósito general. El control de los servomotores en el microcontrolador Arduino (cómo controlar un servomotor) es bastante sencillo, pero los servomotores tienen ángulos de rotación de 180° y 360°, lo que debe tenerse en cuenta al diseñar proyectos con servomotores.
Cómo manejar un servo con la librería servo.h
#include "Servo.h" Servo servo; // creación del objeto "servo" void setup() { servo.attach(10); // iniciamos el servo con el pin 10 } void loop() { servo.write(0); // desplazamos a la posición 0º delay(1000); // esperamos 1000 ms servo.write(90); // desplazamos a la posición 90º delay(1000); // esperamos 1000 ms servo.write(180); // desplazamos a la posición 180º delay(1000); // esperamos 1000 ms }
Explicación del código para manejar un servomotor Arduino:
- el comando servo.attach(10) vincula el servo a la salida digital 10 del Arduino;
- en la función void loop() giramos el servomotor de 0-90-180 grados.

Al recibir el valor de la señal de control del Arduino como entrada, el servomotor tiende a mantener este valor a la salida de su actuador. Vamos a dar un ejemplo más complejo de control de un servomotor con un potenciómetro en el Arduino. Construye un circuito con un potenciómetro y carga el programa en el Arduino para controlar el servo motor.
Controlar un servomotor con un potenciómetro
#include "Servo.h" Servo servo; // creación del objeto "servo" void setup() { servo.attach(10); // iniciamos el servo con el pin 10 pinMode(A1, INPUT); Serial.begin(9600); // iniciamos el puerto serie } void loop() { int val = analogRead(A1); // lee el valor actual del potenciómetro val = map(val, 0, 1023, 0, 180); Serial.println(val); Serial.println(); servo.write(val); delay(100); }
Explicación del código para controlar servo con potenciómetro:
- el nombre del objeto servo para cada actuador debe ser único;
- el comando Serial.println(val) envía la información del potenciómetro al puerto serie.

En el último programa veremos cómo controlar un servomotor de Arduino Uno con un botón pulsador. También utilizaremos la biblioteca estándar Servo.h. Conecta el servo a la placa Arduino como se muestra en la imagen anterior y carga el código terminado en el microcontrolador. En el void loop() simplemente pondremos el servo (servo giro de 0 a 180º) en el ángulo de rotación deseado cuando se pulse o suelte el botón pulsador.
Cómo manejar un servomotor con un pulsador
#include "Servo.h" Servo servo; // creación del objeto "servo" void setup() { servo.attach(10); // iniciamos el servo con el pin 10 pinMode(A1, INPUT); Serial.begin(9600); // iniciamos el puerto serie } void loop() { int val = analogRead(A1); // lee el valor actual del botón if (val < 512) { servo.write(0); } if (val > 512) { servo.write(90); } }
Explicación del código conexion servo Arduino y controlar con pulsador:
- los valores de la variable val pueden variar (en función de la resistencia del circuito) y pueden tomar valores entre 0 y 1023.
Conclusión. Los servomotores se utilizan a menudo en varios proyectos de Arduino para diversas funciones: girar estructuras, mover partes de mecanismos. Dado que el servomotor de Arduino microcontrolador está constantemente tratando de mantener un ángulo de rotación determinado, prepárate para un mayor consumo de energía. Esto se notará especialmente en los robots autónomos alimentados por baterías o pilas recargables.

¿Se podría conectar un servomotor que se mueva al detectar movimiento con un sensor?
Soy nuevo en el mundo Arduino, ¿me pueden recomendar por dónde empezar?
Operadores lógicos if … else en Arduino – https://arduino-spain.site/if-else-arduino/