মটর ড্রাইভার কন্ট্রোল মাত্র ৪ পিনেই
ডুয়াল চ্যানেল মটর ড্রাইভার এ ৪ টি পিন দিয়ে ডাইরেকশন কন্ট্রোল এবং আলাদা ২টি পিন দিয়ে দুই মটর এর স্পিড কন্ট্রোল হয়। চাইলেই সেটা ৪ পিনে কমিয়ে আনা যায়!
প্রথমত আমরা দেখে নিই একটি টিপিকাল মটর ড্রাইভার কিভাবে কন্ট্রোল হয়। মাঝের ৪টি ডাইরেকশন কন্ট্রোল যেকোন ডিজিটাল পিনে কানেকশন দিলেই হয়ে যায়, কিন্তু দুই কিনারার স্পিড কন্ট্রোল পিন (হলুদ কালার ওয়্যারিং) অবশ্যই আরডুইনোর PWM পিন থেকে আসতে হয়ঃ
সেক্ষেত্রে কোডিং সিস্টেম হয় নিচের মতোঃ
#define lms 5
#define lmf 6
#define lmb 7
#define rmf 8
#define rmb 9
#define rms 10
void setup(){
pinMode(lmf, OUTPUT);
pinMode(lmb, OUTPUT);
pinMode(rmf, OUTPUT);
pinMode(rmb, OUTPUT);
motor(250,250); //run all the motor forward at full speed
}
void loop(){
}
void motor(int a, int b) {
if (a > 0) {
digitalWrite(lmf, 1);
digitalWrite(lmb, 0);
}
else {
a = -(a);
digitalWrite(lmf, 0);
digitalWrite(lmb, 1);
}
if (b > 0) {
digitalWrite(rmf, 1);
digitalWrite(rmb, 0);
}
else {
b = -b;
digitalWrite(rmf, 0);
digitalWrite(rmb, 1);
}
analogWrite(lms, a);
analogWrite(rms, b);
}
এখন আমরা দেখি মটর ড্রাইভারে ৪ পিনের কানেকশনের বেলায় কি করতে হয়. এক্ষেত্রে মটর ড্রাইভার স্পিড কন্ট্রোল পিনগুলো ৫ভোল্টে কানেক্ট করতে হয়। তখন শুধুমাত্র ইনপুট পিনগুলোতেই আমরা একই সাথে ডাইরেকশন এবং স্পিড দুটোই ইনপুট দিতে পারি। তখন আমাদের ৪টি ডাইরেকশন পিনই ৪টি PWM পিনে বসাতে হবেঃ
তখন কোডে নিচের মতো চেঞ্জ আসবেঃ
#define lms 5
#define lmf 6
#define lmb 7
#define rmf 8
#define rmb 9
#define rms 10
void setup(){
pinMode(lmf, OUTPUT);
pinMode(lmb, OUTPUT);
pinMode(rmf, OUTPUT);
pinMode(rmb, OUTPUT);
motor(250,250); //run all the motor forward at full speed
}
void loop(){
}
void motor(int a, int b) {
if (a > 0) {
analogWrite(lmf, a);
analogWrite(lmb, 0);
}
else {
a = -(a);
analogWrite(lmf, 0);
analogWrite(lmb, a);
}
if (b > 0) {
analogWrite(rmf, b);
analogWrite(rmb, 0);
}
else {
b = -b;
analogWrite(rmf, 0);
analogWrite(rmb, b);
}
}
যখন তোমার রোবটে ডিজিটাল পিনের সংকট দেখা দিবে, তখন এই টেকনিক টা চমৎকার কাজে আসবে!
আশা করছি এই সিস্টেম টা নিজের মতো ট্রাই করে দেখবে!