Time On/Time On + Time Off * 100
으로 듀티비를 계산을 할 수 있다.
여기서 나오는 TimeOn과 TimeOff란?
이렇게 PWM주파수가 있다고 한다면 PWM신호가 1이 Time On, 신호가 0은 Time Off에 해당한다.
이 값들을 이용하여 듀티비를 구할 수 있다.
듀티비값에 따른 서보모터 각
3% = 0도
7.5% = 90도
12.5% = 180도
import RPi.GPIO as GPIO
import time
servo_pin = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(servo_pin, GPIO.OUT)
pwm = GPIO.PWM(servo_pin, 50) # 50hz
pwm.start(3.0) # 기본 초기값 0도
for cnt in range(0, 3):
pwm.ChangeDutyCycle(3.0) # Servo 0도
time.sleep(1.0)
pwm.ChangeDutyCycle(7.5) # Servo 90도
time.sleep(1.0)
pwm.ChangeDutyCycle(12.5) # Servo 180도
time.sleep(1.0)
pwm.ChangeDutyCycle(0.0) # Servo 정지
pwm.stop()
GPIO.cleanup()
ChangeDutyCycle(듀티비)
인자 값 안에다 듀티비를 계산하여 값을 넣어주면 된다.