from machine import Pin, ADC, PWM
import time
x = ADC(Pin(26))
y = ADC(Pin(27))
button = Pin(15, Pin.IN, Pin.PULL_UP)
servo_x = PWM(Pin(14))
servo_y = PWM(Pin(13))
servo_x.freq(50)
servo_y.freq(50)
def map_value(val, in_min, in_max, out_min, out_max):
return int(
(val - in_min) * (out_max - out_min)
/ (in_max - in_min)
+ out_min
)
while True:
x_val = x.read_u16()
y_val = y.read_u16()
angle_x = map_value(x_val, 0, 65535, 0, 180)
angle_y = map_value(y_val, 0, 65535, 0, 180)
duty_x = map_value(angle_x, 0, 180, 2000, 8000)
duty_y = map_value(angle_y, 0, 180, 2000, 8000)
servo_x.duty_u16(duty_x)
servo_y.duty_u16(duty_y)
print(
f"X: {x_val} | Ángulo servo X: {angle_x} | Duty X: {duty_x} | "
f"Y: {y_val} | Ángulo servo Y: {angle_y} | Duty Y: {duty_y}"
)
if button.value() == 0:
print("Botón presionado")
time.sleep(0.1)