Arduino কোড L9110 ডুয়াল DC মোটর কন্ট্রোলার মডিউলের জন্য
এই টিউটোরিয়ালে, আমরা শিখব কীভাবে L9110 ডুয়াল মোটর কন্ট্রোলার মডিউল এবং একটি Arduino ব্যবহার করে দুটি DC মোটর নিয়ন্ত্রণ করা যায়। এই প্রকল্পটি আপনাকে প্রতিটি মোটরের দিক এবং গতি পরিচালনা করতে সক্ষম করবে, যা রোবোটিক্স এবং অটোমেশনের মতো বহুমুখী অ্যাপ্লিকেশনের জন্য অনুমতি দেবে। এই গাইডের শেষে, আপনার কাছে উপাদানগুলি কীভাবে সংযোগ করতে হয় এবং আপনার মোটরগুলিকে মসৃণভাবে চালানোর জন্য প্রয়োজনীয় কোড লেখার একটি স্পষ্ট ধারণা থাকবে। যদি আপনার স্পষ্টীকরণের প্রয়োজন হয়, তবে ভিডিওটি (ভিডিওতে 00:00 এ) দেখতে ভুলবেন না।
হার্ডওয়্যার ব্যাখ্যা
L9110 ডুয়াল DC মোটর কন্ট্রোলার মডিউল আপনাকে একই সাথে দুটি মোটর নিয়ন্ত্রণ করতে দেয়। এতে দুটি H-ব্রিজ সার্কিট রয়েছে, যা আপনাকে মোটর ভোল্টেজের পোলারিটি বিপরীত করতে সক্ষম করে। এর অর্থ হল আপনি কন্ট্রোল পিন টগল করে সহজেই প্রতিটি মোটরের দিক পরিবর্তন করতে পারেন। মডিউলটিতে চারটি মূল পিন রয়েছে: প্রতিটি মোটরের জন্য দুটি, ঘূর্ণনের দিক নিয়ন্ত্রণ করতে। যখন আপনি একটি পিন উচ্চ এবং অন্যটি নিম্ন সেট করেন, মোটরটি এক দিকে ঘোরে; পিনের অবস্থা বিপরীত করলে এটি বিপরীত দিকে ঘুরবে। এই নমনীয়তা রোবোটিক্সের মতো অ্যাপ্লিকেশনের জন্য অপরিহার্য, যেখানে মোটর চলাচলের উপর সুনির্দিষ্ট নিয়ন্ত্রণ প্রয়োজন।ডেটাশিট বিবরণ
| নির্মাতা | STMicroelectronics |
|---|---|
| পার্ট নম্বর | L9110 |
| লজিক/IO ভোল্টেজ | 2.5–5.5 V |
| সাপ্লাই ভোল্টেজ | 2.5–12 V |
| আউটপুট কারেন্ট (প্রতি চ্যানেল) | 1 A |
| পিক কারেন্ট (প্রতি চ্যানেল) | 2 A |
| PWM ফ্রিকোয়েন্সি নির্দেশিকা | 10 kHz |
| ইনপুট লজিক থ্রেশহোল্ড | 0.8 V (নিম্ন), 2.0 V (উচ্চ) |
| ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন | 0.3 V at 1 A |
| থার্মাল সীমা | 150 °C |
| প্যাকেজ | DIP-16 |
| নোট / ভেরিয়েন্ট | ছোট রোবোটিক্স প্রকল্পে সাধারণত ব্যবহৃত হয়। |
- ক্রমাগত অপারেশনের জন্য সঠিক হিট-সিংকিং নিশ্চিত করুন।
- সর্বোত্তম কর্মক্ষমতার জন্য PWM সংকেত 10 kHz এর নিচে রাখুন।
- শব্দ কমানোর জন্য পাওয়ার সংযোগের কাছে ডিকপলিং ক্যাপাসিটর ব্যবহার করুন।
- বিপরীত পোলারিটি সংযোগ থেকে সাবধান থাকুন; এগুলি মডিউলের ক্ষতি করতে পারে।
- অতিরিক্ত গরম এড়াতে সর্বদা রেটেড কারেন্ট সীমা পরীক্ষা করুন।
ওয়্যারিং নির্দেশাবলী
Arduino এর সাথে L9110 ডুয়াল DC মোটর কন্ট্রোলার মডিউল সংযোগ করতে, পাওয়ার পিন সংযোগ করে শুরু করুন। L9110 এর VCC পিনটি Arduino এর 5V আউটপুটের সাথে সংযুক্ত করুন এবং GND পিনটি Arduino এর একটি গ্রাউন্ড পিনের সাথে সংযুক্ত করুন। এরপর, মোটর A এর জন্য, A1A পিনটি Arduino এর ডিজিটাল পিন 2 এর সাথে এবং A1B পিনটি ডিজিটাল পিন 3 এর সাথে সংযুক্ত করুন। তারপর, মোটর B এর জন্য, B1A পিনটি ডিজিটাল পিন 8 এর সাথে এবং B1B পিনটি ডিজিটাল পিন 9 এর সাথে সংযুক্ত করুন। নিশ্চিত করুন যে মোটরগুলি L9110 মডিউলের তাদের নিজ নিজ আউটপুটের সাথে সঠিকভাবে সংযুক্ত রয়েছে।
কোড উদাহরণ ও ওয়াকথ্রু
সেটআপ ফাংশনে, আমাদের কন্ট্রোল পিনগুলিকে আউটপুট হিসাবে সংজ্ঞায়িত করতে হবে। Arduino এর জন্য মোটর দিক কার্যকরভাবে নিয়ন্ত্রণ করা অপরিহার্য:void setup() {
pinMode(B1A,OUTPUT);// পিনকে আউটপুট হিসাবে সংজ্ঞায়িত করুন
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
delay(3000);
}
এই কোড স্নিপেটটি মোটর কন্ট্রোল পিন সেট আপ করে, নিশ্চিত করে যে Arduino L9110 মডিউলে সংকেত পাঠাতে পারে।
প্রোগ্রামের প্রধান লুপটি `motorA` এবং `motorB` ফাংশনগুলিকে বিভিন্ন প্যারামিটার দিয়ে কল করে মোটর নিয়ন্ত্রণ করে দিক পরিবর্তন করতে:
void loop() {
motorA('R');// মোটর A কে ডানে ঘুরান
delay(2000);
motorA('L');// মোটর A কে বামে ঘুরান
delay(2000);
motorA('O');// মোটর A বন্ধ করুন
delay(2000);
...
}
এই অংশে, মোটরগুলিকে ডানে এবং বামে ঘোরানো হয়, দিক পরিবর্তন পর্যবেক্ষণের জন্য মাঝে বিলম্ব সহ।
`motorA` ফাংশনটি ইনপুট দিকের উপর ভিত্তি করে মোটর A নিয়ন্ত্রণ করতে সংজ্ঞায়িত করা হয়েছে:
void motorA(char d) {
if(d =='R'){
digitalWrite(A1A,LOW);
digitalWrite(A1B,HIGH);
} else if (d =='L'){
digitalWrite(A1A,HIGH);
digitalWrite(A1B,LOW);
} else {
digitalWrite(A1A,LOW);
digitalWrite(A1B,LOW);
}
}
এই ফাংশনটি প্রদত্ত দিক পরীক্ষা করে এবং সেই অনুযায়ী কন্ট্রোল পিন সেট করে মোটরটিকে পছন্দসই দিকে ঘোরাতে বা বন্ধ করতে।
প্রদর্শন / কী আশা করবেন
যখন আপনি কোডটি চালান, আপনার মোটরগুলিকে বাম এবং ডান ঘূর্ণনের মধ্যে বিকল্প হতে দেখা উচিত। বিলম্বগুলি আপনাকে দিক পরিবর্তন স্পষ্টভাবে পর্যবেক্ষণ করতে দেয়। বিপরীত সংযোগের মতো সাধারণ ভুল থেকে সাবধান থাকুন, যা অপ্রত্যাশিত আচরণ বা উপাদানগুলির ক্ষতি করতে পারে। অতিরিক্তভাবে, নিশ্চিত করুন যে আপনার পাওয়ার সাপ্লাই আপনার ব্যবহৃত মোটরগুলির জন্য পর্যাপ্ত (ভিডিওতে 00:00 এ)।
107-Arduino code for an L9110 dual DC motor controller module
ভাষা: C++
/*
* Display number on a seven-segment display with Arduino
* Written by Ahmad Shamshiri for Robojax.com
Date modified: Jun 11, 2018 at 17:20 in Ajax, Ontario, Canada
Watch video instructions for this code: https://youtu.be/-g6Q9lSHDzg
Code is provided for free AS IS without warranty.
You can share this code as long as you keep the above note intact.
*/
const int A1A = 2;//define pin 2 for A1A
const int A1B = 3;//define pin 3 for A1B
const int B1A = 8;//define pin 8 for B1A
const int B1B = 9;//define pin 9 for B1B
void setup() {
pinMode(B1A,OUTPUT);// define pin as output
pinMode(B1B,OUTPUT);
pinMode(A1A,OUTPUT);
pinMode(A1B,OUTPUT);
delay(3000);
}
void loop() {
motorA('R');// Turn motor A to RIGHT
delay(2000);
motorA('L');// Turn motor A to LEFT
delay(2000);
motorA('O');// Turn motor A OFF
delay(2000);
motorB('R');// Turn motor B to RIGHT
delay(2000);
motorB('L');// Turn motor B to LEFT
delay(2000);
motorB('O');// Turn motor B OFF
delay(2000);
motorA('R');// Turn motor A to RIGHT
motorB('R'); // Turn motor A to RIGHT
delay(2000);
motorA('L');// Turn motor A to LEFT
motorB('L');// Turn motor B to LEFT
delay(3000);
motorA('O');// Turn motor A OFF
motorB('O');// Turn motor B OFF
delay(5000);
}
/*
* @motorA
* Activation rotation of motor A
* d is the direction
* R = Right
* L = Left
*/
void motorA(char d)
{
if(d =='R'){
digitalWrite(A1A,LOW);
digitalWrite(A1B,HIGH);
}else if (d =='L'){
digitalWrite(A1A,HIGH);
digitalWrite(A1B,LOW);
}else{
//Robojax.com L9110 Motor Tutorial
// Turn motor OFF
digitalWrite(A1A,LOW);
digitalWrite(A1B,LOW);
}
}// motorA end
/*
* @motorB
* Activation rotation of motor B
* d is the direction
* R = Right
* L = Left
*/
void motorB(char d)
{
if(d =='R'){
digitalWrite(B1A,LOW);
digitalWrite(B1B,HIGH);
}else if(d =='L'){
digitalWrite(B1A,HIGH);
digitalWrite(B1B,LOW);
}else{
//Robojax.com L9110 Motor Tutorial
// Turn motor OFF
digitalWrite(B1A,LOW);
digitalWrite(B1B,LOW);
}
}// motorB end
আপনাকে যা প্রয়োজন হতে পারে
-
অ্যামাজন
-
ইবে
-
অলি এক্সপ্রেসPurchase L9110 motor driver from AliExpress-2s.click.aliexpress.com
সম্পদ ও রেফারেন্সসমূহ
এখনো কোনো সম্পদ নেই।
ফাইলসমূহ📁
ডেটাশিট (পিডিএফ)
-
L9110 মোটর ড্রাইভার মডিউল ডেটাশিটL9110 মোটর ড্রাইভার মডিউল ডেটাশিট DC মোটর চালানোর জন্য পিনআউট, স্পেসিফিকেশন এবং অ্যাপ্লিকেশন সার্কিট কভার করে।
robojax_L9110_datasheet.pdf0.20 MB
ফ্রিটজিং ফাইল
-
L9110 H-ব্রিজ মোটর ড্রাইভার মডিউল
L9110 H-bridge module.fzpz0.04 MB