DC 모터 제어
일반
PWM신호를 이용해 DC모터를 제어할 수 있는 라이브러리입니다. DC모터는 모터 드라이버를 통해 구동되며 다양한 타입의 드라이버가 존재합니다.

DC모터 드라이버의 타입과 설명은 아래와 같습니다.
타입 | 설명 | 모델 |
---|---|---|
타입1 |
• ENA/B : 속도제어 |
L298N, L293D, TB6612FNG 외 |
타입2 | • IN1: 정방향 속도제어 • IN2: 역방향 속도제어 |
L9110, DRV8833 외 |
타입3 | • DIR: 정/역방향제어 • PWM: 속도제어 |
MAX14870 외 |
사용 가능한 GPIO
- 라즈베리파이 0~4
- 라즈베리파이 5
- 비글본 블랙/그린
- 젯슨 나노
명령
[INIT]
초기 설정을 입력합니다.
항목 | 타입 | 설명 |
---|---|---|
드라이버 타입 | WRITE | 모터 드라이버의 타입을 선택합니다. (타입1, 타입2 ,타입3) |
타입1(ENA,IN1,IN2) 선택시
항목 | 타입 | 설명 |
---|---|---|
ENA/B 핀 | WRITE | ENA/B핀과 연결할 GPIO핀 번호를 입력하거나 PWM핀을 선택합니다. |
IN1 핀 | WRITE | IN1핀과 연결할 GPIO핀 번호를 입력합니다. 정/역 방향을 제어합니다. |
IN2 핀 | WRITE | IN2핀과 연결할 GPIO핀 번호를 입력합니다. 정/역 방향을 제어합니다. |
타입2(IN1,IN2) 선택시
항목 | 타입 | 설명 |
---|---|---|
IN1 핀 | WRITE | IN1핀과 연결할 GPIO핀 번호를 입력하거나 PWM핀을 선택합니다. |
IN2 핀 | WRITE | IN2핀과 연결할 GPIO핀 번호를 입력하거나 PWM핀을 선택합니다. |
타입3(DIR,PWM) 선택시
항목 | 타입 | 설명 |
---|---|---|
DIR 핀 | WRITE | DIR핀과 연결할 GPIO핀 번호를 입력합니다. 정/역 방향을 제어합니다. |
PWM 핀 | WRITE | PWM핀과 연결할 GPIO핀 번호를 입력하거나 PWM핀을 선택합니다. |
[RUN]
모터를 설정한 방향과 속도로 운전합니다.
항목 | 타입 | 설명 |
---|---|---|
회전방향 | WRITE | 회전방향을 입력합니다. true이면 정방향, false이면 역방향입니다. |
회전속도 | WRITE | 회전속도를 입력합니다. (0~100%) |
가속 (%/s) | WRITE | 가속량을 입력합니다. (사용하지 않을 경우 0을 입력) |
감속 (%/s) | WRITE | 감속량을 입력합니다. (사용하지 않을 경우 0을 입력) |
[COAST_STOP]
모터가 관성으로 인해 천천히 정지하도록 합니다. (free running stop)
[HARD_STOP]
모터를 즉시 정지합니다.
예제
목표
대시보드 스위치 위젯으로 회전 방향을 조절하고 슬라이더 위젯으로 속도를 조절합니다.
부품
부품 | 갯수 |
---|---|
라즈베리파이 4 * | 1 |
DC모터 | 1 |
L298N 드라이버 | 1 |
12V DC Power Supply | 1 |
* 다른 하드웨어를 사용할 수도 있습니다. 사용 가능한 GPIO를 참고하세요.
연결
아래 핀들을 가로 방향으로 서로 연결합니다.
5~35V DC Power ¹ | DC모터 | L298N | GPIO |
---|---|---|---|
| ENA | 23 ² | |
| IN1 | 24 | |
| IN2 | 25 | |
+ | 12V | | |
– | GND | GND | |
5V | 5V (선택) ³ | ||
핀1 | OUT1 | ||
핀2 | OUT2 |
1. DC모터의 전압 및 소모 전류에 맞는 적절한 외부 DC 전원을 사용합니다.
2. 라즈베리파이 0~4는 모든 GPIO를 사용할 수 있으며, 그 외의 하드웨어는 PWM 출력 핀만 사용 가능합니다.
3. 외부 DC 전원이 7V 미만일 경우, 온보드 5V 레귤레이터가 제대로 작동하지 않으므로 보드의 5V 단자에 별도로 5V를 공급해야 합니다. 이때 반드시 5V-EN 점퍼를 제거하여 내부 레귤레이터를 비활성화해야 하며, 그렇지 않으면 전압 충돌이 발생할 수 있습니다. 반대로, 외부 DC 전원이 7V 이상일 경우에는 5V-EN 점퍼를 꽂은 상태로 내부 레귤레이터를 사용하게 되며, 이때는 보드의 5V 단자에 라즈베리파이의 5V를 절대 연결해서는 안 됩니다. 그렇지 않으면 보드 또는 라즈베리파이가 파손될 수 있으므로 주의해야 합니다.
2. 라즈베리파이 0~4는 모든 GPIO를 사용할 수 있으며, 그 외의 하드웨어는 PWM 출력 핀만 사용 가능합니다.
3. 외부 DC 전원이 7V 미만일 경우, 온보드 5V 레귤레이터가 제대로 작동하지 않으므로 보드의 5V 단자에 별도로 5V를 공급해야 합니다. 이때 반드시 5V-EN 점퍼를 제거하여 내부 레귤레이터를 비활성화해야 하며, 그렇지 않으면 전압 충돌이 발생할 수 있습니다. 반대로, 외부 DC 전원이 7V 이상일 경우에는 5V-EN 점퍼를 꽂은 상태로 내부 레귤레이터를 사용하게 되며, 이때는 보드의 5V 단자에 라즈베리파이의 5V를 절대 연결해서는 안 됩니다. 그렇지 않으면 보드 또는 라즈베리파이가 파손될 수 있으므로 주의해야 합니다.

프로젝트 링크