L293D 모터 드라이버와 DC 모터를 아두이노에 연결하는 단계별 가이드
로봇이나 장난감 자동차를 설계하려면 모터에 대한 지식이 필수적입니다. 이 모터들을 제어하는 매우 비용 효율적이고 쉬운 방법은 L293D 드라이버 모터 실드를 사용하는 것입니다. 더 나아가 아두이노 같은 마이크로컨트롤러와 인터페이스해 사용하면 좋습니다.
여러 종류 중 L293D 모터 드라이버는 가장 인기 있는 칩셋 중 하나입니다. 서보, 스테퍼, DC 모터 등 다양한 전자 제작에 응용되기 때문입니다. 하지만 그 핵심 특징은 두 개의 독립적인 DC 모터의 방향과 속도 제어가 가능하다는 점입니다. 이에 대해 더 자세히 알아보겠습니다.
1. L293D 모터 드라이버란?
이 16핀 칩셋은 모터용 2채널 H-브리지 드라이버입니다. 주로 DC 모터 쌍이나 단일 스테퍼 모터를 위한 제어 인터페이스 역할을 합니다.
기본적으로 L293D 모터 드라이버 실드 칩셋은 두 개씩 제공됩니다. 따라서 네 개의 DC 모터를 구동할 수 있습니다. 이 때문에 L293D 칩셋은 4륜 로봇 제작에 귀중한 자산입니다.
총 네 개의 H-브리지를 제공합니다. 각 H-브리지는 0.6A의 모터 전류를 공급합니다. 또한 74HC595 시프트 레지스터가 실드 특징입니다. 이 레지스터는 듀얼 L293D IC의 8개 제어 핀을 아두이노의 4개 디지털 핀으로 확장합니다.
(쿼드러플 하이커런트 H-브리지 16핀 L293D 모터 드라이버)
2. L293D 모터 드라이버 특징
CNC 및 로봇 프로젝트에서 L293D 모터 드라이버를 좋은 구성 요소로 만드는 특징들:
- 적용 기기의 방향과 속도 레벨 제어 가능
- 두 개의 유사한 듀얼 DC 모터 구동 가능
- 모터 전압 Vs(Vcc2): 4.5V ~ 36V
- 최대 연속 모터 전류: 600mA
- 최대 피크 모터 전류: 1.2A
- 로직 공급 전압 Vss(Vcc1): 4.5V ~ 7V
- 천이 시간: 5V~24V에서 최대 300ns
- 열 활성화로 자동 셧다운 가능
- SOIC, DIP, TSSOP 패키지로 제공
3. L293D 모터 드라이버 실드 출력 핀 구성
(바이폴라 L293D 스테퍼 모터 드라이버 핀 다이어그램)
| 핀 번호 | 핀 이름 | 핀 설명 |
| 1 | Enable 1,2 | 입력 핀 활성화: Input 1(2), Input 2(7) |
| 2 | Input Pin 1 | Output 1 핀 직접 제어. 주로 디지털 회로 제어에 적용 |
| 3 | Output Pin 1 | 모터 1 한 쪽 끝 연결 |
| 4 | Ground | 한쪽 끝이 회로 그라운드(0V) 연결 |
| 5 | Ground | 다른 쪽 그라운드 핀(0V) |
| 6 | Output Pin 2 | Output Pin 1처럼 모터 1 다른 쪽 끝 연결 |
| 7 | Input Pin 2 | Output 2 핀 직접 제어. 디지털 회로 제어에도 적용 |
| 8 | Vs (Vcc2) | 4.5V-36V 정격, 전압 핀 연결로 모터에 전원 공급 |
| 9 | Enable 3,4 | 입력 핀 활성화: Input 3(10), Input 4(15) |
| 10 | Input 3 | Output 3 핀 직접 제어. 또 다른 디지털 회로 제어 아웃렛 |
| 11 | Output 3 | 모터 2 한 쪽 끝 연결 |
| 12 | Ground | 회로 그라운드(0V) 연결 |
| 13 | Ground | 또 다른 그라운드 핀, 회로 그라운드(0V) 연결 |
| 14 | Output 4 | Output 3처럼 모터 2 다른 쪽 끝 연결 |
| 15 | Input 4 | Output 4 핀 직접 제어. 디지털 회로 제어 기능도 함 |
| 16 | Vss (Vcc1) | IC 공급용 외부 전압 +5V 연결 |
4. L293D 모터 드라이버 동작 원리
앞서 강조했듯 L293D 모터 드라이버는 듀얼 DC 모터를 제어할 수 있습니다. 따라서 이 듀얼 채널 H-브리지 IC가 어떻게 작동하는지 이해하는 게 중요합니다.
(5볼트 유니폴라 모터가 L293D와 연결된 다이어그램)
동작 원리의 첫 단계는 H-브리지 설정입니다. 즉, Q2/Q3와 Q1/Q4라 부르는 달링턴 트랜지스터 두 쌍을 사용합니다. 각각 컬렉터와 에미터에 다이오드가 연결돼 모터 발생 역기전력(Back EMF)으로부터 트랜지스터를 보호합니다.
트랜지스터 Q1/Q4가 ON이면 Q2/Q3는 OFF됩니다. 따라서 Vcc에서 모터를 거쳐 그라운드로 전류가 흐릅니다.
이 동작으로 모터가 시계/반시계 방향으로 회전합니다. 요약하면 모터 극성과 전원 연결 방식이 회전 방향을 결정합니다.
반면 Q1/Q4 트랜지스터가 OFF이면 Q2/Q3가 자동으로 ON됩니다. 따라서 모터를 통한 전류 흐름이 역전됩니다. 이 역전류가 흐르면 모터 회전 방향도 바뀝니다.
5. L293D 모터 드라이버 사용법
앞서 언급했듯 L293D 모터 드라이버는 약 600mA 양방향 드라이브 전류와 4.5V~36V 범위를 사용합니다. 하지만 이 기능들은 아두이노 우노와 이 16핀 모터 드라이버 칩을 함께 쓸 때 해당됩니다.
DC 모터와 L293D를 아두이노에 연결하는 프로젝트를 소개합니다. DC 모터 방향과 속도를 제어하는 회로 설정 단계별 절차입니다.
1단계: 프로젝트 필요한 재료 준비
- 10K 포텐셔미터 2개
- L293D 모터 드라이버 칩셋
- 소형 DC 모터 2개
- 아두이노 우노 또는 아두이노 프로 미니
- 브레드보드
- 점퍼 와이어
2단계: 회로 구성
이 회로에 필요한 연결은 꽤 직관적입니다.
더 명확한 설명을 위해 동영상 튜토리얼을 이용해 회로를 구성합니다.
모터는 완전히 별도 전원 공급을 쓰는 게 좋습니다. 여기서는 모터용 12V를 사용합니다. 반면 L293D와 아두이노에는 5V 전원을 공급합니다.
주의: 외부 전원은 L293D 핀 8로 갑니다. 이 연결 시 주의하세요. 그렇지 않으면 모터 손상 위험이 있습니다.
3단계: DC 모터 프로그래밍 코드
두 가지 기본 단계가 필요합니다.
AFMotor.h 라이브러리 설치
우선 L293D IC와 통신할 매체가 필요합니다. AFMotor.h 라이브러리를 설치해야 합니다.
이 라이브러리로 DC, 솔레노이드, 스테퍼 모터를 제어하는 명령어를 내릴 수 있습니다.
AFMotor.h 라이브러리 설치 방법: 스케치(Sketch) → '라이브러리 포함(Include Library)' → '라이브러리 관리(Manage Libraries)' 순으로 이동. 라이브러리 매니저가 설치된 라이브러리 목록을 업데이트하며 인덱스를 다운로드합니다.
이후 검색 필터로 'Motor Shield'를 찾습니다. 항목 중 Adafruit의 'Adafruit Motor Shield Library'를 선택하고 설치 클릭.
아두이노 코드 실행
다음 아두이노 코드를 실행합니다:
#include <AFMotor.h>
AF_DCMotor motor(4);
void setup() {
// 모터 시작 속도 설정 & 정지
motor.setSpeed(200);
motor.run(RELEASE);
}
void loop() {
uint8_t i;
// 모터 켜기
motor.run(FORWARD);
// 0에서 최대 속도로 가속
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}
// 최대 속도에서 0으로 감속
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(10);
}
// 모터 방향 변경
motor.run(BACKWARD);
// 0에서 최대 속도로 가속
for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}
// 최대 속도에서 0으로 감속
for (i=255; i!=0; i--) {
motor.setSpeed(i);
delay(10);
}
// 모터 끄기
motor.run(RELEASE);
delay(1000);
}
4단계: 설정 완료
이 단계에서 DIY 회로 설정이 완료됩니다. 이제 이 L293D 칩과 아두이노 우노 마이크로컨트롤러로 모든 DC 모터 장치에 대한 제어 메커니즘을 갖게 됩니다.
6. L293D 동등 듀얼 타이머 IC
L293D와 유사한 다른 IC들: ULN2003, SN754410, LB1909MC.
(PCB 위의 ULN2003 IC, 라벨된 핀과 연결점 표시)
7. L293D 응용 분야
- 고전류 LED 장치 구동에 도움
- 디지털 회로로 제어되는 고전류 모터(로봇 등)에 적용
- L293D 드라이버는 스테퍼와 모터 전반에 필수적
- 릴레이 드라이버 모듈용. 래칭 릴레이 구현 가능
요약
아두이노로 DC 모터를 제어하는 방법은 이 외에도 여러 가지가 있습니다. 하지만 가장 쉬운 방법 중 하나는 L293D 모터 드라이버 IC를 사용하는 것입니다. L293D IC는 두 개의 개별 DC 모터 속도와 방향을 동시에 제어하는 이점을 줍니다.
결론적으로 이 IC로 DC 모터 설정과 프로그래밍하는 법을 배웠습니다. 하지만 더 도전적인 걸 시도하고 싶으실 수도 있습니다. 더 많은 튜토리얼은 연락처 페이지로 문의해 주시면 완벽한 가이드를 제공해 드리겠습니다.