'스테핑 모터'에 해당되는 글 1건

  1. 2007/05/27 [5/27]7Segment 제어 성공 및 모터 구동 실패 (1)
5월 27일.

스테핑 모터, 바퀴를 비롯한 LCD모듈, 7Segment(FND), 적외선 센서 등 수없이 많은 부품을 주문한 게 이번주 월요일, 물건 도착은 며칠 전에 했으나 정보올림피아드 준비 관계로 개봉을 절대적으로 자제하고 있다가 오늘 드디어 모두 열어봤습니다.

역시 가장 눈에 띄는 것은 모터였습니다. 생각보다는 꽤 큰 크기에 무게도 묵직한 것이 힘도 좋아보였습니다. 바퀴도 가격(하나에 11,000원이라니..)에 걸맞게 마찰도 좋고 튼튼해보여 다행이었습니다. 자잘한 부품들이 잔뜩 들어있는 비닐을 뜯어보니 FND, OSC, 적외선 수/발광소자, 가변저항 등 여러 가지 부품들이 눈에 들어왔습니다. 가장 만만해보이는 FND부터 컨트롤해보자는 마음으로 멀티테스터기로 불빛이라도 내 보려고 했습니다.

제가 주문한 FND는 초록색의 Annode Common 타입이었습니다. 그렇다면 당연히 멀티테스터기의 붉은색 침에 Common Pin(3, 8번)을 대 주고 나머지에 검은색 침을 대 주면 불이 들어올 것이라고 생각했으나, 아니었습니다. 왜인지는 아직까지 미스테리입니다. 혹시나 하는 마음에 침을 바꾸어서 대 보니 선명하게 불빛이 들어오더군요. 저는 잘못해서 Cathod Common이 온 줄 알고 Eleparts에 문의글까지 올렸다지요...ㅡㅡ;

Cathod Common이어도 제어 못 하는 건 아니니 일단 Atmega128과 연결해보자라는 마음에 회로를 꾸몄습니다.
사용자 삽입 이미지

FNDTest.c (Language : c)
  1. //FND에 1부터 10까지가 순서대로 나타나는 프로그램입니다.
  2. #include <avr/io.h>
  3.  
  4. short int table[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xA7, 0xA1, 0x86, 0x8E, 0xFF};
  5.  
  6. void delay(int time)
  7. {
  8.     while(time>0)
  9.         time--;
  10. }
  11.  
  12. int main(void)
  13. {
  14.     DDRA=0xff;
  15.     PORTA=0xff;
  16.     int pp=0;
  17.     while(1)
  18.     {
  19.         PORTA=table[pp++];
  20.         delay(10000);
  21.         if(pp==17) pp=0;
  22.     }
  23.        
  24.     return 0;
  25. }

정상적으로 동작하는 것을 확인하고 모터에 도전했습니다.

구입한 스테핑 모터에는 선이 6개가 달려 있습니다. 그런데 도대체 이 녀석을을 어떻게 쓰는 것인지 알 수가 없어 각 선의 용도를 찾는데만 몇 시간이 걸렸습니다.

일반적으로 스테핑 모터의 선은 세트로 되어 있습니다. 6가닥인 경우 3선씩 두 세트입니다. 3선 중 한 가닥은 Common(이라는 말을 써도 될까?) 선이고, 나머지는 Common 선과 반대되는 선입니다. 즉, Common에 +를 접속하면 나머지 두 선에는 -를 접속하면 됩니다. 모터의 선 배치를 모식도로 그려보면 다음과 같습니다.
사용자 삽입 이미지
모터에 6선이 있을 때, 이를 순서대로 A~F라고 하면, 위와 같은 선 구조로 볼 수 있습니다. B와 E에 +를 접속하고 C, D, F에 모두 +를 준 상태에서 A에 -를 주면 A-B에만 전류가 흐르므로 그 사이에 전기장이 형성되고, 그쪽으로 모터에 토크가 걸립니다. 그 상태에서 A에 다시 +를 주고 C에 -를 주면 C-B에만 전류가 흐르므로 A-B쪽에 불어있던 회전자가 C-B쪽으로 이동합니다. 같은 원리로 A, C, D, F에 번갈아 신호를 주면 회전자가 번갈아가면서 붙기 때문에 회전을 할 수 있게 됩니다.

하지만 모터에 공급하는 전압은 정격 9.4V, 보통 11~12V정도 주기 때문에 마이컴으로는 엄두도 못내고, 외부 전원을 연결해야 합니다. 저는 외부전원으로 12V를 걸어주었습니다. 하지만 분명 모터를 돌리고 남는 전압이 있을 것이고, 그것이 마이컴으로 들어가야되는데, 어느 정도가 남는지 아직 확인이 안 되어서 확인하던 도중에 밤이 되었습니다.

휴,, 이제 다음에는 확실히 모터 돌려봐야지요.


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry