from machine import Pin, PWM
import time
# Imposta il pin del servomotore
pin_servo = Pin(15)
servo = PWM(pin_servo)
servo.freq(50) # Frequenza standard per servomotori
def imposta_angolo_servo(angolo):
# Converte l'angolo in duty cycle (personalizzato per il tuo servo)
duty = int(2000 + (8000 - 2000) * angolo / 180)
servo.duty_u16(duty)
def muovi_a_angolo_da_zero(angolo_target):
# Sempre parte dall'angolo 0
print("Muovo a 0 gradi...")
imposta_angolo_servo(0)
time.sleep(1) # Pausa per visualizzare il reset a 0
# Movimento incrementale verso l'angolo target
for angolo in range(0, angolo_target + 1, 5):
imposta_angolo_servo(angolo)
time.sleep(0.2)
imposta_angolo_servo(angolo_target)
# Loop principale
while True:
angolo_target = int(input("Inserisci l'angolo del servo (0-180): "))
if 0 <= angolo_target <= 180:
muovi_a_angolo_da_zero(angolo_target)
else:
print("Inserisci un angolo valido tra 0 e 180.")