from machine import Pin, ADC, PWM
import time
# Setup potentiometer
potentiometer = ADC(Pin(26))
# Setup servo motors
servos = [
PWM(Pin(15)),
PWM(Pin(14)),
PWM(Pin(13)),
PWM(Pin(12))
]
# Set frequency for all servos
for servo in servos:
servo.freq(50)
def set_servo_angle(servo, angle):
# Duty cycle range might need adjustment depending on the servo
min_duty = 1000 # Min duty cycle (adjust if needed)
max_duty = 9000 # Max duty cycle (adjust if needed)
duty = int(min_duty + (angle / 180.0) * (max_duty - min_duty))
servo.duty_u16(duty)
while True:
# Read potentiometer value (0-65535)
pot_value = potentiometer.read_u16()
# Map potentiometer value to servo angle (0-180)
angle = (pot_value / 65535.0) * 180.0
# Set angle for all servos
for servo in servos:
set_servo_angle(servo, angle)
# Small delay
time.sleep(0.1)