from machine import Pin, PWM
from time import sleep
# 서보모터 설정 (핀 번호는 필요에 따라 바꿔요)
servo = PWM(Pin(16))
servo.freq(50) # 50Hz 고정
# 0°와 180°에 대응하는 듀티 값
min_duty = 1638 # 0° 위치
max_duty = 7864 # 180° 위치
# 원하는 각도(angle, 0~180)를 넣으면 서보가 그 각도로 움직여요
def set_angle(angle):
# 0~180 사이 값만 사용
if angle < 0: angle = 0
if angle > 180: angle = 180
# 각도에 비례해서 듀티를 계산
duty = int(min_duty + (max_duty - min_duty) * angle / 180)
servo.duty_u16(duty)
# 0°, 90°, 180°를 1초 간격으로 반복
while True:
set_angle(0)
sleep(1)
set_angle(90)
sleep(1)
set_angle(180)
sleep(1)