프로젝트: RJMD-R2101 H-브리지 MOSFET 모터 드라이버
이 튜토리얼에서는 RJMD-R2101 H-브리지 MOSFET 모터 드라이버를 사용하여 DC 모터를 제어하는 방법을 탐구할 것입니다. 이 프로젝트는 IRFZ44N MOSFET를 IR2101 게이트 드라이버와 함께 효과적으로 활용하여 모터의 속도와 방향을 제어하는 방법을 보여줄 것입니다. 이 가이드를 마치면 모터를 부드럽게 가속하고, 제동하고, 정지시킬 수 있는 기능적인 모터 제어 설정을 갖추게 될 것입니다.

우리가 진행함에 따라 필요한 하드웨어 구성 요소, 배선 지침 및 모든 것이 어떻게 함께 작동하는지를 명확히 하기 위한 예제 코드 조각을 다룰 것입니다. 더 시각적인 표현을 원하신다면 관련 비디오(비디오 02:15)를 시청하는 것을 추천합니다.

하드웨어 설명
이 프로젝트의 주요 구성 요소는 IR2101 게이트 드라이버와 IRFZ44N MOSFET입니다. IR2101은 하프 브리지 구성에서 N채널 MOSFET을 구동하기 위해 설계된 고속 드라이버입니다. 이는 MOSFET의 효율적인 스위칭 및 제어를 가능하게 하여 모터가 원활하게 작동하도록 합니다.
IRFZ44N MOSFET는 모터에 전달되는 전력을 제어하는 스위칭 요소로 작용합니다. IR2101에 의해 활성화되면, 이 MOSFET는 높은 전류를 처리할 수 있어 모터를 구동하는 데 필요한 전력을 제공합니다. 이 구성 요소들은 함께 모터의 방향과 속도를 정밀하게 제어할 수 있게 해줍니다.
데이터시트 세부정보
| 제조업체 | 국제 정류기 |
|---|---|
| 부품 번호 | IRFZ44N |
| 로직/입출력 전압 | 10 V (VGS) |
| 공급 전압 | 55 V (VDS) |
| 출력 전류 (채널당) | 49 A (최대) |
| 채널당 피크 전류 | 120 A (최대) |
| PWM 주파수 안내 | 최대 100 kHz |
| 입력 논리 임계값 | 2.0 V (VGS(th)) |
| 전압 강하 / RDS(on)/ 포화 | 0.025 Ω (최대) |
| 열 한계 | 175 °C (최대) |
| 패키지 | TO-220 |
| 노트 / 변형 | H-브리지 구성에서 일반적으로 사용됨 |
- MOSFET의 과열을 방지하기 위해 적절한 히트 싱크를 확보하십시오.
- 속도 제어를 위해 PWM을 사용하여 부드러운 모터 작동을 달성하십시오.
- 전원 공급 전압이 MOSFET 정격을 초과하지 않는지 확인하십시오.
- 모터를 배선할 때 손상을 피하기 위해 올바른 극성을 확인하세요.
- 전원 공급 장치 근처에 디커플링 커패시터를 사용하여 전압을 안정화하십시오.
배선 지침

RJMD-R2101 모터 드라이버를 연결하려면 먼저 전원 공급 장치를 연결합니다. 드라이버의 VCC 핀을 5V 전원에 연결합니다. GND 핀은 전원 공급 장치의 접지에 연결해야 합니다. 다음으로 제어 핀을 연결합니다: 첫 번째 MOSFET의 PWM 신호는 핀에 연결해야 합니다.PWM1_HIN1_PIN(핀 9)이며, 첫 번째 MOSFET의 활성화 핀은 연결되어야 합니다.EN1_LIN1_PIN(pin 8). 두 번째 MOSFET의 경우, PWM 신호를 연결하십시오.PWM2_HIN2_PIN(pin 3) 및 활성화 핀에EN2_LIN2_PIN(pin 2).

모터 단자를 H-브리지의 적절한 출력에 연결해야 합니다. 아두이노를 사용하는 경우 PWM 핀을 아두이노 보드의 지정된 핀에 연결하세요. 예를 들어, 연결하십시오.PWM1_HIN1_PIN핀 9에EN1_LIN1_PIN핀 8에 연결하고, 그 다음으로 진행합니다. 이 설정은 모터를 효과적으로 제어할 수 있게 해줍니다.
코드 예제 및 안내
코드 섹션에는 정의된 핀을 사용하여 모터 속도와 방향을 제어하는 기능이 포함되어 있습니다. 아래는 모터 제어 스케치의 발췌입니다:
const int PWM1_HIN1_PIN= 9; // PWM pin for first MOSFET
const int EN1_LIN1_PIN= 8; // Enable pin for first MOSFET
이 부분에서는 첫 번째 MOSFET을 제어하는 데 사용되는 핀을 정의합니다.PWM1_HIN1_PIN속도 제어에 사용됩니다.EN1_LIN1_PIN모터 드라이버를 활성화합니다.
void Motor(boolean direction, int speed=0) {
int speedPWM = map(speed, 0, 100, 0, 255);
// Control motor direction and speed here
}
이 함수는 입력으로 받습니다.direction모터가 시계 방향으로 회전해야 하는지 반시계 방향으로 회전해야 하는지를 결정하는 매개변수.speed매개변수가 PWM 값에 매핑되어 모터 속도를 부드럽게 제어할 수 있습니다.
void stop() {
digitalWrite(EN1_LIN1_PIN, LOW); // Disable first MOSFET
}
Thestop모터를 비활성화하는 기능은 활성화 핀을 낮게 설정하여 모터를 통해 전류 흐름을 효과적으로 중지시킵니다. 이는 구성 요소를 손상시키지 않으면서 빠른 정지를 보장합니다.
전체 코드는 기사 아래에 로드된 완전한 프로그램을 참조하십시오.
시연 / 기대할 사항
설정이 완료되면 모터가 아두이노에서 전송된 명령에 반응하는 것을 관찰할 수 있어야 합니다. 모터는 지정된 방향으로 회전하며, PWM 신호를 사용하여 속도를 조절할 수 있습니다. 주의해야 할 일반적인 문제로는 극성이 반대로 연결된 경우가 있으며, 이로 인해 모터가 반대 방향으로 회전할 수 있고, 부유 입력으로 인해 불규칙한 동작이 발생할 수 있습니다.
테스트 중에 PWM 값에 따라 모터 속도가 변경되는 것을 알 수 있습니다. 성능에 영향을 줄 수 있는 전력 흐름의 중단을 피하기 위해 모든 연결이 안전한지 확인하세요 (비디오에서 05:45).
비디오 타임스탬프
- 00:00- 프로젝트 소개
- 02:15하드웨어 구성 요소 개요
- 05:45- 모터 제어 시연
- 08:30- 코드 워크스루 및 설명
이미지
/*
* IR2101 모터 제어 스케치
* 속도, 브레이크 및 정지로 DC 모터를 제어합니다.
* 고측 및 저측에 사용되는 IRF44ZN 모스펫.
* MOSFET을 구동하기 위해 사용되는 IR2101 게이트 드라이버.
* 코드, PCB 제작을 위한 거버 파일 및 배선 다이어그램을 http://robojax.com/RJT390에서 받을 수 있습니다.
*
* 2024년 11월 19일 Ahmad Shamshiri 작성
* www.Robojax.com https://youTube.com/@robojax
*/
const int PWM1_HIN1_PIN= 9; // ~와 함께해야 한다.
const int EN1_LIN1_PIN= 8;
const int PWM2_HIN2_PIN= 3; // ~와 함께해야 한다.
const int EN2_LIN2_PIN= 2;
const boolean CW =1;
const boolean CCW =0;
void Motor(boolean, int); // 프로토타입
void brake(); // 프로토타입
void stop(); // 프로토타입
void setup() {
Serial.begin(9600);
pinMode(PWM1_HIN1_PIN, OUTPUT);
pinMode(EN1_LIN1_PIN, OUTPUT);
pinMode(PWM2_HIN2_PIN, OUTPUT);
pinMode(EN2_LIN2_PIN, OUTPUT);
}
void loop() {
Motor(CW, 100);
delay(5000);
brake();
delay(3000);
Motor(CCW, 100);
delay(5000);
stop();
delay(3000);
Motor(CCW, 50); // CW에서 50% 속도로
delay(5000);
brake();
delay(3000);
for(int i=0; i<=100; i++)
{
Motor(CCW, i);
delay(100);
}
delay(3000);
for(int i=100; i>=0; i--)
{
Motor(CCW, i);
delay(100);
}
brake();
delay(3000);
}
void stop()
{
Serial.println ("=== Stop");
digitalWrite(EN1_LIN1_PIN, LOW);
digitalWrite(PWM1_HIN1_PIN, LOW);
digitalWrite(EN2_LIN2_PIN, LOW);
digitalWrite(PWM2_HIN2_PIN, LOW);
}
void brake()
{
Serial.println ("=== Brake");
digitalWrite(PWM1_HIN1_PIN, HIGH);
digitalWrite(EN1_LIN1_PIN, LOW);
digitalWrite(PWM2_HIN2_PIN, HIGH);
digitalWrite(EN2_LIN2_PIN, LOW);
}
void Motor(boolean direction, int speed=0)
{
int speedPWM = map(speed, 0, 100, 0, 255);
Serial.print("Speed: "); Serial.print (speedPWM);
Serial.print("(");Serial.print(speed);Serial.print("%)");
if(direction){
Serial.print(" dir: ");Serial.println ("CW");
analogWrite(PWM1_HIN1_PIN, speedPWM);
digitalWrite(EN1_LIN1_PIN, HIGH);
digitalWrite(PWM2_HIN2_PIN, LOW);
digitalWrite(EN2_LIN2_PIN, LOW);
}else{
Serial.print(" dir: ");Serial.println ("CCW");
digitalWrite(PWM1_HIN1_PIN, LOW);
digitalWrite(EN1_LIN1_PIN, LOW);
analogWrite(PWM2_HIN2_PIN, speedPWM);
digitalWrite(EN2_LIN2_PIN, HIGH);
}
}
자원 및 참고자료
-
외부IR2101 Gate Driver Datasheetinfineon.com
-
외부IRFZ44N MOSFET datasheetinfineon.com
파일📁
Gerber files
-
RJMD-R2101_H-Bridge_Motor_Driver_Manufacturing_Pack.zipH-Bridge MOSFET Motor Driver all three files that you may need to place order. Contains: PCB Layers Gerber zip, BMO excel file and coordinate file
RJMD-R2101_3_file_to Order.zip0.17 MB