Пребарување код

Користење на IRF5305 E-Switch модул за контрола на брзината на моторот

Користење на IRF5305 E-Switch модул за контрола на брзината на моторот

Овој водич ја истражува IRF5305 E-Switch модулата, моќна и разноврсна компонента која користи P-канален MOSFET за контрола на DC оптоварувања со висока струја преку сигнал со низок напон од Arduino. За разлика од механичкото реле, овој прекинувач во цврста состојба нуди побрзо прекинување, подолг век на траење и без физичка деградација на контактите. Неговата практична вредност лежи во способноста безбедно и ефикасно да прекинува или придушува оптоварувања кои трошат многу повеќе струја отколку што може да обезбеди пин на Arduino.

E-switch_module-1-MOS
E-switch_module-black-1-mos
E-switch_module-green-1-MOS-димензии

Оваа модула е идеална за различни проекти, вклучувајќи:

  • Контрола на брзината на DC мотори со висока струја во роботика или прилагодени електрични алати.
  • Придушување на LED системи за осветлување со висока моќност за автомобилски или архитектонски апликации.
  • Изградба на сигурен, долготраен систем за управување со енергија кој вклучува и исклучува оптоварувања без абењето и кинењето на реле.
  • Креирање на изолиран интерфејс за контрола на кола со висок напон (до 36V) од микроконтролер со низок напон.

Преглед на хардверот

IRF5305 E-Switch модулата е дизајнирана за лесна интеграција. Таа има терминален блок за страната со висока моќност и два пина за контролниот сигнал. Модулата вклучува оптокаплер, кој обезбедува целосна електрична изолација помеѓу вашиот Arduino и колото со висока моќност, штитејќи го вашиот микроконтролер од потенцијално оштетување. Главниот MOSFET (IRF5305) делува како речиси идеален прекинувач, со исклучително низок отпор при вклучена состојба од само 65 милиоми, обезбедувајќи минимален пад на напон и загуба на моќност (во видеото на 01:47).

Физичките димензии на модулата се 40mm во должина, 30.1mm во ширина и 16.4mm во длабочина (во видеото на 05:09).

Хардвер/Компоненти

  • Arduino Uno или слична плоча
  • IRF5305 E-Switch модула
  • DC мотор или сијалица со висока моќност
  • Надворешно напојување (до 36V)
  • Поврзувачки жици

Водич за поврзување

Поврзувањето на модулата е едноставно. Двата пина на сигналната страна се означени како Позитивен и Земја. Поврзете го пинот Земја со GND пин на Arduino. Поврзете го пинот Позитивен со дигитален пин на Arduino, како што е пин 9 (во видеото на 07:53).

На страната со висока моќност, поврзете го позитивниот терминал на вашето надворешно напојување со терминалот + и негативниот терминал со терминалот - на влезната страна на модулата. Потоа, поврзете го вашето оптоварување (на пр. мотор) со терминалите + и - на излезната страна (во видеото на 07:24).

Важно: Кога управувате со индуктивно оптоварување како мотор, клучно е да поставите повратна диода паралелно со оптоварувањето. Оваа диода го штити MOSFET-от од напонски шила кои се генерираат кога моторот се исклучува (во видеото на 09:52).

Објаснување на кодот

Овој туторијал обезбедува три различни програми, од кои секоја демонстрира различно ниво на контрола. Кодот за секоја е достапен под статијата.

Основен код за одржување на IRF5305 модулата секогаш вклучена

Оваа прва скица е наједноставна. Таа е дизајнирана да го вклучи оптоварувањето и да го одржува вклучено на неодредено време. Клучниот дел од овој код е дефиницијата на пинот на врвот.

int loadPin =9;// пин за оптоварување

Оваа линија дефинира кој дигитален пин на Arduino е поврзан со пинот за сигнал "Позитивен" на модулата. Можете да го промените бројот 9 со кој било друг дигитален пин ако сте го поврзале на друго место. Функцијата setup() го поставува овој пин како излез, а функцијата loop() ја содржи логиката за вклучување на оптоварувањето и чекање засекогаш.

Основен код за IRF5305 модула, ВКЛУЧУВА/ИСКЛУЧУВА

Оваа скица демонстрира прекинување базирано на време, вклучувајќи го оптоварувањето 3 секунди, а потоа исклучувајќи го 3 секунди. Деловите што може да ги конфигурира корисникот се дефиницијата на пинот и периодите на одложување.

int cont = HIGH;
int loadPin = 9; 

Променливата loadPin служи за истата цел како во првата програма. Променливата cont е статусна ознака која програмата ја проверува за да одлучи дали да го вклучи или исклучи оптоварувањето. За да го промените времето на вклучување/исклучување, можете да ги модифицирате командите delay(3000); во блоковите if и else. Одложувањето се мери во милисекунди, па 3000 е еднакво на 3 секунди.

Основен код за контрола на брзината на моторот/интензитетот на светлината со IRF5305

Последната програма користи пулсно-ширинска модулација (PWM) за контрола на брзината на мотор или осветленоста на светилка. Таа постепено ја зголемува и намалува моќноста во јамка. Клучните променливи се сите на врвот на скицата.

int motorPin =9;// пин за поврзување со модулата на моторот
int mSpeed = 0;// променлива за вредноста на брзината
int mStep = 15;// чекор на зголемување/намалување за PWM брзината на моторот
  • motorPin: Ова ја дефинира пината со PWM поддршка поврзана со модулот. Клучно е да се користи пина што поддржува PWM (често означена со симбол ~ на Arduino плочата).
  • mSpeed: Оваа променлива ја држи моменталната PWM вредност, која се движи од 0 (исклучено) до 255 (максимална брзина).
  • mStep: Ова е чекорот со кој брзината се менува секој циклус. Поголема вредност (на пр., 25) прави брзината да се зголемува и намалува побрзо, додека помала вредност (на пр., 5) го прави преминот помазен и побавен.

За да ја промените брзината на ефектот на зголемување/намалување, изменете ја вредноста delay(200); на крајот од јамката. Ова е времето во милисекунди помеѓу секој чекор на брзина.

Живо проектно/демонстрација

Во видеото, секоја од трите програми е демонстрирана. Првата програма успешно го одржува моторот да работи континуирано. Потоа се вчитува втората програма, и моторот се прикажува како се вклучува три секунди и исклучува три секунди. Конечно, PWM програмата е демонстрирана, покажувајќи го моторот како полека забрзува до максимална брзина и потоа успорува назад до запирање, повторувајќи го овој циклус континуирано (во видеото на 15:42).

Видеото исто така вклучува сеопфатен тест за справување со струја. Модулот беше поврзан со електронско оптоварување за да се одредат неговите реални граници без дополнителен ладилник. Резултатите покажаа дека при повисоки напони (до 24V), модулот може да издржи до 10 ампери. Меѓутоа, при пониски напони (околу 5V), капацитетот за справување со струја значително се намали, и модулот почна да се прегрева и да испушта чад при струи над 10 ампери (во видеото на 21:49). Заклучокот е дека за континуирани апликации со висока струја, потребен е ладилник за да се одржи модулот ладен и да се спречи

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

оштетување.

Поглавја

  • [00:00] Вовед и преглед на модулот
  • [01:13] Зошто да се користи MOSFET E-прекинувач
  • [03:45] Поврзување на модулот и физички димензии
  • [05:24] Преглед на IRF5305 податочен лист
  • [07:03] Поврзување на модулот со Arduino
  • [08:06] Објаснување на шематскиот дијаграм
  • [10:29] Преглед на кодот: Програма за постојано вклучување
  • [11:04] Преглед на кодот: Програма за вклучување/исклучување
  • [12:03] Преглед на кодот: PWM програма за контрола на брзина
  • [14:34] Жива демонстрација на сите три програми
  • [17:02] Тест за справување со струја и оптоварување
  • [23:34] Заклучок и резиме на резултатите од тестот

Слики

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
Јазик: 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
Јазик: 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
Јазик: 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);

}

Ресурси и референци

Сè уште нема ресурси.

Датотеки📁

Други датотеки

  • 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