Cari Kode

Proyek: RJMD-R2101 Pengendali Motor MOSFET Jembatan H

Proyek: RJMD-R2101 Pengendali Motor MOSFET Jembatan H

Dalam tutorial ini, kita akan menjelajahi cara mengendalikan motor DC menggunakan driver motor MOSFET H-Bridge RJMD-R2101. Proyek ini akan menunjukkan cara memanfaatkan MOSFET IRFZ44N secara efektif bersama dengan driver gerbang IR2101 untuk mengontrol kecepatan dan arah motor. Pada akhir panduan ini, Anda akan memiliki pengaturan kontrol motor yang fungsional yang dapat mempercepat, mengerem, dan menghentikan motor dengan lancar.

RJMD-R2101 H-Bridge MOSFET Motor Driver 0

Seiring kita maju, kita akan membahas komponen perangkat keras yang diperlukan, instruksi pengkabelan, dan cuplikan kode contoh untuk menjelaskan bagaimana semuanya bekerja bersama. Untuk representasi yang lebih visual, saya sarankan menonton video terkait (dalam video pada 02:15).

RJMD-R2101 H-Bridge MOSFET Motor Driver 3

Penjelasan Perangkat Keras

Komponen utama dalam proyek ini adalah pengendali gerbang IR2101 dan MOSFET IRFZ44N. IR2101 adalah pengendali berkecepatan tinggi yang dirancang untuk mengendalikan MOSFET saluran-N dalam konfigurasi jembatan setengah. Ini memungkinkan switching yang efisien dan kontrol MOSFET, memungkinkan motor beroperasi dengan lancar.

MOSFET IRFZ44N berfungsi sebagai elemen switching yang mengontrol daya yang disuplai ke motor. Ketika diaktifkan oleh IR2101, MOSFET ini dapat menangani arus tinggi, memberikan daya yang diperlukan untuk menggerakkan motor. Bersama-sama, komponen ini memungkinkan kontrol yang tepat atas arah dan kecepatan motor.

Detail Lembar Data

ProdusenInternational Rectifier
Nomor bagianIRFZ44N
Tegangan Logika/IO10 V (VGS)
Tegangan suplai55 V (VDS)
Arus keluaran (per saluran)49 A (maks)
Arus puncak (per saluran)120 A (maks)
Panduan frekuensi PWMhingga 100 kHz
Ambang logika input2,0 V (VGS(th))
Penurunan tegangan / RDS(on)/ saturasi0,025 Ω (maks)
Batas termal175 °C (maks)
PaketTO-220
Catatan / varianUmumnya digunakan dalam konfigurasi H-Bridge

  • Pastikan pendinginan yang tepat untuk MOSFET agar tidak overheat.
  • Gunakan PWM untuk kontrol kecepatan agar operasi motor berjalan lancar.
  • Verifikasi tegangan suplai daya tidak melebihi rating MOSFET.
  • Pastikan polaritas yang benar saat menghubungkan motor untuk menghindari kerusakan.
  • Gunakan kapasitor dekoupling dekat catu daya untuk menstabilkan tegangan.

Instruksi Pemasangan Kabel

Arduino wiring for H-bridge IR2101 with IRFZ44N
Arduino wiring for H-bridge IR2101 with IRFZ44N

Untuk menghubungkan driver motor RJMD-R2101, mulai dengan menghubungkan sumber daya. Hubungkan pin VCC dari driver ke sumber daya 5V. Pin GND harus dihubungkan ke ground dari sumber daya. Selanjutnya, hubungkan pin kontrol: sinyal PWM untuk MOSFET pertama harus masuk ke pinPWM1_HIN1_PIN(pin 9), dan pin enable untuk MOSFET pertama harus terhubung keEN1_LIN1_PIN(pin 8). Untuk MOSFET kedua, sambungkan sinyal PWM kePWM2_HIN2_PIN(pin 3) dan pin enable untukEN2_LIN2_PIN(pin 2).

RJMD-R2101 H-Bridge MOSFET Motor Driver 5

Pastikan untuk menghubungkan terminal motor ke output yang sesuai dari H-Bridge. Jika Anda menggunakan Arduino, hubungkan pin PWM ke pin yang ditentukan di papan Arduino. Misalnya, hubungkanPWM1_HIN1_PINke pin 9,EN1_LIN1_PINke pin 8, dan seterusnya. Pengaturan ini akan memungkinkan Anda untuk mengendalikan motor dengan efektif.

Contoh Kode & Panduan

Bagian kode mencakup fungsi untuk mengontrol kecepatan dan arah motor menggunakan pin yang telah ditentukan. Berikut adalah cuplikan dari sketsa kontrol motor:

const int PWM1_HIN1_PIN= 9; // PWM pin for first MOSFET
const int EN1_LIN1_PIN= 8; // Enable pin for first MOSFET

Pada bagian ini, kami mendefinisikan pin yang digunakan untuk mengendalikan MOSFET pertama.PWM1_HIN1_PINdigunakan untuk pengendalian kecepatan, sementaraEN1_LIN1_PINmengaktifkan pengendali motor.

void Motor(boolean direction, int speed=0) {
    int speedPWM = map(speed, 0, 100, 0, 255);
    // Control motor direction and speed here
}

Fungsi ini menerima sebuahdirectionparameter untuk menentukan apakah motor harus berputar searah jarum jam atau berlawanan arah jarum jam. Thespeedparameter dipetakan ke nilai PWM, memungkinkan kontrol yang halus atas kecepatan motor.

void stop() {
    digitalWrite(EN1_LIN1_PIN, LOW); // Disable first MOSFET
}

Thestopfungsi menonaktifkan motor dengan mengatur pin enable ke rendah, secara efektif menghentikan aliran arus melalui motor. Ini memastikan penghentian yang cepat tanpa merusak komponen.

Untuk kode lengkap, silakan merujuk pada program lengkap yang dimuat di bawah artikel.

Demonstrasi / Apa yang Diharapkan

Ketika pengaturan selesai, Anda harus mengamati motor merespons perintah yang dikirim dari Arduino. Motor akan berputar ke arah yang ditentukan, dan Anda dapat mengatur kecepatan menggunakan sinyal PWM. Masalah umum yang perlu diperhatikan termasuk koneksi polaritas terbalik, yang dapat menyebabkan motor berputar ke arah yang berlawanan, dan input mengambang yang dapat menyebabkan perilaku tidak teratur.

Selama pengujian, Anda mungkin juga akan melihat kecepatan motor berubah berdasarkan nilai PWM yang dikirim. Pastikan semua koneksi aman untuk menghindari gangguan aliran daya, yang dapat mempengaruhi kinerja (dalam video pada 05:45).

Stempel Waktu Video

  • 00:00- Pengenalan proyek
  • 02:15- Ikhtisar komponen perangkat keras
  • 05:45- Demonstrasi pengendalian motor
  • 08:30- Penjelasan dan penelusuran kode

Gambar

RJMD-R2101 H-Bridge MOSFET Motor Driver 0
RJMD-R2101 H-Bridge MOSFET Motor Driver 0
RJMD-R2101 H-Bridge MOSFET Motor Driver 1
RJMD-R2101 H-Bridge MOSFET Motor Driver 1
RJMD-R2101 H-Bridge MOSFET Motor Driver 2
RJMD-R2101 H-Bridge MOSFET Motor Driver 2
RJMD-R2101 H-Bridge MOSFET Motor Driver 3
RJMD-R2101 H-Bridge MOSFET Motor Driver 3
RJMD-R2101 H-Bridge MOSFET Motor Driver 4
RJMD-R2101 H-Bridge MOSFET Motor Driver 4
RJMD-R2101 H-Bridge MOSFET Motor Driver 5
RJMD-R2101 H-Bridge MOSFET Motor Driver 5
Arduino wiring for H-bridge IR2101 with IRFZ44N
Arduino wiring for H-bridge IR2101 with IRFZ44N
796-Arduino H-Bridge code to control IRFZ44N Mosfets using IR2101 gate drivers
Bahasa: C++
/*
 * Sketsa Kontrol Motor IR2101  
 * Mengontrol motor DC dengan kecepatan, rem, dan berhenti  
 * Mosfet IRF44ZN digunakan untuk sisi tinggi dan sisi rendah.  
 * Driver gerbang IR2101 digunakan untuk menggerakkan MOSFET.  
 * Anda dapat mendapatkan kode, file gerber untuk PCB yang diproduksi, dan diagram pengkabelan  
 * dari http://robojax.com/RJT390  
 * 
 * ditulis oleh Ahmad Shamshiri pada 19 Nov 2024  
 * www.Robojax.com https://youTube.com/@robojax
 */
const int PWM1_HIN1_PIN= 9; // harus ada satu pint dengan ~
const int EN1_LIN1_PIN= 8;

const int PWM2_HIN2_PIN= 3; // harus ada satu pint dengan ~
const int EN2_LIN2_PIN= 2;

const boolean CW =1;
const boolean CCW =0;


void Motor(boolean, int); // prototipe
void brake(); // prototipe
void stop(); // prototipe

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); // dalam CW dengan kecepatan 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);
  }

}




Sumber daya & referensi

Berkas📁

Gerber files