라즈베리파이, 아두이노

[간단한 아두이노 코딩] 12. 스텝 모터 드라이버(DM741, ULN2003) 사용하기

포도알77 2020. 11. 24. 10:22

스텝 모터 드라이버(DM741) 사용하기스텝 모터 드라이버(DM741, ULN2003) 사용하기

 

1. 스텝 모터

 스텝 모터는 디지털 펄스에 맞추어 한개의 step 단위로 회전하는 모터이다. 즉 단순히 전원 인가, 차단을 통해 모터를 움직이는 것이 아니라 미리 계산된 각도만큼 코드로 모터를 회전시킬 수 있다.

 

 주로 저렴한 가격의 스텝모터는 전류의 방향에 따라서 시계, 반시계 회전을 하는 유니폴라 구동 방식을 이용한다. 이 각도 계산은 모터별로 상이한데, DM741에 포함된 28BYJ48은 5.625도가 1스텝이며 360도 회전에 총 64번의 스텝이 필요하다.

 

 이 스테핑 과정은 직접 제어하기 복잡하기 때문에 ULN2003을 이용하는 스텝 모터 드라이버를 주로 이용한다.

구동 방법은 ULN2003 데이터 시트를 참조하길 바란다. 이 포스팅에서는 구현되어 있는 Stepper 라이브러리를 이용하여 간단하게 동작시키는 방법을 설명한다.

 

 아두이노의 라이브러리 매니저를 통해서 Stepper 라이브러리를 설치하자.

2. 회로도

 

3. 소스코드

//라이브러리
#include <Stepper.h>
#define STEPS 2048

#define STEP_IN1 2
#define STEP_IN2 3
#define STEP_IN3 4
#define STEP_IN4 5

//스텝모터 선언
Stepper stepMotor(STEPS, STEP_IN4, STEP_IN2, STEP_IN3, STEP_IN1);           

void setup() {
  //스텝 모터 동작 속도 10RPM
  stepMotor.setSpeed(10); 
}
void loop() {
  // 시계 방향으로 이동
  stepMotor.step(STEPS);
  delay(500);
  // 반시계 방향으로 이동
  stepMotor.step(-STEPS);
  delay(500);
}
페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사