INFORMACIÓN
El Servomotor SG90 RC 9g es un motor que permite el control preciso de la posición angular de 0° hasta 180° mediante una señal PWM. Incluye 3 brazos y 3 tornillos, cuenta con un cable de hasta 25cm.
Son utilizados en gran variedad de proyectos de electrónica, robótica, carros de control remoto, aeronaves y más. Funcionan con la mayoría de tarjetas electrónicas de control con microcontroladores, como por ejemplo las tarjetas de Arduino, Nodemcu, Esp32, Pic´s y Raspberry Pi y otras.
ESPECIFICACIONES Y CARACTERÍSTICAS
- Modelo: SG90
- Color: Azul
- Tamaño: 22.8mm x 12.3mm x 22.5mm
- Peso: 13 g
- Grados / Angulo de Rotación Máximo: 0° a 180°
- Engranajes: Nylon
- Temperatura de trabajo:-30 a +60 °C
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
Aplicaciones
- Se utiliza actuador de muchos robots como Biped Robot, Hexapod, brazo robótico, etc.
- De uso común para el sistema de dirección en juguetes RC
- Robots donde se requiere control de posición sin retroalimentación
- Por lo tanto, se usa menos peso en robots con múltiples DOF como robots humanoides
Servomotor SG90 utilizando la tarjeta UNIT DUAL MCU
A continuación te mostramos un diagrama y su respectivo código en MicroPython utilizando Thonny y el RP2040 en la nueva UNIT DUAL MCU para controlar un servomotor SG90 con dos botones:

Código
#Este código también funciona en el ESP32 mismo que se incluye en el UNIT DUAL MCU o por separado, solo recuerda cargar el bootloader de MicroPython y revisar los pines
import machine
import utime
# Configuración de los botones
boton1 = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP)
boton2 = machine.Pin(3, machine.Pin.IN, machine.Pin.PULL_UP)
# Configuración de los LEDs (opcional)
led1 = machine.Pin(21, machine.Pin.OUT)
led2 = machine.Pin(15, machine.Pin.OUT)
# Configuración del pin de control del servomotor
servo_pin = machine.Pin(0)
# Crea un objeto PWM para controlar el servomotor
pwm_servo = machine.PWM(servo_pin)
# Frecuencia del PWM para el servomotor (50 Hz)
pwm_servo.freq(50)
# Función para ajustar el ángulo del servomotor
def set_servo_angle(angle):
duty_cycle = int(1024 + (angle / 180) * 3072)
pwm_servo.duty_u16(duty_cycle)
try:
valor = 90 # Ángulo inicial en 90 grados
while True:
# Si el botón 1 está presionado, mueve el servomotor en una dirección (aumenta el ángulo)
if boton1.value() == 0: # Si el botón 1 está presionado
if valor < 390:
valor += 10
set_servo_angle(valor)
print(f"Ángulo del servo: {valor} grados") # Solo para depuración
led1.on() # Enciende el LED1 cuando el botón 1 está presionado
led2.off() # Apaga el LED2
# Si el botón 2 está presionado, mueve el servomotor en la dirección opuesta (disminuye el ángulo)
elif boton2.value() == 0: # Si el botón 2 está presionado
if valor > 0:
valor -= 10
set_servo_angle(valor)
print(f"Ángulo del servo: {valor} grados")
led2.on() # Enciende el LED2 cuando el botón 2 está presionado
led1.off() # Apaga el LED1
else:
led1.off() # Apaga LED1 cuando no se presiona el botón 1
led2.off() # Apaga LED2 cuando no se presiona el botón 2
utime.sleep(0.02) # Pausa corta para evitar lecturas innecesarias
except KeyboardInterrupt:
# Detén el PWM y limpia los recursos al interrumpir el programa con Ctrl+C
pwm_servo.deinit()
print("\nPWM detenido. Recursos liberados.")
*Nota: El servomotor incorpora un controlador que sólo permite tener una rotación 0° hasta 180° si se manda el ancho de pulso PWM desde el microcontrolador. Si estás utilizando el probador de servos este estará limitado de 0° a 90°. Este servo no incorpora tope para definir en los engranes mecánicamente la rotación de 0° hasta 180° por lo que si gira de forma manual el servo tendrá una rotación continua sin tener tope.

Kit Roboracer STEAM
Doble Puente H MX1508
Par de Hélices con Motor CC sin Núcleo 3.7-4.2V DC
UNIT Pulsar ESP32-C6






































Valoraciones
No hay valoraciones aún.