본문 바로가기

라즈베리파이

라즈베리파이3 B+ 스텝모터 컨트롤 with Python

반응형

라즈베리파이3 B+ 스텝모터 컨트롤 with Python

 

스텝 모터는 펄스 모양의 전압에 의해 일정 각도 회전하는 모터입니다. 회전 각도는 입력 펄스의 신호의 수에 비례하고 회전 속도는 입력 펄스 신호의 주파수에 비례합니다. 스텝 모터를 구동하려면 사용하려는 모터는 몇 상 모터인지 어떤 여자 방식을 이용하여 동작시킬 것인지를 고려해야 합니다. 모터를 구성하고 있는 권선 수에 따라 한 펄스 당 회전하는 회전각이 달라집니다. 키트에 들어있는 스텝 모터는 28bjy-48로 스텝 각은 5.625도입니다.

 

스텝모터 이미지

 

 

연결도

 

 

파이선 소스코드

 

#-*- coding: utf-8 -*-
import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
StepPins = [6,25,19,7]

#핀 출력 설정

for pin in StepPins:
  GPIO.setup(pin,GPIO.OUT)
  GPIO.output(pin,False)

StepCounter = 0 #스텝 수 세는 변수

# 싱글 코일 여자 방식 시퀀스

StepCount = 4

Seq = [[0,0,0,1],
       [0,0,1,0],
       [0,1,0,0],
       [1,0,0,0]]

try:
    while 1: #무한 반복
        for pin in range(0, 4):
            xpin = StepPins[pin]
            if Seq[StepCounter][pin]!=0: #Seq[][]가 0이 아니면 동작
                GPIO.output(xpin, True)
            else:
                GPIO.output(xpin, False)

        StepCounter += 1 #1 증가

        # 시퀀스가 끝나면 다시 시작

        if (StepCounter==StepCount):
            StepCounter = 0
        if (StepCounter<0):
            StepCounter = StepCount

        #다음 동작 기다리기
        time.sleep(0.01)
except KeyboardInterrupt: #Ctrl+c => 종료
    GPIO.clenup()

 

 

 

소스코드 참고 http://blog.naver.com/PostView.nhn?blogId=elepartsblog&logNo=221510191478

 

반응형