보드 핀으로 모터를 직접 돌리면 왜 위험할까
LED를 켤 때는 제어 보드의 GPIO 핀 하나와 저항만으로도 충분했습니다. 버튼 입력도 마찬가지였습니다. 하지만 모터는 다릅니다. 모터는 전기를 먹고 실제 힘을 만들어내는 부품입니다. 바퀴를 돌리고, 팔을 움직이고, 기어를 밀어붙입니다. 이 과정에서 순간적으로 꽤 큰 전류가 흐릅니다.
아두이노, ESP32, 라즈베리파이의 GPIO 핀은 신호를 내보내는 용도입니다. 즉, 켜라, 꺼라, 빠르게 깜빡여라 같은 명령을 전달하는 작은 스위치에 가깝습니다. 반대로 DC 모터는 실제 일을 하는 부하입니다. 특히 멈춰 있던 모터가 처음 돌기 시작할 때, 바퀴가 바닥에 눌려 있을 때, 로봇이 장애물에 걸렸을 때는 평소보다 훨씬 큰 전류를 요구합니다.
여기서 초보자가 자주 하는 위험한 실수가 나옵니다.
모터의 한쪽 선을 보드의 출력 핀에 꽂고, 다른 한쪽을 GND에 꽂는 것입니다. 작은 진동 모터나 장난감 모터라면 순간적으로 도는 것처럼 보일 수도 있습니다. 하지만 운이 좋았을 뿐입니다. 이런 연결은 GPIO 핀을 망가뜨리거나, 보드 전체를 재부팅시키거나, 심하면 칩을 손상시킬 수 있습니다.
모터 드라이버는 바로 이 문제를 해결하기 위해 사용합니다. 제어 보드는 작은 신호만 보내고, 모터 드라이버가 별도의 모터 전원에서 큰 전류를 끌어와 모터에 공급합니다. 다시 말해 제어 보드는 운전석의 핸들이고, 모터 드라이버는 엔진과 바퀴 사이의 동력 전달 장치입니다.

모터 드라이버가 하는 일
모터 드라이버의 역할은 단순히 전원을 대신 공급하는 것만이 아닙니다. 로봇에서 드라이버는 모터를 안전하고 원하는 방식으로 움직이기 위한 중간 관리자입니다.
모터 드라이버는 보통 다음 일을 맡습니다.
제어 보드의 약한 신호로 모터에 필요한 큰 전류를 제어한다.
모터 양단에 걸리는 전압 방향을 바꾸어 정회전과 역회전을 만든다.
PWM 신호를 이용해 모터의 평균 출력, 즉 속도를 조절한다.
모터에서 발생하는 역기전력과 노이즈가 제어 보드로 직접 들어가는 것을 줄인다.
과전류, 과열, 역전압 같은 위험을 어느 정도 완화한다.
여기서 역기전력이라는 말이 조금 낯설 수 있습니다. 모터는 전기를 넣으면 회전하지만, 반대로 회전하는 동안 발전기처럼 전기를 만들어내기도 합니다. 특히 갑자기 멈추거나 방향을 바꿀 때 모터 내부 코일에서 순간적인 전압 튐이 생깁니다. 이런 전기적 충격이 제어 보드로 들어가면 센서값이 이상해지거나 보드가 재부팅될 수 있습니다.
그래서 로봇을 만들 때는 모터를 제어 보드에 직접 연결하지 않고, 반드시 모터 드라이버를 사이에 둡니다. 이 원칙 하나만 지켜도 많은 고장을 피할 수 있습니다.
H-Bridge: 모터 방향을 바꾸는 네 개의 스위치
DC 모터의 회전 방향은 아주 단순한 원리로 바뀝니다. 모터 양단에 걸리는 전압 방향을 뒤집으면 됩니다. 왼쪽 단자에 +, 오른쪽 단자에 -를 걸면 한 방향으로 돌고, 왼쪽 단자에 -, 오른쪽 단자에 +를 걸면 반대 방향으로 돕니다.
문제는 이 전압 방향을 전자적으로 어떻게 뒤집느냐입니다. 매번 손으로 배터리 선을 바꿔 꽂을 수는 없습니다. 로봇이 앞으로 가다가 뒤로 가고, 왼쪽으로 돌고, 장애물을 피하려면 제어 보드가 신호만으로 방향을 바꿀 수 있어야 합니다.
이때 사용하는 기본 회로가 H-Bridge입니다. 이름 그대로 회로 모양이 알파벳 H처럼 생겼다고 해서 붙은 이름입니다. 가운데 가로줄에 모터가 있고, 양쪽 위아래에 네 개의 스위치가 있다고 생각하면 됩니다.
전원 + 스위치 A 스위치 B 전원 +
| |
|--- 모터 ---|
| |
GND 스위치 C 스위치 D GND실제 회로는 트랜지스터나 MOSFET 같은 전자 스위치로 만들어지지만, 처음에는 진짜 스위치 네 개라고 생각해도 좋습니다.
모터를 정회전시키려면 대각선 방향의 스위치 두 개를 켭니다. 예를 들어 A와 D를 켜면 전류가 왼쪽에서 오른쪽으로 흐릅니다. 반대로 B와 C를 켜면 전류가 오른쪽에서 왼쪽으로 흐르고 모터는 역회전합니다.
| 상태 | 켜지는 스위치 | 모터 양단 전압 | 결과 |
|---|---|---|---|
| 정회전 | A, D | 왼쪽 + / 오른쪽 - | 앞으로 회전 |
| 역회전 | B, C | 왼쪽 - / 오른쪽 + | 반대로 회전 |
| 브레이크 | 위쪽 둘 또는 아래쪽 둘 | 양단이 같은 전위에 가까움 | 빠르게 멈춤 |
| 코스트 | 모두 꺼짐 | 전원 공급 없음 | 관성으로 서서히 멈춤 |
여기서 아주 중요한 금지 동작이 있습니다. 같은 쪽의 위아래 스위치를 동시에 켜면 안 됩니다. 예를 들어 A와 C를 동시에 켜면 전원 +와 GND가 거의 직접 연결됩니다. 이것은 쇼트입니다. 큰 전류가 순간적으로 흐르고, 드라이버가 뜨거워지거나 망가질 수 있습니다.
좋은 모터 드라이버 칩은 이런 위험한 상태를 피하도록 내부 보호 구조를 갖추고 있기도 합니다. 하지만 보호 회로가 있다고 해서 아무렇게나 연결해도 된다는 뜻은 아닙니다. 로봇 제작에서 보호 회로는 안전벨트와 같습니다. 사고를 줄여주지만, 일부러 벽에 부딪혀도 된다는 의미는 아닙니다.
드라이버 모듈의 단자 읽기
처음 모터 드라이버 모듈을 보면 핀이 많아서 겁이 납니다. 하지만 대부분의 드라이버 모듈은 구조가 비슷합니다. 단자를 역할별로 나누면 훨씬 쉽게 이해됩니다.
모터 드라이버에는 보통 전원 단자, 제어 신호 단자, 모터 출력 단자가 있습니다. 전원 단자는 다시 두 종류로 나뉩니다. 하나는 모터를 실제로 돌리는 모터 전원이고, 다른 하나는 드라이버 칩의 논리 회로가 동작하기 위한 로직 전원입니다.
| 구분 | 흔한 표기 | 역할 |
|---|---|---|
| 모터 전원 | VM, VS, MOTOR VCC, 12V | 모터에 공급되는 전원 |
| 로직 전원 | VCC, 5V, 3V3 | 드라이버 내부 논리 회로용 전원 |
| 공통 접지 | GND | 보드와 드라이버가 기준으로 삼는 0V |
| 제어 입력 | IN1, IN2, AIN1, AIN2 | 방향 제어 신호 |
| 속도 입력 | ENA, ENB, PWM, PWMA | PWM으로 속도 제어 |
| 모터 출력 | OUT1, OUT2, A01, A02 | 모터 두 선이 연결되는 곳 |
여기서 가장 중요한 것은 GND입니다. 모터 전원은 별도로 사용하더라도 제어 보드의 GND와 모터 드라이버의 GND는 반드시 연결해야 합니다. 그래야 제어 보드가 보내는 HIGH와 LOW 신호를 드라이버가 같은 기준으로 이해할 수 있습니다.
예를 들어 ESP32가 어떤 핀에 3.3V를 출력했다고 해봅시다. 이 3.3V는 ESP32의 GND를 기준으로 한 값입니다. 그런데 드라이버의 GND가 ESP32의 GND와 연결되어 있지 않으면, 드라이버 입장에서는 그 신호가 정확히 3.3V인지 알 수 없습니다. 신호가 흔들리거나 아예 동작하지 않을 수 있습니다.
따라서 모터 회로의 기본 연결은 이렇게 기억하면 됩니다.
모터 전원은 모터 드라이버의 모터 전원 단자에 연결한다.
제어 보드의 GPIO는 드라이버의 입력 핀에 연결한다.
제어 보드 GND와 드라이버 GND, 모터 전원 GND를 공통으로 연결한다.
모터는 제어 보드가 아니라 드라이버의 출력 단자에 연결한다.
이 네 줄이 모터 드라이버 배선의 뼈대입니다.
L298N 계열 드라이버: 튼튼하지만 뜨거운 고전
로봇을 처음 검색하면 가장 자주 보이는 모터 드라이버 모듈 중 하나가 L298N 계열입니다. 빨간색 기판, 큼직한 방열판, 나사 단자대가 달린 모듈을 본 적이 있을 것입니다. 교육용 키트나 입문용 바퀴 로봇에서 오래 사용되어 왔습니다.
L298N은 두 개의 DC 모터를 각각 정회전, 역회전으로 제어할 수 있습니다. 그래서 2륜 로봇에 많이 쓰입니다. 왼쪽 모터 하나, 오른쪽 모터 하나를 연결하면 전진, 후진, 좌회전, 우회전을 만들 수 있습니다.
일반적인 L298N 모듈은 다음과 같은 방식으로 제어합니다.
| 핀 | 역할 |
|---|---|
| IN1, IN2 | A 모터 방향 제어 |
| ENA | A 모터 속도 제어 또는 활성화 |
| IN3, IN4 | B 모터 방향 제어 |
| ENB | B 모터 속도 제어 또는 활성화 |
| OUT1, OUT2 | A 모터 연결 |
| OUT3, OUT4 | B 모터 연결 |
| VS 또는 12V | 모터 전원 입력 |
| GND | 공통 접지 |
| 5V | 로직 전원 또는 모듈 내 레귤레이터 출력 |
방향 제어는 간단합니다. IN1을 HIGH, IN2를 LOW로 하면 한 방향으로 돌고, IN1을 LOW, IN2를 HIGH로 하면 반대로 돕니다. 둘 다 LOW로 두거나 ENA를 끄면 모터는 멈춥니다. ENA에 PWM을 넣으면 속도를 조절할 수 있습니다.
L298N의 장점은 다루기 쉽고, 모듈이 흔하고, 단자대가 커서 배선하기 편하다는 점입니다. 방열판이 달려 있어서 초보자가 보기에도 힘이 세 보입니다. 실제로 작은 실습용 모터를 천천히 돌려보는 용도라면 충분히 사용할 수 있습니다.
하지만 L298N에는 중요한 한계가 있습니다. 전압 강하와 발열입니다.
L298N은 내부 구조상 모터에 공급되는 전압 일부가 드라이버 안에서 소모됩니다. 예를 들어 배터리에서 7.4V를 넣었는데 모터에는 그보다 낮은 전압이 걸릴 수 있습니다. 이 차이는 열로 바뀝니다. 그래서 모터를 조금 오래 돌리면 방열판이 뜨거워질 수 있습니다.
이 현상은 로봇에서는 생각보다 큰 문제입니다. 배터리로 움직이는 로봇은 전기를 아껴 써야 합니다. 그런데 드라이버가 전압을 많이 떨어뜨리고 열을 많이 내면, 같은 배터리를 사용해도 모터 힘은 줄고 사용 시간은 짧아집니다. 특히 작은 바퀴 로봇에서 L298N을 쓰면 모터가 기대보다 약하게 돌거나, 출발할 때 힘이 부족하게 느껴질 수 있습니다.
또 하나의 주의점은 모듈의 5V 단자입니다. 많은 L298N 모듈에는 점퍼와 5V 레귤레이터가 달려 있습니다. 어떤 모듈은 모터 전원이 일정 전압 이상일 때 내부에서 5V를 만들어 로직 전원으로 사용합니다. 하지만 모듈마다 구조가 다르고, 점퍼 설정에 따라 5V 단자가 입력이 되기도 하고 출력이 되기도 합니다. 설명서를 확인하지 않고 제어 보드의 5V와 모듈의 5V를 무작정 연결하면 원치 않는 전원 충돌이 생길 수 있습니다.
따라서 L298N을 사용할 때는 다음을 꼭 확인해야 합니다.
모터 전원 전압이 모터와 드라이버의 허용 범위 안에 있는가.
ENA, ENB 점퍼를 꽂아 둘 것인지, PWM 핀에 연결할 것인지 정했는가.
모듈의 5V 단자가 입력인지 출력인지 확인했는가.
방열판이 너무 뜨거워지지 않는가.
모터가 부하를 받았을 때 드라이버가 버틸 수 있는가.
L298N은 나쁜 드라이버가 아닙니다. 다만 오래된 방식의 드라이버이고, 효율이 좋지 않은 편입니다. 책상 위에서 원리를 배우는 데는 괜찮지만, 배터리로 오래 움직이는 소형 로봇을 만들 때는 더 효율적인 드라이버를 고려하는 것이 좋습니다.
TB6612 계열 드라이버: 작은 로봇에 잘 어울리는 선택
TB6612 계열 드라이버는 소형 바퀴 로봇에서 자주 사용됩니다. L298N보다 모듈이 작고, 발열이 적고, 효율이 좋은 편입니다. 내부에 MOSFET 기반 스위치를 사용하기 때문에 전압 손실이 상대적으로 작습니다. 쉽게 말해 배터리에서 나온 전기를 더 많이 모터로 보내고, 드라이버 안에서 열로 버리는 양이 적습니다.
작은 2륜 로봇, 라인트레이서, 미니 장애물 회피 자동차를 만들 때는 이 차이가 꽤 크게 느껴집니다. 같은 배터리와 같은 모터를 사용해도 TB6612 계열 드라이버를 쓰면 모터가 더 경쾌하게 도는 경우가 많습니다. 특히 3.7V 리튬 배터리 한 개나 2셀 배터리처럼 전압 여유가 크지 않은 환경에서는 전압 손실이 적은 드라이버가 유리합니다.
일반적인 TB6612 모듈에는 다음과 같은 핀이 있습니다.
| 핀 | 역할 |
|---|---|
| VM | 모터 전원 |
| VCC | 로직 전원 |
| GND | 공통 접지 |
| AIN1, AIN2 | A 모터 방향 제어 |
| PWMA | A 모터 속도 제어 |
| BIN1, BIN2 | B 모터 방향 제어 |
| PWMB | B 모터 속도 제어 |
| STBY | 대기 모드 제어 |
| A01, A02 | A 모터 출력 |
| B01, B02 | B 모터 출력 |
L298N과 비교했을 때 TB6612에서 눈에 띄는 핀은 STBY입니다. STBY는 standby, 즉 대기 모드 핀입니다. 이 핀이 LOW이면 드라이버가 대기 상태가 되어 모터가 동작하지 않습니다. 모터를 움직이려면 STBY를 HIGH로 만들어야 합니다. 초보자가 TB6612를 연결하고도 모터가 전혀 돌지 않는다면, STBY 핀을 확인해야 합니다.
TB6612는 ESP32나 라즈베리파이처럼 3.3V 신호를 사용하는 보드와도 잘 어울리는 경우가 많습니다. 물론 사용하는 모듈의 로직 전압 범위를 확인해야 하지만, 소형 로봇에서는 3.3V 제어 신호를 안정적으로 받아들이는 드라이버가 편리합니다. 아두이노 우노처럼 5V 로직을 사용하는 보드에서도 흔히 사용할 수 있습니다.
다만 TB6612도 만능은 아닙니다. 모듈이 작다는 것은 방열 면적도 작다는 뜻입니다. 작은 모터에는 잘 맞지만, 전류를 많이 먹는 큰 DC 모터나 무거운 로봇에는 부족할 수 있습니다. 드라이버가 작고 효율이 좋다고 해서 정격 전류를 넘겨도 되는 것은 아닙니다.
L298N과 TB6612를 아주 단순히 비교하면 다음과 같습니다.
| 항목 | L298N 계열 | TB6612 계열 |
|---|---|---|
| 크기 | 비교적 큼 | 작음 |
| 효율 | 낮은 편 | 높은 편 |
| 발열 | 많은 편 | 적은 편 |
| 전압 강하 | 큰 편 | 작은 편 |
| 입문 자료 | 매우 많음 | 많음 |
| 소형 배터리 로봇 | 가능하지만 비효율적일 수 있음 | 잘 어울림 |
| 큰 부하 | 모듈에 따라 한계 큼 | 소형 모터 중심 |
입문자가 가장 많이 만드는 로봇이 작은 바퀴 두 개짜리 자동차라면, TB6612 계열은 좋은 출발점입니다. 선이 조금 더 많아 보일 수 있지만, 한 번 구조를 이해하면 L298N보다 전원 효율 면에서 더 만족스러운 결과를 얻을 가능성이 큽니다.
전류 용량: 숫자를 어떻게 읽어야 할까
모터 드라이버를 고를 때 가장 중요한 숫자는 전압과 전류입니다. 전압은 모터와 배터리가 맞아야 하고, 전류는 드라이버가 감당할 수 있어야 합니다. 그런데 전류를 볼 때 많은 사람이 실수합니다. 모터의 무부하 전류만 보고 드라이버를 고르는 것입니다.
무부하 전류는 모터가 아무것도 하지 않고 공중에서 가볍게 돌 때 흐르는 전류입니다. 바퀴가 바닥에 닿지 않은 상태에서 윙 하고 도는 정도입니다. 하지만 로봇은 실제로 바닥을 밀고 움직입니다. 바퀴에는 마찰이 있고, 로봇 몸체에는 무게가 있고, 출발 순간에는 관성이 있습니다.
더 중요한 값은 정지 전류 또는 스톨 전류입니다. 스톨은 모터 축이 멈춘 상태를 뜻합니다. 모터에 전원을 넣었는데 축이 돌지 못할 때 가장 큰 전류가 흐릅니다. 로봇이 벽에 걸렸거나 바퀴가 손으로 잡힌 상태를 떠올리면 됩니다. 이때 드라이버와 배터리는 큰 부담을 받습니다.
모터 전류는 보통 다음 세 가지로 나누어 생각하면 좋습니다.
무부하 전류: 모터가 아무 부하 없이 돌 때의 작은 전류.
연속 전류: 실제 동작 중 계속 흘러도 되는 평균적인 전류.
순간 전류: 출발, 충돌, 급정지, 바퀴 걸림 때 짧게 흐르는 큰 전류.
드라이버 데이터에서 말하는 전류 용량도 비슷하게 읽어야 합니다. 어떤 모듈은 채널당 연속 전류와 순간 피크 전류를 따로 표시합니다. 예를 들어 짧은 시간 동안은 큰 전류를 버틸 수 있지만, 계속 그렇게 사용하면 과열될 수 있습니다. 피크 전류만 보고 드라이버를 고르면 실제 주행 중 드라이버가 뜨거워지고 보호 모드에 들어가거나 손상될 수 있습니다.
실전에서는 여유를 두는 것이 중요합니다. 모터가 정상 주행 중 채널당 700mA 정도를 사용한다면, 연속 전류 700mA를 겨우 만족하는 드라이버보다 그보다 넉넉한 드라이버를 고르는 편이 안전합니다. 특히 로봇이 카펫 위를 달리거나, 무거운 배터리를 싣거나, 경사로를 오르는 경우에는 전류가 쉽게 늘어납니다.
전류를 직접 측정할 때도 주의해야 합니다. 멀티미터를 전류 측정 모드로 잘못 연결하면 쇼트가 날 수 있습니다. 가능하면 전류 제한 기능이 있는 실험용 전원 공급 장치를 사용하거나, 퓨즈가 있는 측정 환경에서 천천히 확인하는 것이 좋습니다. 초보 단계에서는 모터 데이터시트나 판매 페이지에 있는 정격 전류와 스톨 전류를 먼저 확인하고, 드라이버에는 충분한 여유를 두는 방식이 안전합니다.
발열은 드라이버의 솔직한 신호다
전자 부품은 거짓말을 잘하지 않습니다. 힘들면 뜨거워집니다. 모터 드라이버도 마찬가지입니다. 회로가 뜨겁다는 것은 전력 일부가 열로 사라지고 있다는 뜻입니다. 열이 조금 나는 것은 자연스러운 일이지만, 손을 대기 어려울 정도로 뜨거우면 설계를 다시 봐야 합니다.
발열은 여러 이유로 생깁니다. 드라이버 내부 저항이 크거나, 전압 강하가 크거나, 모터가 너무 많은 전류를 요구하거나, 방열이 부족할 수 있습니다. 로봇 안에 드라이버를 밀폐해 넣어 공기가 통하지 않는 경우에도 온도가 올라갑니다.
발열을 줄이려면 먼저 모터와 드라이버의 조합이 맞는지 확인해야 합니다. 작은 드라이버로 큰 모터를 억지로 돌리는 것은 좋은 설계가 아닙니다. 다음으로 배터리 전압이 적절한지 봐야 합니다. 모터 정격보다 지나치게 높은 전압을 넣고 PWM으로만 낮춰 쓰면 순간 전류와 발열이 커질 수 있습니다. 배선이 너무 가늘거나 길어도 전압 강하와 발열이 생깁니다.
방열판을 붙이면 어느 정도 도움이 됩니다. 하지만 방열판은 근본 해결책이 아니라 열을 조금 더 잘 버리게 해주는 장치입니다. 드라이버가 계속 과열된다면 더 큰 전류를 감당할 수 있는 드라이버로 바꾸거나, 모터를 바꾸거나, 기어비와 바퀴 크기를 다시 설계해야 합니다.
로봇을 처음 움직일 때는 10초, 30초, 1분처럼 짧게 테스트하면서 드라이버 온도를 확인하는 습관을 들이세요. 손가락으로 바로 칩을 누르기보다는 먼저 가까이 대어 열기를 느껴보고, 너무 뜨거우면 전원을 끄는 것이 안전합니다. 뜨겁고 탄 냄새가 난다면 이미 부품이 한계에 가까워졌다는 신호입니다.
브레이크와 코스트: 멈춤에도 성격이 있다
모터를 멈춘다는 말은 하나처럼 들리지만, 실제로는 두 가지 느낌이 있습니다. 하나는 전원을 끊어 바퀴가 관성으로 서서히 멈추게 하는 방식이고, 다른 하나는 모터 양단을 전기적으로 묶어 더 빠르게 멈추게 하는 방식입니다. 앞의 방식은 코스트, 뒤의 방식은 브레이크라고 부릅니다.
코스트는 자전거 페달을 멈췄을 때 바퀴가 한동안 굴러가는 것과 비슷합니다. 모터에 전력을 주지 않으니 부드럽게 멈춥니다. 하지만 정지 위치가 정확하지 않고, 경사로나 외부 힘에 쉽게 밀릴 수 있습니다.
브레이크는 모터를 더 적극적으로 멈추는 방식입니다. H-Bridge에서 모터 양단을 같은 전위로 묶으면 모터가 발전기처럼 만든 전류가 자기 회전을 방해하는 방향으로 작용합니다. 그래서 더 빨리 멈춥니다. 라인트레이서처럼 빠르게 방향을 바꾸는 로봇에서는 브레이크가 도움이 될 수 있습니다.
하지만 브레이크를 자주 강하게 쓰면 드라이버와 모터에 부담이 생길 수 있습니다. 빠르게 달리던 로봇을 계속 급정지시키면 기계적으로도 충격이 큽니다. 실전에서는 속도를 서서히 줄인 뒤 멈추는 방법을 함께 사용합니다. 뒤에서 제어를 배울 때 감속과 정지 제어를 다시 다루게 됩니다.
모터 드라이버 선택 절차
이제 실제로 드라이버를 고르는 절차를 정리해 봅시다. 부품 쇼핑몰에서 드라이버 모듈을 볼 때 가격이나 모양만 보고 고르면 실패하기 쉽습니다. 로봇의 무게, 모터의 전류, 배터리 전압, 제어 보드의 로직 전압을 함께 봐야 합니다.
첫째, 사용할 모터의 정격 전압을 확인합니다. 3V 모터인지, 6V 모터인지, 12V 모터인지 알아야 합니다. 배터리 전압과 모터 정격이 크게 어긋나면 모터가 약하게 돌거나 과열될 수 있습니다.
둘째, 모터의 전류를 확인합니다. 가능하면 무부하 전류뿐 아니라 스톨 전류도 확인합니다. 드라이버는 정상 주행 전류뿐 아니라 출발 순간과 바퀴 걸림 상황도 버틸 수 있어야 합니다.
셋째, 드라이버의 채널 수를 확인합니다. DC 모터 하나만 돌리면 1채널이면 충분하지만, 2륜 로봇은 좌우 모터를 따로 제어해야 하므로 2채널 드라이버가 필요합니다. 4륜 로봇도 좌우를 묶어 제어할지, 네 바퀴를 각각 제어할지에 따라 필요한 채널 수가 달라집니다.
넷째, 제어 보드의 로직 전압과 호환되는지 확인합니다. 아두이노 우노는 보통 5V 로직을 사용하고, ESP32와 라즈베리파이는 3.3V 로직을 사용합니다. 드라이버가 3.3V 입력을 HIGH로 인식하지 못하면 모터가 불안정하게 동작할 수 있습니다.
다섯째, 발열과 공간을 고려합니다. 로봇 내부에 드라이버를 넣을 공간이 충분한지, 방열판이나 공기 흐름을 확보할 수 있는지 확인합니다. 소형 로봇에서는 드라이버의 크기와 배선 방향도 생각보다 중요합니다.
마지막으로, 여유를 둡니다. 로봇은 책상 위 회로보다 훨씬 거친 환경에서 움직입니다. 바퀴가 걸리고, 배터리 전압이 떨어지고, 선이 흔들리고, 모터가 동시에 출발합니다. 드라이버의 정격이 계산값에 딱 맞는다면 이미 부족할 가능성이 큽니다.
정리하면 다음 순서로 고르면 됩니다.
모터 정격 전압과 배터리 전압을 맞춘다.
모터의 연속 전류와 순간 전류를 확인한다.
드라이버의 채널당 연속 전류가 충분히 여유 있는지 본다.
드라이버의 피크 전류가 출발 순간과 스톨 상황을 버틸 수 있는지 본다.
제어 보드의 3.3V 또는 5V 로직과 호환되는지 확인한다.
발열, 크기, 배선 편의성, 보호 기능을 함께 고려한다.
이 절차를 따르면 모터 드라이버 선택이 훨씬 덜 막막해집니다.
아두이노, ESP32, 라즈베리파이에서의 연결 감각
아두이노로 모터 드라이버를 제어할 때는 디지털 출력 핀 두 개로 방향을 정하고, PWM 핀 하나로 속도를 조절하는 방식이 흔합니다. 아두이노 우노에서는 PWM 가능한 핀이 정해져 있으므로 ENA나 PWMA 같은 속도 제어 핀을 PWM 핀에 연결해야 합니다.
ESP32는 PWM 기능을 비교적 유연하게 사용할 수 있고, Wi-Fi나 Bluetooth와 결합하기 좋습니다. 스마트폰에서 명령을 보내고 ESP32가 모터 드라이버를 제어하는 구조를 만들기 쉽습니다. 다만 ESP32의 GPIO는 3.3V 로직이므로 드라이버가 3.3V 입력을 확실히 인식하는지 확인해야 합니다.
라즈베리파이는 리눅스가 돌아가는 작은 컴퓨터입니다. 카메라 처리, 웹 서버, OpenCV 같은 작업에는 강하지만, 모터를 직접 구동하는 장치는 아닙니다. 라즈베리파이의 GPIO 역시 큰 전류를 공급할 수 없으므로 반드시 모터 드라이버를 사용해야 합니다. 또한 라즈베리파이도 3.3V 로직이므로 드라이버 입력 전압 호환성을 확인해야 합니다.
어떤 보드를 쓰든 기본 원칙은 같습니다. 보드는 판단하고, 드라이버는 전력을 다루고, 모터는 움직입니다. 이 역할 분리를 이해하면 로봇 회로가 훨씬 깔끔해집니다.
자주 생기는 문제와 빠른 점검
모터 드라이버를 연결했는데 모터가 돌지 않는 일은 흔합니다. 이때 무작정 코드를 고치기 전에 전원과 배선을 먼저 확인해야 합니다. 대부분의 문제는 코드보다 배선에서 시작됩니다.
가장 먼저 볼 것은 GND입니다. 제어 보드와 드라이버의 GND가 연결되어 있지 않으면 신호가 제대로 전달되지 않습니다. 두 번째는 모터 전원입니다. USB로 아두이노에 전원을 넣었다고 해서 모터 전원까지 자동으로 공급되는 것은 아닙니다. 모터 드라이버의 VM 또는 VS 단자에 별도의 모터 전원이 들어가야 합니다.
세 번째는 활성화 핀입니다. L298N에서는 ENA, ENB 점퍼나 PWM 연결을 확인해야 합니다. TB6612에서는 STBY가 HIGH인지 확인해야 합니다. 방향 핀을 아무리 바꿔도 활성화 핀이 꺼져 있으면 모터는 움직이지 않습니다.
네 번째는 전류 부족입니다. 모터가 순간적으로 움찔하고 보드가 재부팅된다면 배터리나 전원 공급 장치가 충분한 전류를 내지 못하는 경우가 많습니다. 특히 USB 전원만으로 모터까지 돌리려 하면 전압이 떨어지고 보드가 꺼질 수 있습니다.
마지막으로 모터 출력 단자를 확인합니다. 모터는 드라이버의 OUT 단자에 연결해야 합니다. 실수로 모터를 전원 단자나 보드 핀에 직접 연결하면 회로가 손상될 수 있습니다.
빠른 점검 순서는 다음과 같습니다.
제어 보드 GND와 드라이버 GND가 연결되어 있는가.
모터 전원이 드라이버의 VM 또는 VS에 들어가 있는가.
모터 전원 전압이 모터 정격과 맞는가.
ENA, ENB, PWM, STBY 같은 활성화 핀이 올바른 상태인가.
방향 제어 핀이 코드와 실제 배선에서 일치하는가.
드라이버가 너무 뜨겁지 않은가.
배터리나 어댑터가 모터 전류를 충분히 공급할 수 있는가.
이 체크리스트는 뒤에서 실제 로봇 프로젝트를 만들 때도 계속 사용하게 됩니다.
좋은 모터 제어는 좋은 드라이버 선택에서 시작된다
모터 드라이버는 로봇에서 화려하게 보이는 부품은 아닙니다. 카메라처럼 눈에 띄지도 않고, 서보처럼 움직임이 바로 보이지도 않습니다. 하지만 드라이버가 제대로 선택되지 않으면 로봇은 힘없이 움직이거나, 방향을 이상하게 바꾸거나, 전원이 꺼지거나, 부품이 뜨거워집니다.
H-Bridge는 모터 양단의 전압 방향을 바꾸어 정회전과 역회전을 만듭니다. L298N 계열은 배우기 쉽고 흔하지만 전압 강하와 발열을 고려해야 합니다. TB6612 계열은 작고 효율이 좋아 소형 바퀴 로봇에 잘 어울리지만, 역시 정격 전류 안에서 사용해야 합니다. 드라이버를 고를 때는 모터 정격 전압, 연속 전류, 순간 전류, 발열 조건을 함께 봐야 합니다.
이제 우리는 모터를 단순히 켜고 끄는 단계를 넘어섰습니다. 방향을 바꾸고, 속도를 조절하고, 멈추는 방식까지 생각하기 시작했습니다. 다음 장에서는 이 속도 조절의 핵심인 PWM을 더 자세히 다룹니다. 디지털 핀은 분명 켜짐과 꺼짐밖에 모르는데, 어떻게 모터가 천천히 돌고 서보가 원하는 각도로 움직이는지 살펴보겠습니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.