아두이노, 메이커

28BYJ-48 스테핑모터를 ULN2003 드라이버 보드를 이용해서 사용하는 방법

탁이 2019. 4. 21. 23:04

아두이노(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 );   
}