from machine import Pin, PWM
import time
angle_duty_map = {
0: 1638,
40: 3500,
}
servo1 = PWM(Pin(15))
servo1.freq(50)
boton0 = Pin(17, Pin.IN, Pin.PULL_DOWN)
boton40 = Pin(16, 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 * 50) # 50 steps per second
for _ in range(int(duration * 50)):
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 boton40.value() == 1:
move_servo_slowly(40)