이전 글에서 다른 칩을 이용하여 스테핑 모터를 제어 했습니다.
(참고 : [Arduino] L293D칩을 이용한 스테핑 모터(stepping motor) 제어)
오늘은 아두이노사이트에서도 샘플로 제공하고 있는 'ULN2003'칩을 이용해 보겠습니다.
저 같은 경우 그냥 'ULN2003'대신 'ULN2004'를 사용 하였습니다.
이 칩은 유니폴라 방식의 모터를 구동할 수 있습니다.
(무슨 차이가 있는지 모르겠네요 ㅡ,.ㅡ;)
가격은 400원 정도 합니다.
(참고 : 동신전자 - ULN2004A )
사용한 모터는 SE-SM243, FL42STH33-0956A 입니다.
배선은'L293D'칩보다 쉽습니다.
보드구성은 아두이노 샘플과 똑같이 하겠습니다.
(참고 : Arduino Web - Stepper Motor Knob )
예제는 이전글에서 썼던 예제를 그대로 쓰겠습니다.
#include <Stepper.h> int in1Pin = 12; int in2Pin = 11; int in3Pin = 10; int in4Pin = 9; int steps = 0; Stepper motor(200, in1Pin, in2Pin, in3Pin, in4Pin); void setup() { Serial.begin(9600); pinMode(in1Pin, OUTPUT); pinMode(in2Pin, OUTPUT); pinMode(in3Pin, OUTPUT); pinMode(in4Pin, OUTPUT); motor.setSpeed(30); } void loop() { if (Serial.available()) { steps = Serial.parseInt(); motor.step(steps); } }
11번 줄 :Stepper motor(200, in1Pin, in2Pin, in3Pin, in4Pin);
로 모터가 사용할 핀을 지정합니다.
맨앞에 값은 1회전에 몇스텝인지를 지정합니다.
테스트에 사용한 'FL42STH33-0956A'는 'Step Angle'이 1.8도 이므로
200 = 360 / 1.8
입니다.
1회전에 200스탭이 필요하다는 의미 입니다.
그래서 'Stepper motor(200, in1Pin, in2Pin, in3Pin, in4Pin);'이렇게 세팅합니다.
(참고 : arduino Reference - Stepper )
이번에는 모터2개를 한번에 연결 해 보았습니다.
하나는 반대로 꼽아서 다른방향으로 돌고 있습니다 ㅎㅎㅎ
(데이터시트가 뭔가 이상한걸지도-_-a)
저는 테스트하기 편하기위해 아두이노의 전원을 끌어다 썼습니다.
그런데 많은 분들이 외부전원 사용방법을 알려달라고 하셔서 추가합니다.
전원만 아두이노에서 외부전원으로 바꾸면 됩니다.
이 라이브러리는 아두이노에 기본으로 포함되어 있습니다.
문제는 구조상 스탭모터를 동작시키는 동안 딴것을 못 한다는 것이죠.
이걸 해결하려면 다른 포스팅을 보시면 됩니다.
참고 : [Arduino] 'Stepper.h'는 두개의 모터를 제어할 수 없다.