출처: https://www.waveshare.com/w/upload/c/c7/AlphaBot-User-Manual.pdf alphabot user 메뉴얼에 따르면 alphabot의 모터를 제어할 수 있는 아두이노의 핀은 A0, A1,D5 그리고 A2, A3, D6이다. 이렇게 두 부분으로 나눠서 쓴 이유는 전자가 왼쪽 바퀴 모터를 제어하고 후자가 오른쪽 바퀴 모터를 제어하기 때문이다. 그렇담 왜 바퀴마다 세 개의 핀이 연결되어 있을까? 그 이유는 하나는 forward( 앞으로 가는) 다른 하나는 backward (뒤로 가는) 그리고 나머지 하나는 속도를 제어하는 기능(active high enable 핀)이기 때문이다. 위의 control theory에 따라서 아두이노 코드를 짜면된다. DigitalWrite(A0, HIGH); 이런 식으로! 여기서 신기한게 저 4가지 (IN1, IN2, IN3, IN4) 값을 다 넣어주고 enable 핀 값도 넣어주어야 한다는 사실이다. enable 핀 값은 속도를 넣어주면 된다. 예를 들어 앞으로 가는 (rotate forward) 상황의 아두이노 코드를 짜보면 (아마) 다음과 같다. void moveForward(){ AnalogWrite(D5, 100); //100의 속도로 왼쪽 바퀴를 돌려라. AnalogWrite(D6, 100); //100의 속도로 오른쪽 바퀴를 돌려라. DigitalWrite(A0, HIGH); DigitalWrite(A1, LOW); DigitalWrite(A2, LOW); DigitalWrite(A3, HIGH); } 위의 코드는 저 위에 있는 control theory 사진에 나온 논리 값에 따라 적어준 것이다. 왜 저렇게 논리 값을 넣어줘야 바퀴가 도는지가 더 신기하다. 그 이유는 alphabot의 바퀴에 달린 DC모터가 전류가 흘러야 모터가 구동되는 방식이...
댓글
댓글 쓰기