기록

Servo모터 제어하기 본문

라즈베리파이

Servo모터 제어하기

youngyin 2020. 10. 23. 22:08

서보모터(SG-90)

서보모터는 모터와 기어박스 그리고 제어회로로 구성되어있어, 특정 위치로 이동하거나, 특정한 수치(속도 등)만큼 가동시킬 때, 모터로 부터의 피드백을 통해 정확하게 제어할 수 있는 구조를 갖추고 있는 모터로 자동화 생산 시스템, 로봇, 장난감, 가전제품 등 광범위하게 쓰이고 있습니다.

서보모터에는 3개의 단자가 있습니다. 일반적으로 3개의 케이블은 검은색(또는 갈색), 붉은색, 황색(또는 주황색, 흰색)으로 표시되어 있으며, 붉은색 선은 +전원, 검은색 선은 -전원에 연결되어 서보모터에 전기를 공급하는 역할을 하며, 노란색 선은 서보모터의 동작을 제어하는 신호선입니다.

 

서보모터-제어하기

서보모터란? 서보(Servo)의 어원은 라틴어의 Servue로서 노예라는 의미를 가지고 있으며, 목표치에 대한 위치, 방위, 자세 등의 제어가 자동화되어 있는 장치 이름에 붙여지곤 합니다. 이와 같이 서�

kocoafab.cc

듀티비(Duty Cycle)

듀티 사이클은 기계 제어 방법 중 하나로, On 신호가 지속되는 특정기간의 백분율이다. 

각도 듀티비
0 2.5
90 7.5
180 12.5

 

브레드 보드 연결

라즈베리 파이 SG-90 서보모터
VCC(5V) 빨간색
GPIO 18 오렌지색
GND 갈색

코드

#-*-coding:utf-8-*-

# 필요한 라이브러리를 불러옵니다. 
import RPi.GPIO as GPIO
import time

#서보모터를 PWM으로 제어할 핀 번호 설정 
SERVO_PIN = 18

# 불필요한 warning 제거
GPIO.setwarnings(False)

# GPIO핀의 번호 모드 설정
GPIO.setmode(GPIO.BCM)

# 서보핀의 출력 설정 
GPIO.setup(SERVO_PIN, GPIO.OUT)

# PWM 인스턴스 servo 생성, 주파수 50으로 설정 
servo = GPIO.PWM(SERVO_PIN,50)
# PWM 듀티비 0 으로 시작 
servo.start(0)

try:
    while True:
        # 듀티비를 변경하여 서보모터를 원하는 만큼 움직임  
        servo.ChangeDutyCycle(7.5)  # 90도 
        time.sleep(1)
        servo.ChangeDutyCycle(12.5) # 180도 
        time.sleep(1)
        servo.ChangeDutyCycle(2.5)  # 0도 
        time.sleep(1)

except KeyboardInterrupt:
    servo.stop()
    GPIO.cleanup()

실습

 

모터 제어하기 실습

 

'라즈베리파이' 카테고리의 다른 글

PWM_LED 밝기 제어  (0) 2020.10.20
버튼으로 LED 제어하기  (0) 2020.10.18
Button으로 입력받기  (0) 2020.10.17
LED 제어하기  (0) 2020.10.16
Raspeberry Pi 초기설정  (0) 2020.10.15
Comments