IRF5305 E-Switch મોડ્યુલનો ઉપયોગ કરીને મોટરની ગતિ નિયંત્રિત કરવી
આ માર્ગદર્શિકા IRF5305 E-Switch મોડ્યુલનું અન્વેષણ કરે છે, જે એક શક્તિશાળી અને બહુમુખી ઘટક છે જે Arduino માંથી ઓછા-વોલ્ટેજ સિગ્નલ સાથે ઉચ્ચ-પ્રવાહ DC લોડને નિયંત્રિત કરવા માટે P-ચેનલ MOSFET નો ઉપયોગ કરે છે. યાંત્રિક રિલેથી વિપરીત, આ સોલિડ-સ્ટેટ સ્વિચ ઝડપી સ્વિચિંગ, લાંબી આયુષ્ય અને કોઈ ભૌતિક સંપર્ક અધોગતિ પ્રદાન કરે છે. તેનું વાસ્તવિક-વિશ્વ મૂલ્ય એવા લોડને સુરક્ષિત રીતે અને કાર્યક્ષમ રીતે સ્વિચ કરવાની અથવા ઝાંખું કરવાની ક્ષમતામાં રહેલું છે જે Arduino પિન પૂરું પાડી શકે તેના કરતાં ઘણો વધુ પ્રવાહ ખેંચે છે.
આ મોડ્યુલ વિવિધ પ્રોજેક્ટ્સ માટે આદર્શ છે, જેમાં નીચેનાનો સમાવેશ થાય છે:
- રોબોટિક્સ અથવા કસ્ટમ પાવર ટૂલ્સમાં ઉચ્ચ-પ્રવાહ 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 સુધી)
- જમ્પર વાયર
વાયરિંગ માર્ગદર્શિકા
મોડ્યુલને કનેક્ટ કરવું સરળ છે. સિગ્નલ બાજુના બે પિન પોઝિટિવ અને ગ્રાઉન્ડ તરીકે લેબલ થયેલા છે. ગ્રાઉન્ડ પિનને Arduino પરના GND પિન સાથે કનેક્ટ કરો. પોઝિટિવ પિનને 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 ચલ એક સ્થિતિ ફ્લેગ છે જે પ્રોગ્રામ લોડને ચાલુ કે બંધ કરવાનું નક્કી કરવા માટે તપાસે છે. ચાલુ/બંધ સમય બદલવા માટે, તમે if અને else બ્લોક્સમાં delay(3000); આદેશો સંશોધિત કરી શકો છો. વિલંબ મિલિસેકંડમાં માપવામાં આવે છે, તેથી 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 પર). નિષ્કર્ષ એ છે કે સતત, ઉચ્ચ-વર્તમાન એપ્લિકેશનો માટે, મોડ્યુલને ઠંડુ રાખવા અને નુકસાન અટકાવવા માટે હીટસિંક જરૂરી છે.
નુકસાન.
પ્રકરણો
- [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] નિષ્કર્ષ અને પરીક્ષણ પરિણામોનો સારાંશ
છબીઓ
/*
* 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
}
/*
* 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;
}
}
/*
* 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 DatasheetDatasheet 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.pdf0.16 MB