본문 바로가기
아두이노 (Arduino)

아두이노 - DC 스텝 모터 (STEP MOTOR)

by JaeBaek 2020. 10. 2.

step motor (Pixabay)

 

STEP MOTOR

 이전에 알아봤던 서브 모터(SG90)와는 달리 스텝 모터는 360도 많은 회전을 할 수 있습니다. 스텝 모터는 step 상태에서 옆 그림과 같이 pulse에 순서가 부여되면 주어진 펄스 수만큼 비례해서 각도가 회전하는 방식입니다. 스텝 모터는 입력 신호에 따라서 일정한 각도를 회전하기 때문에 복잡한 제어를 하지 않고 간단하게 제어를 할 수 있습니다. 그리고 모터의 회전 속도는 입력 펄스 신호의 주파수에 따라서 비례하는 것이 특징입니다. 

 스텝 모터는 다른 모터에 비해서 정지시 큰 유지 토크가 있기 때문에 전자 브레이크 등의 위치 유지 기구를 필요로 하지 않습니다. 또한 지속적인 높은 토크 운전을 할 수 있습니다. 

 아두이노에서 스텝모터를 구동하기 위해서는 모터 드라이버가 필요합니다.

 

 

 

 

Step motor driver

 

사용할 스텝 모터

모델명 28BJY-48
스텝 수 64
스텝각도 360/64=5.625
동작 주파수 100Hz

 

 

코딩을 하기 위한 기본지식은 다음과 같습니다.

<Stepper.h> 스텝 모터 구동을 위한 Stepper.h 헤더 파일 선언
Stepper 변수(스텝 수,핀1,핀2,핀3,핀4) 스텝 수와 연결하는 핀을 나열
변수.setSpeed() 스텝 모터의 속도 설정
변수.step(1)  or  변수.step(-1) 좌(1), 우(-1) 회전 설정

 

 

■ 스텝 모터

① 회로 구성

② 소스 코드

#include <Stepper.h>

int JStick_pin=A0;
int value;
const int stepNumber=64; //사용할 스텝 모터 수
Stepper stepper(stepNumber,8,10,9,11); //스텝 모터 정의

void setup(){
  stepper.setSpeed(300); // 스텝 모터의 속도 설정
}

void loop(){
  value=analogRead(JStick_pin);
  if (value>800){
    stepper.step(1);
  }
  if (value<300){
    stepper.step(-1);
  }
}

 

 

 

 

 

 

댓글