PWM으로 서보모터를 쉽게 제어해보자!

띵킹하는 개발자·2023년 9월 18일
0

임베디드

목록 보기
3/3

목차

  • 듀티비 구하는 공식(이를 이용하여 각도 조절)
  • 연결 회로도
  • 서보모터 제어 코드(with python)

듀티비 공식

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도

연결 회로도

서보모터 제어 코드(with python)


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(듀티비)인자 값 안에다 듀티비를 계산하여 값을 넣어주면 된다.

profile
모든것은 띵킹으로 이루어지는 것

0개의 댓글