본문 바로가기

코딩 놀이

스탭모터 해상도와 이동거리 측정(10)

아래 소스 loop)_ 함수에서   stepperX.moveTo(3200); 명령문에서 3200 값을 도출하는 저만의 방법입니다.

모터축에 힌 종이에 점 표시를 하고, 그리고  화살 모양을 만들어 회전축에 붙이고 점 위에 맞도록 해놓고, 이동 값을 찾는다.   후에 보드의 리셋버튼을 눌러 동작 할 때 마다 같은 위치에 오면 된다.

풀리

모터축에 끼워 벨트를 걸어 직선운동을 하게된다. 풀리의 이는 16개이다. 산과 산의 길이는 2mm, 물론 벨트도 2mm이다.

1회전에 이동거리는 16X2mm=32mm이다,

1mm 당 펄수 개수는 3200[개수] / 32[mm]=100 개

#include <AccelStepper.h>  
const int step_pinX = 2;  
const int dir_pinX  = 5;  
long motorPositionX = 0;  
AccelStepper stepperX(AccelStepper::DRIVER, step_pinX, dir_pinX);   
void setup()   {   
  stepperX_init();    
  stepperX.setCurrentPosition(0);   
}   
  
void loop()   {   
  stepperX.moveTo(3200);  
  stepperX.runToPosition();  
  motorPositionX = stepperX.currentPosition();    
  stepperX.stop();     
}   
  
void stepperX_init(){   
  stepperX.setMaxSpeed(2000);   
  stepperX.setAcceleration(1500);   
}  

(9) 부터 참고합니다.