from machine import Pin, PWM
from time import sleep
# Configura i pin PWM per 8 servo
servo_pins = [0, 1] # Pin GPIO collegati ai servo
servos = [PWM(Pin(pin)) for pin in servo_pins]
# Imposta la frequenza del PWM a 50Hz per tutti i servo
for servo in servos:
servo.freq(50)
# Funzione per impostare l'angolo del servo (0-180 gradi)
def set_servo_angle(servo, angle):
min_duty = 1000 # Impulso minimo (1 ms)
max_duty = 9000 # Impulso massimo (2 ms)
# Converti l'angolo in duty cycle
duty = int(min_duty + (angle / 180) * (max_duty - min_duty))
servo.duty_u16(duty)
# Esempio di movimento dei servo
try:
while True:
for angle in range(0, 181, 10): # Ruota da 0 a 180 gradi
for servo in servos:
set_servo_angle(servo, angle)
sleep(0.1)
for angle in range(180, -1, -10): # Ruota da 180 a 0 gradi
for servo in servos:
set_servo_angle(servo, angle)
sleep(0.1)
except KeyboardInterrupt:
# Resetta i servo quando il programma viene interrotto
for servo in servos:
servo.duty_u16(0)