반응형
라즈베리파이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
반응형
'라즈베리파이' 카테고리의 다른 글
DHT22-AM2302 : 디지털 온습도 센서 (0) | 2019.11.07 |
---|---|
라즈베리파이와 MCP3208 ADC 컨버터 사용하기 - 회로와 소스코드 (0) | 2019.10.16 |
라즈베리파이 3 B+ RGB Led 구현 with C (0) | 2019.10.12 |
라즈베리파이3 B+ 부저, 스피커 음악 with python (0) | 2019.10.12 |
라즈베리파이3 B+ MCP3208 조이스틱 구현 with C (0) | 2019.10.12 |