대신 이 경우, 아래의 링크처럼 digitalwrite로 코딩하여 구성도 가능하지만, 이 경우 가속, 감속의 조절이 불가능하게 되어 장기적으로 모터에 문제가 생긴다고 합니다. 이를 해결하기 위해서 아두이노 내에서 AccelStepper 라이브러리를 사용합니다. 이것들을 모두 포함해서 제어할 수 있게 해둔 것이 위쪽의 링크입니다.
여기서 코드를 조금 해석해보자면
void setup 부의 stepper.setMaxSpeed 값과 stepper.setAcceleration 값이 실제 스테퍼 모터에 가장 큰 영향을 주는 요소입니다. 특히 stepper.setAcceleration 값이 확실히 중요해보이고, 녹칸다님의 주석에는 50~300 사이라고 하였지만 저도 직접 돌려보니 2000까지 올리면 인형뽑기등에 사용되는 모터의 속도와 비슷하게 진행되는 모습을 볼 수 있었습니다.
아래의 stepper.moveTo를 통해 목표지점 설정값을 조정할 수 있는데 작으면 작을 수록 마지막에 감속되는 시간이 줄어드니 알맞은 값으로 선택하면 될 듯합니다.
이 게시글을 따로 구성한 이유는 녹칸다님의 실험을 제외하고 Nema17을 A4988, Accelstepper, 조이스틱으로 동시 구성한 사례가 없었기에 검색하는 데에 도움이 되었으면 하는 마음에 글을 작성해봤습니다. 이후 양쪽에 엔드스톱 스위치를 구성하여 추가적인 코딩을 진행하면 거의 끝나가는 것이 보입니다.