2013. 5. 15. 15:41

보통 스테핑모터를 제어할때는 모터 드라이버라는 것을 사용 합니다.

모터드라이버의 역활이 몇가지 있긴하지만 모터를 구동하려면 콘트롤러만 있으면 됩니다 ㅡ.-;

(그리고 전기 ㅎ)

 

제가 찾은 자료에는 'L293D'칩을 이용하고 있어서 'L293D'칩을 구했습니다.

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

(참고 : adafruit learning system - Arduino Lesson 16. Stepper Motors)

 

모터는 'FL42STH33-0956A'를 사용 했습니다.

(참고 : 디바이스마트 - FL42STH33-0956A)

 

 

 

가격은 7000원 정도 합니다.

(참고 : 디바이스 마트 - L293D )

 

당연이 다른 칩들도 있는데....

그건 다음 시간에 알아보도록 하죠 ㅎㅎㅎ

 

사용한 모터는 SE-SM243 입니다.

 

1. 보드 구성

스테핑모터에서 나오는 선이 5개나 6개이고 콘트롤러의 다리가 16개이니.....뭐 16개를 한번에 다쓸건 아니지만 선이 정신 없습니다 ㅋㅋ

 

보드 구성은 'adafruit learning system'에서 그대로 보고 하시면 됩니다.

(참고 : adafruit learning system - Arduino Lesson 16. Stepper Motors - Breadboard Layout )

 

근데 저사이트 배선도가 보기도 안좋고 빠진부분이 있어서 제가 다시 정리해 봤습니다.

 

 

 

 

SteppingMotor_L293D_001.fzz

 

2. 펌웨어 작성

저 사이트에 있는 코드를 그대로 사용하셔도 됩니다.

이 포스팅은 스텝모터를 돌리기위한 테스트이기 때문에 최대한 예제를 그대로 따라가고 있습니다 ㅎㅎㅎ

 

/*
Adafruit Arduino - Lesson 16. Stepper
*/

#include <Stepper.h>

int in1Pin = 12;
int in2Pin = 11;
int in3Pin = 10;
int in4Pin = 9;

Stepper motor(200, in1Pin, in2Pin, in3Pin, in4Pin);  

void setup()
{
  pinMode(in1Pin, OUTPUT);
  pinMode(in2Pin, OUTPUT);
  pinMode(in3Pin, OUTPUT);
  pinMode(in4Pin, OUTPUT);
  
  motor.setSpeed(60);
}

void loop()
{
  if (Serial.available())
  {
    int steps = Serial.parseInt();
    motor.step(steps);

    Serial.print("steps : ");
    Serial.println(steps);  
  }
}

 

 

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 )

 

전 일단 대충 세팅했는데 보통은 모터살때 데이터시트보면 내용이 있습니다.

일단은 잘 모르겠으면 여러 숫자를 넣고 테스트해 보아요;;;

 

setSpeed​​()

는 분당 회전수 즉, RPM을 지정하는 것입니다.

30이면 분당 30번 도는 속도라는 거죠.

 

.step()

를 통해 모터를 회전 시킵니다.

총 돌아야할 스탭수를 넣으면 됩니다.

 

여기서 스탭모터를 생성할때 사용한 '1회전 스탭 수'가 사용됩니다.

저는 200으로 세팅했으니 200을 입력하면 360도 회전을 합니다.

RPM을 30으로 잡았으니 '6000(6000 = 200 * 30)'스탭을 입력하면 1분동안 돌게 되겠습니다.

 

3. 테스트

모터돌아가는 것이 잘 안보이니 종이를 붙였습니다.

아두이노 프로그램에서 '시리얼 모니터'를 열고 숫자를 적은 다음 'send'를 해보면 아래와 같이 작동 합니다.

 

 

 

4. 외부 전원 사용하기

외부 전원 사용하는 방법을 많이 문의하셔서 올립니다.

 

 

 

SteppingMotor_L293D_002.fzz

 

 

전원만 아두이노에서 외부전원으로 옮긴 형태입니다.

 

 

마무리

L293D칩이 비싼 편이라 테스트용으로는 좋지 않습니다.

비슷한 싼 칩이 많으니 다양한 칩으로 테스트해보시길 바랍니다.