본문 바로가기

코딩 놀이

Stepper Motor 동작(9)

정밀기계에 사용되는 스템모터를 동작시겨봅니다. 일반적으로 사용되는 모터는 2선이지만 4서, 6 선을 사용합니다. 주로 사용되는 4선을 많이 사용합니다.

가격이 저럼하여 중국산을 많이 사용합니다. 스템모터는 1.8도 단위로 제어가 가능합니다.  즉 360도 회전하는데는 200개의 펄스가 필용합니다. 이를 해상도라고 합니다.

360도/1.8도 =200   , 쉽게 말해서 전원 공급을 200번 OnOff하여야 1회전 한다는 의미입니다.

스템 모터

사용되는 보드는 Aruino nano입니다.

보드를 아래 아답터에 핀번호 맞게 장착합니다.

다음은 A4988 모터드라이브입니다.

아래 어답터에 핀번호 맞게 장착합니다.

 

DC12V 1A

보드와 아덥터 회로 결선 

왼쪽 위 4개 핀에는 모터, 우른쪽 D S만 연결합니다.

 

#include <AccelStepper.h>  
const int step_pin = 2;  // 아두이노 나노 핀
const int dir_pin  = 5;  // 아두이노 나노 핀
long motorPosition = 0;  // 모터의 현재위치
AccelStepper stepper(AccelStepper::DRIVER, step_pin, dir_pin);   // 모터 구동 함수
void setup()   
{   
  Serial.begin(9600);
  stepper_init();    
  stepper.setCurrentPosition(0);   
}   
  
void loop()   
{   
  stepper.moveTo(8000);// 값을 변경하면 모터 회전 각도를 조정할 수 있습니다.   
  stepper.runToPosition();  //주어진 값 만큼 이동
  motorPosition = stepper.currentPosition();  // 이동된 거리 값
  Serial.println(motorPosition);  //시리얼 모니터에 출력
  stepper.stop(); // 멈춤 
}   
  
void stepper_init(){   
  stepper.setMaxSpeed(2000);   // 모터 최고 속도
  stepper.setAcceleration(1500);   // 실행 중인 모터속도
}