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.

Par de Propela 8045 CW CCW
Juego de Engranes 75 Tipos
Kit de 250 Capacitores Cerámicos
Fuente de alimentación para protoboard v2 MB-102 3.3V 5V




































Valoraciones
No hay valoraciones aún.