Kod Ara

IRF5305 E-Switch Modülünü Kullanarak Motor Hızını Kontrol Etme

IRF5305 E-Switch Modülünü Kullanarak Motor Hızını Kontrol Etme

Bu kılavuz, Arduino'dan gelen düşük voltajlı bir sinyalle yüksek akımlı DC yükleri kontrol etmek için P-kanal MOSFET kullanan güçlü ve çok yönlü bir bileşen olan IRF5305 E-Switch modülünü inceler. Mekanik bir röleden farklı olarak, bu katı hal anahtarı daha hızlı anahtarlama, daha uzun ömür ve fiziksel kontak bozulması olmadan çalışma sunar. Gerçek dünyadaki değeri, bir Arduino pininin sağlayabileceğinden çok daha fazla akım çeken yükleri güvenli ve verimli bir şekilde anahtarlayabilmesi veya karartabilmesinde yatar.

E-switch_module-1-MOS
E-switch_module-black-1-mos
E-switch_module-green-1-MOS-boyutları

Bu modül, aşağıdakiler dahil çeşitli projeler için idealdir:

  • Robotik veya özel elektrikli aletlerde yüksek akımlı DC motorların hızını kontrol etme.
  • Otomotiv veya mimari uygulamalar için yüksek güçlü LED aydınlatma sistemlerini kısma.
  • Bir rölenin aşınması ve yıpranması olmadan yükleri açıp kapatan güvenilir, uzun ömürlü bir güç yönetim sistemi kurma.
  • Düşük voltajlı bir mikrodenetleyiciden yüksek voltajlı (36V'a kadar) devreleri kontrol etmek için izole bir arayüz oluşturma.

Donanıma Genel Bakış

IRF5305 E-Switch modülü kolay entegrasyon için tasarlanmıştır. Yüksek güç tarafı için bir terminal bloğu ve kontrol sinyali için iki pin içerir. Modül, Arduino'nuz ile yüksek güçlü devre arasında tam elektriksel izolasyon sağlayan ve mikrodenetleyicinizi olası hasarlardan koruyan bir optokuplör içerir. Ana MOSFET (IRF5305), yalnızca 65 miliohm'luk son derece düşük açık direnciyle neredeyse ideal bir anahtar görevi görür ve minimum voltaj düşüşü ve güç kaybı sağlar (videoda 01:47'de).

Modülün fiziksel boyutları 40mm uzunluk, 30.1mm genişlik ve 16.4mm derinliktir (videoda 05:09'da).

Donanım/Bileşenler

  • Arduino Uno veya benzeri kart
  • IRF5305 E-Switch Modülü
  • DC Motor veya yüksek güçlü ampul
  • Harici Güç Kaynağı (36V'a kadar)
  • Jumper Kablolar

Bağlantı Kılavuzu

Modülü bağlamak basittir. Sinyal tarafındaki iki pin Pozitif ve Toprak olarak etiketlenmiştir. Toprak pinini Arduino'daki bir GND pinine bağlayın. Pozitif pinini Arduino'daki pin 9 gibi bir dijital pine bağlayın (videoda 07:53'te).

Yüksek güç tarafında, harici güç kaynağınızın pozitif terminalini modülün giriş tarafındaki + terminaline ve negatif terminalini - terminaline bağlayın. Ardından, yükünüzü (örneğin bir motor) çıkış tarafındaki + ve - terminallerine bağlayın (videoda 07:24'te).

Önemli: Motor gibi endüktif bir yükü sürerken, yüke paralel bir gerilim yönlendirme diyotu yerleştirmek çok önemlidir. Bu diyot, motor kapatıldığında oluşan voltaj sivrilmelerinden MOSFET'i korur (videoda 09:52'de).

Kod Açıklaması

Bu eğitim, her biri farklı bir kontrol seviyesini gösteren üç ayrı program sağlar. Her birinin kodu makalenin altında mevcuttur.

IRF5305 modülünü her zaman açık tutmak için temel kod

Bu ilk taslak en basit olanıdır. Yükü açmak ve süresiz olarak açık tutmak için tasarlanmıştır. Bu kodun anahtar kısmı en üstteki pin tanımıdır.

int loadPin =9;// yük pini

Bu satır, Arduino'daki hangi dijital pinin modülün "Pozitif" sinyal pinine bağlı olduğunu tanımlar. Başka bir yere bağladıysanız 9 sayısını başka bir dijital pinle değiştirebilirsiniz. setup() işlevi bu pini çıkış olarak ayarlar ve loop() işlevi yükü açma ve sonsuza kadar bekleme mantığını içerir.

IRF5305 modülü için temel kod, AÇIK/KAPALI yapar

Bu taslak, yükü 3 saniye açıp ardından 3 saniye kapatan zamana dayalı anahtarlamayı gösterir. Kullanıcı tarafından yapılandırılabilir kısımlar pin tanımı ve gecikme süreleridir.

int cont = HIGH;
int loadPin = 9; 

loadPin değişkeni ilk programdakiyle aynı amaca hizmet eder. cont değişkeni, programın yükü açıp açmayacağına veya kapatıp kapatmayacağına karar vermek için kontrol ettiği bir durum bayrağıdır. Açma/kapama zamanlamasını değiştirmek için if ve else blokları içindeki delay(3000); komutlarını değiştirebilirsiniz. Gecikme milisaniye cinsinden ölçülür, bu nedenle 3000 3 saniyeye eşittir.

IRF5305 motor hızı ışık yoğunluğunu kontrol etmek için temel kod

Son program, bir motorun hızını veya bir ışığın parlaklığını kontrol etmek için Darbe Genişliği Modülasyonu (PWM) kullanır. Gücü bir döngü içinde kademeli olarak artırır ve azaltır. Anahtar değişkenlerin tümü taslağın en üstündedir.

int motorPin =9;// motor modülüne bağlanacak pin
int mSpeed = 0;// hız değerini tutan değişken
int mStep = 15;// PWM motor hızı için artırma/azaltma adımı
  • motorPin: Bu, modüle bağlı PWM destekli pini tanımlar. PWM destekleyen bir pin kullanmak kritiktir (genellikle Arduino kartında ~ sembolüyle işaretlenir).
  • mSpeed: Bu değişken, 0 (kapalı) ile 255 (tam hız) arasında değişen mevcut PWM değerini tutar.
  • mStep: Bu, hızın her döngüde değiştiği artış miktarıdır. Daha büyük bir değer (ör. 25) hızın daha hızlı artıp azalmasını sağlarken, daha küçük bir değer (ör. 5) geçişi daha yumuşak ve yavaş yapar.

Hız artırma/azaltma efektinin hızını değiştirmek için döngünün sonundaki delay(200); değerini değiştirin. Bu, her hız adımı arasındaki milisaniye cinsinden süredir.

Canlı Proje/Gösterim

Videoda üç programın her biri gösterilmiştir. İlk program motoru sürekli çalışır durumda başarıyla tutar. İkinci program yüklenir ve motorun üç saniye açılıp üç saniye kapandığı gösterilir. Son olarak PWM programı gösterilir; motorun yavaşça maksimum hıza çıktığı ve ardından tekrar durma noktasına yavaşladığı ve bu döngüyü sürekli tekrarladığı görülür (videoda 15:42'de).

Video ayrıca kapsamlı bir akım taşıma testi içerir. Modül, ek bir soğutucu olmadan gerçek dünya sınırlarını belirlemek için elektronik bir yüke bağlandı. Sonuçlar, daha yüksek voltajlarda (24V'a kadar) modülün 10 ampere kadar dayanabildiğini gösterdi. Ancak daha düşük voltajlarda (yaklaşık 5V), akım taşıma kapasitesi önemli ölçüde düştü ve modül 10 amperin üzerindeki akımlarda aşırı ısınmaya ve duman çıkarmaya başladı (videoda 21:49'da). Sonuç olarak, sürekli ve yüksek akım uygulamalarında modülü serin tutmak ve hasarı önlemek için bir soğutucu gereklidir.

E-switch_module-2-MOS
E-switch_module-green-2-mos-bottom
E-switch_module-black-2-mos-top

hasarı önler.

Bölümler

  • [00:00] Giriş ve Modül Genel Bakışı
  • [01:13] Neden MOSFET E-Switch Kullanılmalı
  • [03:45] Modül Bağlantıları ve Fiziksel Boyutlar
  • [05:24] IRF5305 Veri Sayfası İncelemesi
  • [07:03] Modülü Arduino'ya Bağlama
  • [08:06] Şematik Diyagram Açıklaması
  • [10:29] Kod İncelemesi: Her Zaman Açık Program
  • [11:04] Kod İncelemesi: Aç/Kapat Kontrol Programı
  • [12:03] Kod İncelemesi: PWM Hız Kontrol Programı
  • [14:34] Üç Programın Canlı Gösterimi
  • [17:02] Akım Taşıma ve Yük Testi
  • [23:34] Sonuç ve Test Sonuçları Özeti

Görseller

Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Schematic diagram of an E-switch based on the IRF5305 MOSFET
Schematic diagram of E-Switch based on IRF5305 Mosfet
E-switch_module-black-2-mos-top
E-switch_module-black-2-mos-top
E-switch_module-black-1-mos
E-switch_module-black-1-mos
E-switch_module-green-2-mos-bottom
E-switch_module-green-2-mos-bottom
E-switch_module-green-1-MOS-dimentions
E-switch_module-green-1-MOS-dimentions
E-switch_module-2-MOS
E-switch_module-2-MOS
E-switch_module-1-MOS
E-switch_module-1-MOS
156-Basic code to keep the IRF5305 module always on
Dil: C++
/*
 * This is an Arduino sketch for a tutorial video 
 * explaining the 5305 MOSFET used as a switch 
 * This sketch turns the MOSFET ON and keeps it ON forever
 * Download and resource page https://robojax.com/RJT125

 * Written by Ahmad Shamshiri on Sep 12, 2018 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch instruction video for this code: https://youtu.be/eAANkWDvusU
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */
int loadPin =9;// load pin

  
void setup() {
  // Robojax.com demo
  pinMode(loadPin,OUTPUT);
  Serial.begin(9600);
  Serial.println("Robojax Demo"); 

}

void loop() {
  // Robojax.com tutorial

  digitalWrite(loadPin, HIGH);
 while(1);// wait forever


}
157-Basic code to for IRF5305 modul, turns ON/OFF
Dil: C++
/*
 * This is an Arduino sketch for a tutorial video 
 * explaining the 5305 MOSFET used as a switch 
 * This sketch turns the MOSFET ON for 3 seconds then turns it OFF for 3 seconds.
 * Download and resource page https://robojax.com/RJT125
 * Written by Ahmad Shamshiri on Sep 12, 2018 at 17:36 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/eAANkWDvusU
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */
int cont = HIGH;
int loadPin = 9; 
void setup() {
  // Robojax.com demo
  pinMode(loadPin,OUTPUT);
  Serial.begin(9600);
  Serial.println("Robojax Demo");
  

}

void loop() {
  // Robojax.com tutorial

 
  if(cont == HIGH)
  {
    Serial.println("OUTPUT is HIGH");
    digitalWrite(loadPin,HIGH);
    delay(3000);
    cont = LOW;
  }else{
    Serial.println("OUTPUT is LOW");
    digitalWrite(loadPin,LOW);
    delay(3000);
    cont = HIGH;   
  }

}
158-Basic code to keep the IRF5305 speed of motor intensitiy of light
Dil: C++
/*
 * This is an Arduino sketch for a tutorial video 
 * explaining the 5305 MOSFET used as a switch 
 * This sketch will control the speed of a motor or the intensity of a light using PWM
 * Download and resource page https://robojax.com/RJT125

 * Written by Ahmad Shamshiri on Sep 12, 2018 at 23:23 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/eAANkWDvusU
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */
int motorPin =9;// pin to connect to motor module
int mSpeed = 0;// variable to hold speed value
int mStep = 15;// increment/decrement step for PWM motor speed
  
void setup() {
  // Robojax.com demo
  pinMode(motorPin,OUTPUT);// set mtorPin as output
  Serial.begin(9600);// initialize serial motor
  Serial.println("Robojax Demo");
  

}

void loop() {
  // Robojax.com tutorial

analogWrite(motorPin, mSpeed);// send mSpeed value to motor
    Serial.print("Speed: ");
    Serial.println(mSpeed);// print mSpeed value on Serial monitor (click on Tools->Serial Monitor)
  mSpeed = mSpeed + mStep;
  // See the video for details.
  if (mSpeed <= 0 || mSpeed >= 255) {
    mStep = -mStep;
  }  

delay(200);

}

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Diğer dosyalar

  • IRF5305 P-Channel MOSFET Datasheet
    Datasheet for the IRF5305, a P-channel power MOSFET. It features a drain-to-source voltage of -55V, continuous drain current of -31A, and low on-resistance, suitable for high-power switching applications.
    robojax_e-switch_IRF5305_datasheet.pdf 0.16 MB