모터 드라이버 IC - LB1630

글 내용

  아무래도 소형 DC모터를 제어하는데 L298을 쓰는거보다는 LB1630을 사용하는게 나을것 같아 요리조리 찾아보고 구입하고, 회로구성도 하보고, 작동도 해보았습니다. 일단 데이터시트는 아래에서 다운받으시구요..ㅎㅎ

요래 생긴놈입니다...Digimax S500 / Kenox S500 / Digimax Cyber 530 | Normal program | Pattern | 1/30sec | Off Compulsory | 2009:08:09 02:39:23


얘는 아주 간단하게 제어가 가능합니다. 모터를 5번과 8번핀에 연결하고, 7번핀엔 VCC, 2번핀엔, 그리고 1번핀과 4번핀에 모터 제어 신호를 넣어줍니다. 데이터시트 열어보기 귀찮으신분들을 위해 진리표를 아래 넣어둡니다.

IN1

IN2

OUT1

OUT2

MOTOR

H

L

H

L

Forward

L

H

L

H

Reverse

H

H

off

off

Standby

L

L

off

off

Standby

쉽게말해 IN1, IN2의 값이 다르면 돌아가고 같으면 정지한다는 쉬운 진리표 되겠습니다.
단순히 저렇게 동작을 시키지만 저렇게하면 속도제어가 되지 않습니다. 그래서 여기에선 PWM으로 제어를 합니다 뭐 자세한 내용은 데이터시트를 보시고 공부를 하시고(데이터시트에도 별 내용 없습니다;;) 회로를 구성하고 동작을 시켜보겠습니다.  회로는 아래와 같이 구성하였습니다.

사용자 삽입 이미지

ATmega128은 PORTB 4번비트가 OCR0이고, PORTB7번비트가 OCR2입니다.  PWM제어를 위해 저렇게 연결을 시켜줬구요, 모터 연결하고, 5볼트 연결하고...뭐 더 할것도 없는 간단한 회로입니다.


이 회로를 만능기판에 납땜을 해서 동작시켜보겠습니다. 일단 납땜은 아래와 같이 하였습니다.

사용자 삽입 이미지Digimax S500 / Kenox S500 / Digimax Cyber 530 | Normal program | Pattern | 1/8sec | Off Compulsory | 2009:08:09 02:40:20

죄송합니다. 납땜실력이.ㅡㅡ; 오른쪽에 5볼트 배터리를 연결하고, 왼쪽에 DC모터를 연결합니다.
모터는 마부치 130모터를 사용하였습니다. (옛날에 미니카에 많이 쓰던..ㅎㅎ) 맘같아선 블랙모터 이런거(전 아오시마 모터를 주로 사용했습니다. 1996년도 당시 엄청 비쌌던 모터.. 어떻게 얻었는지는 가물가물..ㅋ)달고 싶지만 뭐 경주할거 아니니 별로 필요가 없고 FA130모터로 씁니다. 보통 13모터라고 하죠..ㅎㅎ

이제 이 모터를 구동시켜 보겠습니다. 아래 동영상을 재생해주세요~


PWM을 이용해서 OCR값을 0부터 255까지 20단계씩 버튼으로 올렸다 내렸다 하면서 작동시키는 모습입니다.
버튼을 누르면 쭉쭉쭉쭉 올라가다가 값이 255를 넘으면 오버플로가 발생해 0부터 다시 시작합니다. 그래서 모터가 빨리 돌다가 갑자기 느리게 돌아갑니다.ㅎㅎ

소스는 아래와 같습니다.

#include<avr/io.h>
#include<carroty/delay.h>
#include<compat/deprecated.h>

int main(void)
{
 DDRB=0x90;
 TCCR0=0x63;
 TCCR2=0x63;
 DDRG=0x03;
 PORTG=0x00;
 unsigned char i=0, j=200;

 while(1)
 {
  OCR2=j;
  OCR0=i;
  if((PING&0x04)==0x04) {j+=20; sbi(PORTG,0); delay_ms(100); cbi(PORTG,0); }
  if((PING&0x08)==0x08) {j-=20; sbi(PORTG,1); delay_ms(100); cbi(PORTG,1); }
 }
}



이제 이 모터 드라이버를 언능 프로젝트에 적용시켜야겠습니다^^ ㅎㅎ 일단 PCB 패턴부터 그리고.ㅡㅡ;
  1. user picture
    저 문의좀 드려도 될까요..?

    저도 dc모터 pwm 제어해서 선풍기 만드려하는데요
    • user picture
      네~ 문의 주세요! ㅋㅋ
      문의는 이메일로 자세히 써주시면 답장드리겠습니다. root@seoltang.com 입니다.
      제가 뭐 잘 아는것도 아니지만, 아는거까진 제가 알려드리지요..ㅋ
  2. user picture
    잘 보고 간다 ㅎㅎㅎ
    구글 검색하고 한참 보다 보니까 설탕이네 ㅎㅎㅎㅎ
    아참 어제 책상 위치 바꿨어 ㅎㅎ
    나 승진 캬캬캬
  3. user picture
    가뭄에 단비처럼... 잘보고 갑니다.. ㅠㅠ

    정말 제가 어떻게 해야할지 몰라서 계속 찾고 있었는데.. 정말 도움 많이 되요 ㅠㅠ

    감사합니다.. ㅠㅠ
  4. user picture
    혹시 저두 문의 드려도 될까요??ㅠㅠ DC모터 두개를 LB1630을 이용해서 제어해보려구 하는데 비전공자인데다 처음 배우는 거라 어려운 점이 정말 많아서...
    • user picture
      문의 주셔도 됩니다...ㅎㅎ
      하지만 처음부터 끝까지 이거 어떻게 하는거냐 라는 물음은 원치 않구요, 해보다가 안되는것을 질문하시면 답변 드릴게요..

      아무것도 모르고 있다면 일단 LB1630 데이터시트를 확인해보세요.. 거기에 동작 원리와 간단한 회로 구성까지 확인할 수 있습니다.
  5. user picture
    안녕하세요 ^^ 제가 지금 딱 공부한 양이 레져님께서 한 만큼 했는데요 ㅋㅋ....
    라인 트레이서를 만드려고 하는데 위의 회로도로 하면 (저도 물론 이렇게 짰지만..)
    기존 AVR에서 나오는 5V의 전압을 PWM을 이용하여 속도를 높이거나 낮추잖아요..
    근데 모터의 정격전압이 12V인 경우에는 외부전압을 가져와서 해야하는거 같은데
    이 12V를 PWM으로 제어하는 방법을 혹시 알 수 있을까해서 문의드립니다..
    만약 안된다면 5V의 전압으로 모터 구동시 로봇의 속도가 얼마정도 나오는지도
    궁금하네요 ㅎㅎㅎㅎㅎㅎ
    • user picture
      DC 모터 드라이버를 사용하면 쉽습니다. 직접 모터 구동 드라이버를 사용하여 제작하거나 모듈이 따로 나와있는것도 있습니다..
      그리고 avr에서 나오는 5v를 전원으로 모터를 바로 구동하면 avr 탑니다...ㅋ
  6. user picture
    댓글을 달아주실지 모르지만 dc모터 사이에 캐패시터는 왜달아주시는 건가요?
    저도 미니카모터를 구동해야되는데 TR로 했더니 구동이 안되네요 툭 건드려줘야 돌더라구요.
    캐패시터를 안달아서 그런가요? 캐패시터 다신 이유가 매우 궁금합니다!!
  7. user picture
    공돌공돌하다해~ 2013.11.18 17:45 신고
    저도 지금 이걸로 한번 장난치고 있는데요 ㅎㅎ 저는 아두이노 프로 미니 5V짜리를 사용해서 여기서 나오는것으로 LB1630에 연결하여 out1~2 를 진동모터에 달아서 사용하려하는데 아두이노 프로 미니 전압으로도 사용가능할까요?
  8. user picture
    수요일의아이 2013.11.25 14:42 신고
    dc모터 2개 제어을 해야해서 알아보다 알게됬었습니다. ㅎㅎ

    좋은 참고가 됐습니다. 감사합니다.
  9. user picture
    혹시 이 드라이버로 서보모터도 제어가 가능한가요 ?
    또 한가지, 서보모터 제어가 가능하다면 코딩만으로 미세한 각도 조정이 가능한 드라이버 인가요 ??
    예를 들면 서보모터를 1도씩 움직이는 모션을 구현할수 있는지요 ????

티스토리 툴바