스테핑모터를 기본적으로 제어하는 것은 방향, 스텝진행 그리고 스템진행시 대기시간 조절에 의한 속도조절이다. 그런데 스테핑모터로 기계장치를 움직일 때 정지상태에서 갑자기 속도를 높이거나 일정 속도로 움직이다 갑자기 정지하면 기계장치가 덜컹거리고 기계장치에 무리가 가게 된다.  기계장치에 무리가 가지않고 부드럽게 작동하기 위해서는 서서히 가속하고 서서히 감속하는 속도조절 기능이 필요하게 되는데 일일히 가속감속 속도를 계산하고 지정하는 작업은 상당히 복잡하고 번거롭다.                 

 

AccelStepper라이브러리는 스텝핑모터 사용시 가속과 감속을 자동으로 계산해서 제어해 주는 기능이 있어 편리하다. 즉, 현재 위치와 목표 위치를 지정하면 라이브러리에서 속도를 자동 계산해서 제어해 주기 때문에 기계가 부드럽게 작동되도록 자연스러운 가속과 감속을 할 수 있게 된다.  

   

 

라이브러리의 설치

 

아두이노 IDE에 공식 등록되어 있는 라이브러리이므로 메뉴에서 스케치 -> 라이브러리 포함하기 -> 라이브러리관리를 선택하여 라이브러리 매니저를 띄운 후  AccelStepper 를 검색해서 설치하면 된다.

 

 

 

 

주요기능

 

-currentPosition() : 현재 위치 값을 읽어 온다.

-setCurrentPosition(position) : 현재 위치 값을 지정한다.

 

-moveTo(position) : 이동할 목표 위치를 지정한다.

-runToPosition() : 지정된 위치로 이동하기 기능으로 부드럽게 가속하며 출발하고 목적위치에 가까워지면 서서히 감속할 부드럽게 정지할 수 있도록 속도를 자동계산하여 제어된다.

 

-move(distance) : 이동할 거리를 지정한다.

-moveTo() : 지정된 거리만큼 이동하기 기능으로 가속 및 감속이 자동 제어된다.

 

-setSpeed(speed) : 이동할 때의 속도를 지정

-runSpeed() : 지정된 속도로 이동하기(자동 가속,감속하지 않고 지정한 일정한 속도로 이동하기) 

 

상세한 사항은 라이브러리 제작자가 제공하는 다음 링크의 메뉴얼을  참조 :    

     

          http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html

 

 

샘플프로그램

 

 

 

  1. 이명훈 2020.01.16 15:51

    좋은 글 감사합니다 혹시 엑셀스텝퍼라이브러리가 적용되는 모터가 정해져있을까요?? 되는게 있고 안되는모터가 있어서,..

+ Recent posts