CNC Shield v4를 이용해서 바이폴라 스텝모터를 제어하게 되었는데, 쉴드는 인터넷에서 봤던 수 많은 영상처럼 가볍게 작동 되어주지 않았다. 그래서 일단 쉴드에 부착된 모터 드라이버인 A4988만 떼어놓고 생각해 보고자 하였다.


왼쪽이 쉴드, 오른쪽이 A4988 드라이버


처음에는 드라이버를 제어하기 위해서 5V 1A의 전원공급기를 이용했다. 하지만 모터 드라이버는 동작하지 않았다. 많은 인터넷 자료를 찾아보니 드라이버의 최소 작동 전압은 이보다 더 큰 7V였다. 당연히 작동되지 않을 환경에서 열심히 돌려보려 했던 것이다. 다음부터는 드라이버나 회로에 대한 이해를 완벽히 숙지한 상태에서 시도를 해야겠다.


모터 드라이버 스펙


회로도

회로도 그림 실제 회로도
회로도 구성


아두이노, 모터 드라이버, 모터는 위의 회로도를 참고하여 연결하였다. 스텝모터에 대한 지식이 거의 없어서 어느 회로가 A1, A2, B1, B2인지 몰랐으나 외부 전원 공급기에 연결되는 회로부터 논리 전원이 연결되는 회로까지 검은색, 초록색, 빨간색, 파란색 순서대로 연결하면 된다. 가끔 다른 색상의 모터도 있으나 그건 그때가서 생각해 보도록 하자…


동작


그리하여 결국 동작은 되었다. 쉴드는 도대체 왜…


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const int stepPin = 2; 
const int dirPin = 4; 

void setup() {
  pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
}
void loop() {
  digitalWrite(dirPin,HIGH);
  for(int x = 0; x < 3600; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(400); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(400); 
  }
  delay(1000);

  digitalWrite(dirPin,LOW);
  for(int x = 0; x < 3600; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(400);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(400);
  }
  delay(1000);
}
WRITTEN BY

배진오

하고싶은 건 다 하면서 사는게 목표
im@baejino.com

comments powered by Disqus