প্রকল্প: RJMD-R2101 এইচ-ব্রিজ MOSFET মোটর ড্রাইভার
এই টিউটোরিয়ালে, আমরা RJMD-R2101 H-Bridge MOSFET মোটর ড্রাইভার ব্যবহার করে একটি DC মোটর নিয়ন্ত্রণ করার উপায়গুলি অন্বেষণ করব। এই প্রকল্পটি দেখাবে কীভাবে IRFZ44N MOSFETs-কে IR2101 গেট ড্রাইভারগুলির সাথে মিলিয়ে মোটরের গতি এবং দিক নিয়ন্ত্রণ করতে কার্যকরভাবে ব্যবহার করা যায়। এই গাইডের শেষে, আপনার কাছে একটি কার্যকর মোটর নিয়ন্ত্রণ সেটআপ থাকবে যা মোটরকে মসৃণভাবে ত্বরান্বিত, ব্রেক এবং থামাতে পারে।

যেমন আমরা অগ্রসর হচ্ছি, আমরা প্রয়োজনীয় হার্ডওয়্যার উপাদান, তারের নির্দেশনা এবং উদাহরণ কোড স্নিপেটগুলি কভার করব যাতে সবকিছু একসাথে কীভাবে কাজ করে তা স্পষ্ট হয়। আরও ভিজ্যুয়াল উপস্থাপনার জন্য, আমি সংশ্লিষ্ট ভিডিওটি দেখার সুপারিশ করছি (ভিডিওতে 02:15)।

হার্ডওয়্যার ব্যাখ্যা করা
এই প্রকল্পের প্রধান উপাদানগুলি হল IR2101 গেট ড্রাইভার এবং IRFZ44N MOSFETs। IR2101 হল একটি উচ্চ-গতির ড্রাইভার যা N-চ্যানেল MOSFETs কে অর্ধ-ব্রিজ কনফিগারেশনে চালানোর জন্য ডিজাইন করা হয়েছে। এটি MOSFETs এর কার্যকর সুইচিং এবং নিয়ন্ত্রণের অনুমতি দেয়, যা মোটরকে মসৃণভাবে চালাতে সক্ষম করে।
IRFZ44N MOSFET গুলি সুইচিং উপাদান হিসেবে কাজ করে যা মোটরকে সরবরাহিত শক্তি নিয়ন্ত্রণ করে। যখন IR2101 দ্বারা সক্রিয় হয়, এই MOSFET গুলি উচ্চ কারেন্ট পরিচালনা করতে পারে, মোটর চালানোর জন্য প্রয়োজনীয় শক্তি প্রদান করে। একসাথে, এই উপাদানগুলি মোটরের দিক এবং গতি সঠিকভাবে নিয়ন্ত্রণ করার অনুমতি দেয়।
ডেটাশিটের বিস্তারিত
| উৎপাদক | আন্তর্জাতিক রেকটিফায়ার |
|---|---|
| পার্ট নম্বর | IRFZ44N |
| লজিক/আইও ভোল্টেজ | ১০ ভি (VGS) |
| সরবরাহ ভোল্টেজ | ৫৫ ভ (ভিডিএস) |
| আউটপুট কারেন্ট (প্রতি চ্যানেল) | ৪৯ এ (সর্বাধিক) |
| পিক কারেন্ট (প্রতি চ্যানেল) | 120 এ (সর্বাধিক) |
| পিডব্লিউএম ফ্রিকোয়েন্সি নির্দেশিকা | ১০০ কিলোহার্জ পর্যন্ত |
| ইনপুট লজিক থ্রেশহোল্ডস | ২.০ ভি (VGS(th)) |
| ভোল্টেজ ড্রপ / আরডিএস(অন)/ স্যাচুরেশন | 0.025 Ω (সর্বাধিক) |
| তাপীয় সীমা | ১৭৫ °সে (সর্বাধিক) |
| প্যাকেজ | TO-220 |
| নোট / ভ্যারিয়েন্টস | এইচ-ব্রিজ কনফিগারেশনে সাধারণত ব্যবহৃত হয়। |
- MOSFET গুলোর জন্য সঠিক তাপ নিষ্কাশন নিশ্চিত করুন যাতে অতিরিক্ত তাপ না হয়।
- গতি নিয়ন্ত্রণের জন্য পিডব্লিউএম ব্যবহার করুন যাতে মসৃণ মোটর কার্যক্রম অর্জিত হয়।
- শক্তি সরবরাহের ভোল্টেজ নিশ্চিত করুন যে এটি MOSFET রেটিং অতিক্রম করে না।
- মোটরটি সংযোগ করার সময় সঠিক মেরুতা নিশ্চিত করুন যাতে ক্ষতি এড়ানো যায়।
- বিদ্যুৎ সরবরাহের কাছে ডিকাপলিং ক্যাপাসিটর ব্যবহার করুন যাতে ভোল্টেজ স্থিতিশীল থাকে।
তারের নির্দেশাবলী

RJMD-R2101 মোটর ড্রাইভারটি সংযোগ করতে, প্রথমে পাওয়ার সাপ্লাই সংযুক্ত করুন। ড্রাইভারের VCC পিনটি 5V পাওয়ার সোর্সের সাথে সংযুক্ত করুন। GND পিনটি পাওয়ার সাপ্লাইয়ের গ্রাউন্ডের সাথে সংযুক্ত করা উচিত। পরবর্তীতে, নিয়ন্ত্রণ পিনগুলি সংযুক্ত করুন: প্রথম MOSFET-এর জন্য PWM সংকেতটি পিনে যেতে হবে।PWM1_HIN1_PIN(যা পিন ৯), এবং প্রথম MOSFET-এর জন্য সক্ষমতা পিনটি সংযুক্ত হওয়া উচিতEN1_LIN1_PIN(pin 8)। দ্বিতীয় MOSFET-এর জন্য, PWM সংকেতটি সংযুক্ত করুনPWM2_HIN2_PIN(পিন ৩) এবং সক্ষমতা পিনেEN2_LIN2_PIN(pin 2)।

মোটরের টার্মিনালগুলোকে H-Bridge এর উপযুক্ত আউটপুটগুলোর সাথে সংযুক্ত করতে নিশ্চিত করুন। যদি আপনি Arduino ব্যবহার করেন, তবে PWM পিনগুলোকে Arduino বোর্ডের নির্ধারিত পিনগুলোর সাথে সংযুক্ত করুন। উদাহরণস্বরূপ, সংযুক্ত করুনPWM1_HIN1_PINপিন ৯-এ,EN1_LIN1_PINপিন ৮-এ, এবং এভাবে। এই সেটআপটি আপনাকে মোটরটি কার্যকরভাবে নিয়ন্ত্রণ করতে দেবে।
কোড উদাহরণ ও পদক্ষেপ নির্দেশিকা
কোড সেকশনে সংজ্ঞায়িত পিন ব্যবহার করে মোটরের গতি এবং দিক নিয়ন্ত্রণ করার জন্য ফাংশনগুলি অন্তর্ভুক্ত রয়েছে। নিচে মোটর নিয়ন্ত্রণ স্কেচ থেকে একটি অংশ দেওয়া হল:
const int PWM1_HIN1_PIN= 9; // PWM pin for first MOSFET
const int EN1_LIN1_PIN= 8; // Enable pin for first MOSFET
এই অংশে, আমরা প্রথম MOSFET নিয়ন্ত্রণের জন্য ব্যবহৃত পিনগুলি সংজ্ঞায়িত করি।PWM1_HIN1_PINগতি নিয়ন্ত্রণের জন্য ব্যবহৃত হয়, যখনEN1_LIN1_PINমোটর ড্রাইভারকে সক্রিয় করে।
void Motor(boolean direction, int speed=0) {
int speedPWM = map(speed, 0, 100, 0, 255);
// Control motor direction and speed here
}
এই ফাংশন একটি গ্রহণ করে একটিdirectionমোটরটি ঘড়ির কাঁটার দিকে বা বিপরীত দিকে ঘুরবে কিনা তা নির্ধারণ করার জন্য প্যারামিটার।speedপ্যারামিটারটি একটি PWM মানের সাথে মানচিত্রিত হয়, যা মোটর গতির উপর মসৃণ নিয়ন্ত্রণের অনুমতি দেয়।
void stop() {
digitalWrite(EN1_LIN1_PIN, LOW); // Disable first MOSFET
}
শব্দstopফাংশনটি মোটরকে নিষ্ক্রিয় করে সক্ষম পিনটি নিম্নে সেট করে, কার্যত মোটরের মাধ্যমে কোনো বর্তমান প্রবাহ বন্ধ করে। এটি উপাদানগুলির ক্ষতি ছাড়াই দ্রুত থামার নিশ্চয়তা দেয়।
সম্পূর্ণ কোডের জন্য, দয়া করে নিবন্ধের নিচে লোড করা সম্পূর্ণ প্রোগ্রামের দিকে দেখুন।
প্রদর্শনী / কী আশা করবেন
যখন সেটআপ সম্পন্ন হবে, আপনি দেখতে পাবেন যে মোটর আরডুইনো থেকে পাঠানো কমান্ডগুলির প্রতি প্রতিক্রিয়া জানাচ্ছে। মোটর নির্দিষ্ট দিকের দিকে ঘুরবে, এবং আপনি PWM সিগন্যাল ব্যবহার করে গতির সমন্বয় করতে পারবেন। সাধারণ সমস্যাগুলির মধ্যে রয়েছে বিপরীত মেরু সংযোগ, যা মোটরকে বিপরীত দিকে চালাতে পারে, এবং ভাসমান ইনপুট যা অস্থির আচরণ সৃষ্টি করতে পারে।
পরীক্ষার সময়, আপনি দেখতে পারেন যে মোটরের গতি PWM মানের উপর ভিত্তি করে পরিবর্তিত হচ্ছে। পাওয়ার প্রবাহে বিঘ্ন ঘটানো এড়াতে সমস্ত সংযোগ সুরক্ষিত রয়েছে কিনা তা নিশ্চিত করুন, যা কর্মক্ষমতাকে প্রভাবিত করতে পারে (ভিডিওতে 05:45)।
ভিডিও টাইমস্ট্যাম্পস
- ০০:০০- প্রকল্পের পরিচিতি
- ০২:১৫- হার্ডওয়্যার উপাদানের সারসংক্ষেপ
- ০৫:৪৫- মোটর নিয়ন্ত্রণের প্রদর্শনী
- ০৮:৩০- কোড পরিদর্শন এবং ব্যাখ্যা
ছবি
/*
* আইআর2101 মোটর নিয়ন্ত্রণ স্কেচ
* গতি, ব্রেক এবং স্টপ সহ ডিসি মোটর নিয়ন্ত্রণ করে
* আইআরএফ44জেডএন মোসফেট উচ্চ পাশ এবং নিম্ন পাশের জন্য ব্যবহৃত হয়।
* আইআর2101 গেট ড্রাইভার মোসফেট চালানোর জন্য ব্যবহৃত হয়।
* আপনি কোড, পিসিবি উৎপাদনের জন্য গারবার ফাইল এবং ওয়্যারিং ডায়াগ্রাম পেতে পারেন
* http://robojax.com/RJT390 থেকে
*
* লিখেছেন আহমদ শামশিরি ১৯ নভেম্বর, ২০২৪
* www.Robojax.com https://youTube.com/@robojax
*/
const int PWM1_HIN1_PIN= 9; // একটি পিন্ট হতে হবে ~
const int EN1_LIN1_PIN= 8;
const int PWM2_HIN2_PIN= 3; // একটি পিন্ট হতে হবে ~
const int EN2_LIN2_PIN= 2;
const boolean CW =1;
const boolean CCW =0;
void Motor(boolean, int); // প্রোটোটাইপ
void brake(); // প্রোটোটাইপ
void stop(); // প্রোটোটাইপ
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); // CW তে ৫০% গতিতে
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);
}
}
সম্পদ ও রেফারেন্সসমূহ
-
বাহ্যিক
-
বাহ্যিকIR2101 Gate Driver Datasheetinfineon.com
-
বাহ্যিকIRFZ44N MOSFET datasheetinfineon.com
ফাইলসমূহ📁
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