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

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

(그리고 전기 ㅎ)

 

제가 찾은 자료에는 '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(30);
}

void loop()
{
  if (Serial.available())
  {
    int steps = Serial.parseInt();
    motor.step(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칩이 비싼 편이라 테스트용으로는 좋지 않습니다.

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

 

 

 

  1. 김석 2013.09.04 16:47 신고  Address  Edit/Delete  Reply

    많은 도움 받고 갑니다. 다만 결선그림중에 모터부 A상이 한칸 위 GND 에 꼽혀 있네요. 한칸 아래 out 으로 온다면 금상첨화 일꺼 같습니다. 제가 좀 헤메었거든요ㅠ 감사합니다~

  2. 안중호 2013.11.16 21:55 신고  Address  Edit/Delete  Reply

    안녕하세요 스테핑 모터 제어를 하여 이번학기 프로젝트를 수행하고 있는
    연세대학교 기계공학과 08학번입니다.

    다름이 아니오라, 스테핑 모터에 어려움이 있어, 당근천국님의 도움을 받고싶은데요,
    010-4900-0805입니다.

    연락 기다리겠습니다 ㅠㅜ

  3. 김대규 2013.11.19 19:13 신고  Address  Edit/Delete  Reply

    컴퓨터공학과 학생입니다...
    SW만 다루다가 H/W 공부를 하게 되었는데..; 너무 어렵네요
    아두이노 우노를 사용하고 se-sm243 모터를 사용하는데 . 칩을 L293B를 사용해도 될가요?
    위에 나와잇는 그대로 연결하여 그대로 작동시키려 하니 돌아가지가 않네요;;

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2013.11.20 01:55 신고  Address  Edit/Delete

      혹시나 해서 다시 테스트 해봤는데 잘됩니다.
      결선을 다시해보시고 펌웨어를 다시 올려보세요.

      선색 다시 확인해보시고 혹시 데이터시트가 변경됬을수 있으니 확인해 보세요.
      가능하시다면 사진으로 찍어서 주세요.

  4. 최병민 2013.11.21 20:46 신고  Address  Edit/Delete  Reply

    안녕하세요 당근천국님

    염치없지만 도움 부탁드립니다~

    스텝모터를 일정속도로 계속 돌게 하려면

    .step() 부분을 어떻게 해야하나요???

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2013.11.22 10:57 신고  Address  Edit/Delete

      제 기억으로는 스태핑 모터가 회전이 끝나기전에 다시 '.step()'호출하므로서 계속 회전하는 것처럼 보이게 하는것이 가능했던것 같습니다.

      아두이노의 'loop()'는 수행하는 코드에 따라 1초당 반복횟수가 다를 수 있습니다.
      우리가 흔이 쓰는 용어인 'fps'를 빌리자면 'fps가 일정치 않습니다.'라고 표현 할수 있습니다.
      그러니 적당한 딜래이에 다시'.step()'를 호출해 보세요.

      지금 제 아두이노보드가 맛이가서 새로 주문한 상태라 아직 테스트를 할수 없어 정확한 확인을 못해 드리겠네요;;;
      확인해주시고 댓글 달아 주세요.

    • 2015.03.08 04:44 신고  Address  Edit/Delete

      그냥 step 값안에 수치를 넣어주면 되지않나요? 단 스텝함수의 변수값을 위 코드처럼 시리얼모니터에서 입력한 값으로 읽는게 아니고 루트내에서 실행하면 계속 돌듯한데,
      한번 회전의 스텝값을 200으로 잡아주고(모터 스텝 당 각도가 1.8도라는 기준에서) int i = 200; step(i); 하면 계속 돌지않으려나요?
      속도가 일정한지는 측정해보지 않아서 정확하게 모르겠지만 돌기는 계속 돌것같은데

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2015.03.09 02:50 신고  Address  Edit/Delete

      어차피 'Stepper.h'자체가 무한루프를 돌리는 방식이라 코드에 달랑 '.step(1)'넣어도 무한으로 돌아갑니다.
      대신 아두이노의 다른 기능들이 정지 하겠죠 ㅎㅎㅎㅎ

      참고
      http://blog.danggun.net/2089
      http://blog.danggun.net/2092

  5. 2014.05.14 22:53  Address  Edit/Delete  Reply

    비밀댓글입니다

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.05.14 23:14 신고  Address  Edit/Delete

      해당 모터가 검색되지 안는데 링크 주시면 확인 해드리겠습니다.

      동작방식만 맞으면 종류와 상광없이 동작합니다.

  6. 2014.05.18 15:48  Address  Edit/Delete  Reply

    비밀댓글입니다

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.05.19 02:35 신고  Address  Edit/Delete

      인크루드를 소문자로 바꿔주세요.
      #include <stepper.h>

      저번에 자동으로 대문자로 바꿔지는 현상이 있을때 그냥 냅뒀나보네요 ㅡ,.ㅡ;
      본문 수정 했습니다.

  7. D 2014.05.30 20:51 신고  Address  Edit/Delete  Reply

    잘돌아가긴하는데.... L293D 가 왜캐 뜨거워지져? ㅠㅜ 위에 회로 그대로 햇는데...

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.05.31 02:38 신고  Address  Edit/Delete

      원래 그렇습니다.
      그래서 일반적인 모터쉴드들은 방열판을 달고 있습니다.

      직접 구성할때는 방열판을 직접 달아주셔야 합니다.

  8. D 2014.05.31 16:57 신고  Address  Edit/Delete  Reply

    음... 이번에 모터 1개를 동일 회로로 추가후 자이로 센서 MPU6050의 값을 받아서 X축 과 Y축 -+ 값에 따라 도는 방향을 구성해 보았는데... 3.3 V에 연결하였을때는 힘없이 동작하는데,,, 5V에 연결하였을때는 동작을 안하는 군여... 이유가 무었일까요?

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.06.02 03:15 신고  Address  Edit/Delete

      이 포스팅은 편하게 동작을 테스트 하려고 이렇게 구성 한것이라 모터사양이 안맞으면 아두이노보드에 무리를 줄 수 있습니다.
      모터를 어떻걸 쓰시는지 모르겠지만 모터 사양을 확인 하시고 볼트와 암페어에 맞게 따로 전원을 공급해 주시는 것이 좋습니다.

  9. 인첨말 2014.10.27 11:31 신고  Address  Edit/Delete  Reply

    외부에서 전압을 줄떄 어느핀에 전압을 공급해야될까요 ㅠ?

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.10.27 15:37 신고  Address  Edit/Delete

      http://arduino.cc/en/uploads/Tutorial/UnipolarKnob_bblg.png
      여기 이미지 처럼 모터전원을 외부전원으로 연결하시고 칩에 들어가는 오른족 마지막핀의 전원을 외부전원으로 연결 하시면 됩니다.
      그리고 외부전원의 그라운드와 아두이노의 그라운드는 연결하시면 됩니다.

  10. 인첨말 2014.10.29 03:27 신고  Address  Edit/Delete  Reply

    유니폴라 선6가닥이 님처럼 일자로 배열되지않았는데 ,
    선을 어떻게 확인해서 연결해야되나요 ?
    http://www.vctec.co.kr/front/php/product.php?product_no=1321&main_cate_no=
    모터는 이걸사용하였습니다,

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.10.31 03:07 신고  Address  Edit/Delete

      데이터선은 이 포스팅을 참고하시고 전원선만 제가 걸어준 링크를 참고 하시면 됩니다.

      데이터시트상 모터의 전원선은 노란색과 힌색입니다.

  11. dd 2014.11.07 18:46 신고  Address  Edit/Delete  Reply

    'FL42STH33-0956A' 이 모터를 사용하여 구동하였는데 위에와 같이 연결했습니다.
    작동하지 않는군요. 모터드라이브도 L293d를 사용했고요, 뭐가 문젠지 모르겠는데
    'FL42STH33-0956A' 모터를 검색해본결과 BLK A YEL O GRN C
    RED B WHT M BLU D
    이렇게 나왔습니다. A O C 가 각각 A ACOM /A 인가요??
    왜 안돌아가느는지 모르겠습니다.

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.11.07 18:51 신고  Address  Edit/Delete

      저도 이 모터 하나가지고 있는데 동작 잘합니다.
      옐로와 화이트가 com이고 블랙이 A 그린이 /A입니다.
      선 다시 확인해 보세요.

    • dd 2014.11.07 18:54 신고  Address  Edit/Delete

      위에와 같이 연결하면 작동하는거 맞죠?

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.11.07 19:00 신고  Address  Edit/Delete

      이 모터는 하이브리드라 바이폴라건 유니폴라건 동작합니다.
      (둘다 테스트 해봤습니다.)
      http://blog.danggun.net/1810
      여기에 동영상보시면 까만 모터가 'FL42STH33-0956A'입니다.
      'L293D'로는 테스트해보지 않았는데 되야 정상입니다.
      칩이나 모터가 고장난게 아닌지 먼저 확인 해보셔야 할듯합니다.

  12. 졸업하고싶어요 2014.11.07 21:07 신고  Address  Edit/Delete  Reply

    안녕하세요 혹시 모터를 http://www.devicemart.co.kr/36909 이 모터로 하여도 정상적으로 L293D로 작동가능할까요?
    토크가 더 쎄서 이걸로 할까하는데 FL42STH33-0956A 이것과 차이가 뭐가있을까요??

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.11.07 21:09 신고  Address  Edit/Delete

      동작합니다.(배선은 똑같습니다.)
      두개가 상세스팩이 약간 차이가 있는 것으로 알고 있습니다.
      데이터시트 참고 하세요.

  13. 최재희 2014.11.13 21:41 신고  Address  Edit/Delete  Reply

    모터드라이버가 없어도 구현이 가능할까요?
    그렇게 되면 코딩을 다시 해야하는데 ㅠㅠ 너무 어렵네요 ㅠㅠㅠ

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.11.13 22:17 신고  Address  Edit/Delete

      드라이버 없이도 구현은 가능합니다,
      직접 회로를 구성하여 드라이버가 하는 역할을 대신하면 됩니다..
      저는 그정도 지식이 없기 때문에 다른곳에 문의하셔야 할듯 하네요 ㅎㅎㅎ

  14. DYHolic 2014.12.10 20:33 신고  Address  Edit/Delete  Reply

    현재 스텝모터 "TS3653 N2 E6" 제품을 가지고 있는데요..
    모터 스펙은 "타마가와 56각 유니폴라방식, 2상 스테핑모터 . 전압: 2.3V, 전류:3A, 토크: 9Kg.cm, Step Angle: 1.8도, 사이즈: 56mm(size23), 샤프트타입: HB TYPE" 입니다.
    이 모터를 가지고 작성자님과 같이 구현하고 싶은데 "L293D"를 사용해도 될까요? 모터 스펙에 따라 드라이버도 다르다고 알고있는데 잘 모르겠네요;; "L293D"가 안된다면 드라이버 추천해주시면 감사하겠습니다.

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2014.12.11 12:50 신고  Address  Edit/Delete

      이칩이 지원하는 전압이 4.5V~36V입니다.
      3.3v까지는 동작하는걸 확인 했습니다.
      보통 +-몇볼트정도는 돌아가는 편인데 왠만하면 데이터시트에 나온 내용을 맞춰주는게 좋습니다.
      그러니 다른 칩을 사용하셔야 합니다.
      저도 써본칩이 많지 않아서 어떤칩을 써야 할지 모르겠네요;;;

  15. 전자공학과 2016.11.20 12:47 신고  Address  Edit/Delete  Reply

    해당 모터의 공통 단자인 Acom 과 Bcom연결은 GND가 아니라 VCC아닌가요?

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2016.11.20 13:08 신고  Address  Edit/Delete

      이게 칩마다 다른데 'L293D'는 com을 연결하지 않습니다.
      그래서 그라운드에 연결했습니다.
      이게 모양만 놓고 보면 바이폴라랑 비슷한데 유니폴라모터도 동작되는걸로 봐서는 유니폴라가 맞습니다.
      다른 포스팅을 보면 다른 칩을 사용하는데 그 칩은 com에 전원을 연결해야 동작합니다.
      제가 이쪽으로 잘몰라서 이게 무슨 차이가 있어서 칩마다 다른건지 모르겠습니다.

  16. 뉴비뉴비 2017.08.29 02:21 신고  Address  Edit/Delete  Reply

    오래 돼서 보실지 모르겠지만....

    위 1. 보드 구성처럼 똑같이 연결을 했습니다. 근데 스텝 모터가 안 돌아가네요.
    혹시 전압/전류 문제일까요?

    제 모터가 전압 5.6 V에 전류는 0.4 A/phase 입니다.
    당근천국님 모터는 찾아보니 4 V에 0.95 A/phase입니다.

    당근천국님과 비교해서 전압은 더 많이 필요해도 전류는 더 적게 필요합니다.
    (usb 포트 5 V/0.5 A 로 전원 공급하고 있습니다. 다른 외부 전원은 아무것도 연결하지 않았습니다.) 조건이 많이 차이가 나 보이진 않습니다. 그래서 토크는 약하지만 그래도 돌아가야 되지 않을까 하는데 제가 잘못생각하는 걸까요?

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.08.30 02:53 신고  Address  Edit/Delete

      흠....
      일단을 스팩 맞췄을때 동작되나를 먼저 확인해 보셔야 합니다.

      어찌됐건 스팩대로 먼저 해보고나서 다른게 되는지 확인을 해야지 안그러면 배선이 잘못됐거나 부품이 불량이거나 하는걸 잡아 낼 수가 없습니다.

  17. 기계공 2018.06.16 23:33 신고  Address  Edit/Delete  Reply

    아두이노 초보인데 도움받고싶습니다 ㅠㅠ
    저 모터랑 같은 모터를 다른곳에서 구입했는데 잘 알아보고 구매하지않아서
    모터의 6개의 선중에 OUTPUT에 연결하는 4개의 선만있고
    (-)부분에 해당하는 선 두개가 없더라구요 ㅠㅠ..
    이런경우에 모터를 구동하는방법이없나요??
    그냥 저거 무시하고 똑같이 따라해봣는데 구동이 안되더라구요..

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2018.06.17 04:19 신고  Address  Edit/Delete

      아무래도 바이폴라 모터를 구입하신거 같네요.

      http://blog.danggun.net/2067?category=455235
      이 글 참고하시면 됩니다.

  18. ars 2018.06.20 19:16 신고  Address  Edit/Delete  Reply

    위에 디바이스마트에서 똑같은 유니폴라모터를 샀는데
    a /a b /b의 위치가 안나와있네요 그것좀 알수있을까요?

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2018.06.21 03:23 신고  Address  Edit/Delete

      디바이스 마트에서도 데이터 시트를 제공하고
      구글에서 조금만 검색해도 금방나오는 데이터 시트인데...

      레드=A
      블랙=A com
      블루=/A

      옐로=B
      화이트=B com
      브라운=/B

댓글 작성

이름
패스워드
홈페이지
비밀글

티스토리 툴바