from machine import Pin, PWM
import time
angle_duty_map = {
0: 1638,
60: 3100,
}
servo1 = PWM(Pin(15))
servo1.freq(50)
boton0 = Pin(19, machine.Pin.IN, Pin.PULL_DOWN)
boton60 = Pin(18, machine.Pin.IN, Pin.PULL_DOWN)
def move_servo_slowly(target_angle, duration=1):
current_angle = servo1.duty_u16()
target_duty = angle_duty_map.get(target_angle, current_angle)
step = (target_duty - current_angle) / (duration * 200) # 200 steps per second
for _ in range(int(duration * 200)):
current_angle += step
servo1.duty_u16(int(current_angle))
time.sleep(0.02) # Sleep for 20 ms (50 Hz)
while True:
if boton0.value() == 1:
move_servo_slowly(0)
if boton60.value() == 1:
move_servo_slowly(60)