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

아무리 읽고 또 읽어봐도 이해가 안가던 트랜지스터가 오늘 이해가 갔다.

혹시 나와 같이 유독 트랜지스터에 알러지를 내는 분이 계실 것 같아 몇 자 적고 간다.

트랜지스터란, 일반적으로 전류를 증폭시키는 작용을 한다.
하지만, 내가 볼 때 전류를 개폐를 조절하는 작용을 하는 것 같다. 이를 스위칭이라 한다.

트랜지스터에는 다리가 세 개가 달렸다. 각각의 이름은 콜렉터, 이미터, 베이스이다. 쉽게 생각해서, 콜렉터는 +와 연결, 이미터는 -와 연결, 베이스는 제어용이라고 보면 된다. 다른 방법으로 연결하는 게 있긴 있지만, 이게 가장 기본이다.

일반적으로 전원은 2개가 사용된다. 실제 동작 전원과 베이스에 연결된 제어용 전원.
동작 전원은 콜렉터와 이미터를 거치고, 제어 전원은 베이스와 이미터를 거친다. 즉, 다음과 같은 회로가 구성될 수 있다.

사용자 삽입 이미지


가운데에 있는 분홍색 소자가 트랜지스터이고, E1, E2가 각각 제어용 전원과 동작 전원이다. 이 때 E2의 전원은 항상 공급되고 있지만 전류는 흐르지 않는다. E1에서 전류를 흘려 주어야 E2의 전류가 흐르게 된다.

이 때, 트랜지스터가 증폭 작용을 한다고 하는 것은 베이스에 흘려주는 전류보다 이미터에서 출력되는 전류가 훨씬 크기 때문이다. 왜냐하면, 베이스에 들어가는 전류는 E1이고, 나오는 전류는 E1+E2이니까, 훨씬 클 수 밖에 없다.

포토 트랜지스터는 포토 다이오드와 트랜지스터를 일체화 해 놓은 것이다. 포토 다이오드란, 빛을 받으면 전류를 발생시키는 것인데, 이를 트랜지스터를 이용하여 증폭시키는 구조이다. 트랜지스터의 베이스를 포토 다이오드와 연결하고, 콜렉터에 전원을 넣어주면, 이미터에서 빛의 유무에 따라 출력이 나오게 된다.


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

컨트롤러를 포함한 여러 가지 부품은 모두 도착을 하였습니다. 하지만, 막상 조립을 해 보려고 하니 서로 전압이 안 맞아 연결을 할 수가 없더군요. 저항을 주문하지 않았다는 사실을 그제서야 깨닫고서 저항 주문했습니다. 확실히 어느 정도의 저항을 연결해야 될지 감이 안 잡혀서 60옴 ~ 160옴 사이의 것들을 적당히 주문했습니다.

다음은 필요한 저항의 크기를 계산하는 방법입니다.

공급되는 전압을 V, LED의 소모 전압을 v, 전류를 I라고 할 때,
(V-v)/I
 가 필요한 저항의 크기입니다.
이 때 전류를 어떤 값으로 해야 될 지 몰라서 LED의 정격 전류를 잡았습니다. 보통 20~30mA입니다.


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