Dự án: RJMD-R2101 Bộ điều khiển động cơ MOSFET H-Bridge
Trong hướng dẫn này, chúng ta sẽ khám phá cách điều khiển một động cơ DC sử dụng bộ điều khiển động cơ MOSFET H-Bridge RJMD-R2101. Dự án này sẽ chứng minh cách sử dụng hiệu quả các MOSFET IRFZ44N kết hợp với các bộ điều khiển cổng IR2101 để điều khiển tốc độ và hướng của động cơ. Cuối cùng của hướng dẫn này, bạn sẽ có một thiết lập điều khiển động cơ hoạt động có thể tăng tốc, phanh và dừng động cơ một cách mượt mà.

Khi chúng ta tiến triển, chúng ta sẽ đề cập đến các thành phần phần cứng cần thiết, hướng dẫn đấu dây và các đoạn mã ví dụ để làm rõ cách mọi thứ hoạt động cùng nhau. Để có một hình ảnh trực quan hơn, tôi khuyên bạn nên xem video liên quan (trong video tại 02:15).

Giải thích phần cứng
Các thành phần chính trong dự án này là bộ điều khiển IR2101 và các MOSFET IRFZ44N. IR2101 là một bộ điều khiển tốc độ cao được thiết kế để điều khiển các MOSFET N-channel trong cấu hình cầu nửa. Nó cho phép chuyển mạch hiệu quả và kiểm soát các MOSFET, giúp động cơ hoạt động mượt mà.
Các MOSFET IRFZ44N hoạt động như các phần tử chuyển mạch điều khiển công suất cung cấp cho động cơ. Khi được kích hoạt bởi IR2101, các MOSFET này có thể xử lý dòng điện cao, cung cấp công suất cần thiết để điều khiển động cơ. Cùng nhau, các thành phần này cho phép kiểm soát chính xác hướng và tốc độ của động cơ.
Chi tiết bảng dữ liệu
| Nhà sản xuất | International Rectifier |
|---|---|
| Số hiệu bộ phận | IRFZ44N |
| Điện áp Logic/IO | 10 V (VGS) |
| Điện áp cung cấp | 55 V (VDS) |
| Dòng điện đầu ra (mỗi kênh) | 49 A (tối đa) |
| Dòng điện đỉnh (mỗi kênh) | 120 A (tối đa) |
| Hướng dẫn tần số PWM | lên đến 100 kHz |
| Ngưỡng logic đầu vào | 2.0 V (VGS(th)) |
| Sụt áp / RDS(on)/ bão hòa | 0,025 Ω (tối đa) |
| Giới hạn nhiệt độ | 175 °C (tối đa) |
| Gói | TO-220 |
| Ghi chú / biến thể | Thường được sử dụng trong các cấu hình H-Bridge |
- Đảm bảo tản nhiệt đúng cách cho các MOSFET để ngăn ngừa quá nhiệt.
- Sử dụng PWM để điều khiển tốc độ nhằm đạt được hoạt động mượt mà của động cơ.
- Xác minh rằng điện áp nguồn cung cấp không vượt quá các chỉ số của MOSFET.
- Đảm bảo đúng cực khi nối dây động cơ để tránh hư hỏng.
- Sử dụng tụ điện tách rời gần nguồn điện để ổn định điện áp.
Hướng dẫn đấu dây

Để kết nối bộ điều khiển động cơ RJMD-R2101, bắt đầu bằng cách kết nối nguồn điện. Kết nối chân VCC của bộ điều khiển với nguồn điện 5V. Chân GND nên được kết nối với mặt đất của nguồn điện. Tiếp theo, kết nối các chân điều khiển: tín hiệu PWM cho MOSFET đầu tiên nên được kết nối với chânPWM1_HIN1_PIN(pin 9), và chân kích hoạt cho MOSFET đầu tiên nên kết nối vớiEN1_LIN1_PIN(pin 8). Đối với MOSFET thứ hai, kết nối tín hiệu PWM tớiPWM2_HIN2_PIN(pin 3) và chân kích hoạt đểEN2_LIN2_PIN(pin 2).

Đảm bảo kết nối các đầu cuối của động cơ với các đầu ra thích hợp của H-Bridge. Nếu bạn đang sử dụng Arduino, hãy kết nối các chân PWM với các chân được chỉ định trên bảng mạch Arduino. Ví dụ, kết nốiPWM1_HIN1_PINđể ghim 9,EN1_LIN1_PINđể gắn vào chân 8, và cứ như vậy. Cài đặt này sẽ cho phép bạn điều khiển động cơ một cách hiệu quả.
Ví dụ mã & Hướng dẫn
Phần mã bao gồm các hàm để điều khiển tốc độ và hướng của động cơ sử dụng các chân đã được định nghĩa. Dưới đây là một đoạn trích từ bản phác thảo điều khiển động cơ:
const int PWM1_HIN1_PIN= 9; // PWM pin for first MOSFET
const int EN1_LIN1_PIN= 8; // Enable pin for first MOSFET
Trong phần này, chúng tôi định nghĩa các chân được sử dụng để điều khiển MOSFET đầu tiên.PWM1_HIN1_PINđược sử dụng để kiểm soát tốc độ, trong khi đóEN1_LIN1_PINkích hoạt bộ điều khiển động cơ.
void Motor(boolean direction, int speed=0) {
int speedPWM = map(speed, 0, 100, 0, 255);
// Control motor direction and speed here
}
Hàm này nhận vào mộtdirectiontham số để xác định xem động cơ nên quay theo chiều kim đồng hồ hay ngược chiều kim đồng hồ.speedtham số được ánh xạ đến giá trị PWM, cho phép điều khiển mượt mà tốc độ động cơ.
void stop() {
digitalWrite(EN1_LIN1_PIN, LOW); // Disable first MOSFET
}
Cáistopchức năng vô hiệu hóa động cơ bằng cách đặt chân cho phép ở mức thấp, hiệu quả là ngăn chặn bất kỳ dòng điện nào chảy qua động cơ. Điều này đảm bảo dừng nhanh mà không làm hỏng các linh kiện.
Để xem mã đầy đủ, vui lòng tham khảo chương trình hoàn chỉnh được tải bên dưới bài viết.
Buổi trình diễn / Những gì cần mong đợi
Khi quá trình thiết lập hoàn tất, bạn nên quan sát động cơ phản hồi với các lệnh được gửi từ Arduino. Động cơ sẽ quay theo hướng đã chỉ định, và bạn có thể điều chỉnh tốc độ bằng cách sử dụng tín hiệu PWM. Những vấn đề phổ biến cần chú ý bao gồm kết nối đảo cực, có thể khiến động cơ chạy theo hướng ngược lại, và các đầu vào nổi có thể dẫn đến hành vi không ổn định.
Trong quá trình thử nghiệm, bạn cũng có thể nhận thấy tốc độ động cơ thay đổi dựa trên các giá trị PWM được gửi. Đảm bảo tất cả các kết nối đều an toàn để tránh gián đoạn trong dòng điện, điều này có thể ảnh hưởng đến hiệu suất (trong video tại 05:45).
Thời gian video
- 00:00- Giới thiệu về dự án
- 02:15- Tổng quan về các thành phần phần cứng
- 05:45- Biểu diễn điều khiển động cơ
- 08:30- Hướng dẫn và giải thích mã
Hình ảnh
/*
IR2101 Motor Contorl Sketch
Controls DC motor with speed, brake and stop
IRF44ZN Mosfets used for high side and low side.
IR2101 Gate driver used to drive the MOSFETs.
you can ge the code, the gerbar file for PCB to produce and wirign diagram
from http://robojax.com/RJT390
written by Ahmad Shamshiri on Nov 19, 2024
www.Robojax.com https://youTube.com/@robojax
*/
const int PWM1_HIN1_PIN= 9;//must be a pint with ~
const int EN1_LIN1_PIN= 8;
const int PWM2_HIN2_PIN= 3;//must be a pint with ~
const int EN2_LIN2_PIN= 2;
const boolean CW =1;
const boolean CCW =0;
void Motor(boolean, int);//prototype
void brake();//prototype
void stop();//prototype
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);//in CW at 50% speed
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);
}
}
Tài nguyên & tài liệu tham khảo
-
Bên ngoài
-
Bên ngoàiIR2101 Gate Driver datasheetinfineon.com
-
Bên ngoàiIRFZ44N MOSFET datasheetinfineon.com
Tập tin📁
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