아두이노(Arduino)를 이용하면 다양한 물건을 만들 수 있지요? CNC선반을 만들어 3D 프린터등을 만드는 프로젝트도 많이 볼 수 있는데요. 그런 프로젝트에서는 스텝 모터로 움직임을 제어하는 것이 보통입니다.
스텝 모터라고해도 다양한 종류가 있습니다만, 이번에는 유니폴라형 스테핑모터인 28BYJ-48 의 사용 방법을 소개합니다.
28BYJ-48 데이터 시트는 다음과 같습니다.
모터의 출력축은 5mm 직경 입니다.
배선은 다음과 같습니다.
출력축 1 회전 단계 수와 1 단계의 각도
로터가 1회전 단계(step)수가 32단계 기어비가 1:64이므로 출력 축을 1 회전 단계 수는 다음과 같습니다.
- 32 (step) * 64 (기어비) = 2,048 (step)
이 단계 수에서 출력축 1 단계의 회전 각도는 다음과 같습니다.
- 1 상 여자와 2 상 여자라면 360° / 2,048step = 0.17578125°
Arudino 프로그램은 다음과 같습니다. Arduino의 Stepper 라이브러리를 사용할 수 있습니다.
#include <Stepper.h>
const int number_of_steps = 32 ;
const int steps_output_rev = 32 * 64 ; // 2048
const int CW = 1 ;
const int CCW = - 1 ;
Stepper stepper ( number_of_steps , 8 , 10 , 9 , 11 );
void setup () {
stepper . setSpeed ( 300 );
}
void loop () {
int steps ;
steps = get_step_by_rev ( CW , 1 );
stepper . step ( steps );
delay ( 3000 );
steps = get_step_by_rev ( CCW , 1 );
stepper . step ( steps );
delay ( 3000 );
}
int get_step_by_rev ( int dir , float rev ) {
return dir * ( steps_output_rev * rev );
}