이전 글에서 다른 칩을 이용하여 스테핑 모터를 제어 했습니다.
(참고 : [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'는 두개의 모터를 제어할 수 없다.