2013. 6. 13. 16:32

이전 글에서 다른 칩을 이용하여 스테핑 모터를 제어 했습니다.

(참고 : [Arduino] L293D칩을 이용한 스테핑 모터(stepping motor) 제어)

 

오늘은 아두이노사이트에서도 샘플로 제공하고 있는 'ULN2003'칩을 이용해 보겠습니다.

저 같은 경우 그냥 'ULN2003'대신 'ULN2004'를 사용 하였습니다.

이 칩은 유니폴라 방식의 모터를 구동할 수 있습니다.

(무슨 차이가 있는지 모르겠네요 ㅡ,.ㅡ;)

 

가격은 400원 정도 합니다.
(참고 : 동신전자 - ULN2004A )

 

사용한 모터는 SE-SM243, FL42STH33-0956A 입니다.

 

 

1. 보드 구성

배선은'L293D'칩보다 쉽습니다.

보드구성은 아두이노 샘플과 똑같이 하겠습니다.

(참고 : Arduino Web - Stepper Motor Knob )

 

SteppingMotor_ULN2003_001.fzz
다운로드

 

 

2. 펨웨어 작성

예제는 이전글에서 썼던 예제를 그대로 쓰겠습니다.

#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 )

 

 

3. 테스트

이번에는 모터2개를 한번에 연결 해 보았습니다.

하나는 반대로 꼽아서 다른방향으로 돌고 있습니다 ㅎㅎㅎ

(데이터시트가 뭔가 이상한걸지도-_-a)

 

 

 

4. 외부 전원 사용하기

저는 테스트하기 편하기위해 아두이노의 전원을 끌어다 썼습니다.

그런데 많은 분들이 외부전원 사용방법을 알려달라고 하셔서 추가합니다.

 

SteppingMotor_ULN2003_002.fzz
다운로드

 

전원만 아두이노에서 외부전원으로 바꾸면 됩니다.

 

 

마무리

이 라이브러리는 아두이노에 기본으로 포함되어 있습니다.

문제는 구조상 스탭모터를 동작시키는 동안 딴것을 못 한다는 것이죠.

 

이걸 해결하려면 다른 포스팅을 보시면 됩니다.

참고 : [Arduino] 'Stepper.h'는 두개의 모터를 제어할 수 없다.