from machine import Pin, PWM, ADC # Import Pin, PWM, and ADC for analog input
from utime import sleep_ms
# Servo on pin 21
servo1 = PWM(Pin(21), freq=50)
# Potentiometer on pin 34 (ADC pin on ESP32)
pot = ADC(Pin(34))
pot.atten(ADC.ATTN_11DB) # Allow full range (0–3.3V)
pot.width(10) # 10-bit resolution (0–1023)
while True:
val = pot.read() # Read potentiometer (0–1023)
# Map potentiometer value to servo duty range (40–110)
pos = int((val / 1023) * (130 - 20) + 20)
servo1.duty(pos) # Move servo to position
sleep_ms(20) # Small delay for smooth motion