from machine import Pin, PWM, ADC
import utime

# Configuração do potenciômetro e do servo motor
potenciometro_pin = 26  # Pino do potenciômetro (GP26)
servo_motor_pin = 17  # Pino do servo motor (GP17)

# Configuração do PWM
canal_pwm = PWM(Pin(servo_motor_pin))
canal_pwm.freq(50)  # Frequência típica para servo motores é 50Hz

while True:
    # Leitura do valor do potenciômetro
    valor_potenciometro = ADC(Pin(potenciometro_pin)).read_u16()

    # Mapeia o valor do potenciômetro (0-65535) para o intervalo de rotação do servo motor (0-180 graus)
    angulo_servo = int((valor_potenciometro / 65535) * 180)

    # Converte o ângulo para a largura do pulso em microssegundos (ajuste conforme necessário)
    largura_pulso_us = 500 + (angulo_servo * 2000 // 180)

    # Define a largura do pulso do PWM com base no ângulo calculado
    canal_pwm.duty_ns(largura_pulso_us * 1000)

    # Aguarda um curto período para evitar leituras rápidas do potenciômetro
    utime.sleep_ms(20)