سرو موتور کنٹرول: مکمل گائیڈ
مہم تعلیمات:
سرو موتور کنٹرول کی تعریف: سرو موتور کنٹرول الیکٹرانک سگنلز کے ذریعے موتور کی پوزیشن، رفتار اور تیزی کو درست طور پر منظم کرنے کی اجازت دیتا ہے۔
فیڈبیک مکانزم: فیڈبیک سسٹم، جس کا عام طور پر پوٹینٹی آمیٹر یا انکوڈر ہوتا ہے، موتور کے آؤٹ پٹ کو کنٹرول ان پٹ کے ساتھ درست طور پر میچ کرتا ہے۔
PWM سگنل: پالس-وڈتھ مودولیشن (PWM) الیکٹرکل پالسوں کی مدت بدل کر سرو کی پوزیشن مقرر کرنے کے لیے ضروری ہے۔
آرڈینو اور سرو موتور: آرڈینو بورڈ کا استعمال سرو موتروں کو پروگرام کرنے اور کنٹرول کرنے کا مقبول اور موثر طریقہ ہے جس کے لیے کم ہارڈوئیر کی ترتیب کی ضرورت ہوتی ہے۔
سرو موتروں کے اطلاقیات: سرو موتروں کی ضرورت روبوٹکس اور خودکار سسٹمز جیسے منصوبوں میں درست پوزیشنل کنٹرول کے لیے ہوتی ہے۔
سرو موتور ایک موتور ہے جس کی تعمیر بلند معیاری صحت و درستگی کے لیے کی گئی ہے۔ یہ عام DC موتور سے مختلف ہے کیونکہ یہ مستقل گھومنے کی بجائے کسی خاص پوزیشن کو برقرار رکھنے کی صلاحیت رکھتا ہے۔ اس خصوصیت کی وجہ سے سرو موتروں کو روبوٹکس، خودکاری، اور شوقیہ منصوبوں کے لیے مثالی بناتا ہے۔
یہ مضمون یہ بتاتا ہے کہ سرو موتور کنٹرول کیسے کام کرتا ہے، مختلف قسم کے سرو موتروں کیا ہیں، اور مختلف کنٹرول کے طریقے اور ڈیوائسز۔ یہ سرو موتروں کے اطلاقیات اور منصوبوں کے مثالیں بھی فراہم کرتا ہے۔
سرو موتور کیا ہے؟
سرو موتور کی تعریف کی جاتی ہے کہ ایک ایکٹیویٹر جس کے ذریعے پوزیشن (کون)، رفتار، اور تیزی کو درست طور پر کنٹرول کیا جا سکتا ہے۔ عام طور پر سرو موتور تین اہم حصوں پر مشتمل ہوتا ہے: ایک DC موتور، ایک کنٹرول سرکٹ، اور ایک فیڈبیک ڈیوائس۔
DC موتور سرو کو بجلی دیتا ہے اور گیروں سے جڑا ہوتا ہے جو آؤٹ پٹ شافٹ پر رفتار کو کم کرتے ہیں اور ٹارک کو بڑھاتے ہیں۔

آؤٹ پٹ شافٹ سرو کا ایک حصہ ہے جو گھومتا ہے اور لوڈ کو حرکت دیتا ہے۔
کنٹرول سرکٹ کا ذمہ داری کنٹرولر سے بیرونی ان پٹ سگنل کو وصول کرنا اور پروسیسنگ کرنا ہے۔ یہ سگنل سرو کو بتاتے ہیں کہ کس پوزیشن، رفتار یا سمت پر جانا ہے۔ کنٹرول سرکٹ DC موتور کو چلانے کے لیے بھی بجلی دیتا ہے۔
فیڈبیک ڈیوائس عام طور پر ایک پوٹینٹی آمیٹر یا اینکوڈر ہوتا ہے جو آؤٹ پٹ شافٹ کی موجودہ پوزیشن کا پیمائش کرتا ہے۔

فیڈبیک ڈیوائس پوزیشن کے معلومات کو کنٹرول سرکٹ کو واپس بھیجتا ہے، جس کے بعد کنٹرول سرکٹ DC موتور کی بجلی کو تناسب دے کر موجودہ پوزیشن کو ان پٹ سگنل کی مطلوبہ پوزیشن کے ساتھ مطابق کرتا ہے۔
کنٹرول سرکٹ اور فیڈبیک ڈیوائس کے درمیان فیڈبیک لوپ کا کام یہ ہوتا ہے کہ سرو کو اپنے حرکت کے محدودہ کے اندر کسی بھی پوزیشن پر حرکت کرنے اور اسے برقرار رکھنے کی اجازت دیتا ہے۔
سرو موتور کو کیسے کنٹرول کیا جائے؟
سرو موتروں کو کنٹرول کرنے کے لیے PWM (پالس-وڈتھ مودولیشن) سگنل کو سرو کے سگنل لائن پر بھیجا جاتا ہے۔ PWM ایک ٹیکنیک ہے جس میں سگنل کو تیزی سے اوں اور آف کیا جاتا ہے تاکہ مختلف وڈتھ کے پالس بنائے جا سکیں۔ پالس کی وڈتھ آؤٹ پٹ شافٹ کی پوزیشن کو مقرر کرتی ہے۔
مثال کے طور پر، جب آپ 1.5 ملی سیکنڈ (ms) کی پالس وڈتھ کے ساتھ PWM سگنل بھیجتے ہیں تو سرو نیوٹرل پوزیشن (90 ڈگری) پر منتقل ہو جاتا ہے۔

جب آپ 1 ms کی پالس وڈتھ کے ساتھ PWM سگنل بھیجتے ہیں تو سرو کم سے کم پوزیشن (0 ڈگری) پر منتقل ہو جاتا ہے۔ جب آپ 2 ms کی پالس وڈتھ کے ساتھ PWM سگنل بھیجتے ہیں تو سرو زیادہ سے زیادہ پوزیشن (180 ڈگری) پر منتقل ہو جاتا ہے۔
PWM سگنل کی فریکوئنسی 50 Hz ہوتی ہے، جس کا مطلب ہے کہ یہ ہر 20 ms پر دہراتا ہے۔ یہ دورانیہ میں پالس وڈتھ 1 ms سے 2 ms تک تبدیل ہوسکتی ہے۔
سرو موتروں کو PWM سگنل بھیجنے کے بہت سے طریقے ہیں۔ کچھ سب سے عام طریقے یہ ہیں:
آرڈینو بورڈ یا کسی دوسرے مائیکروکنٹرولر کا استعمال
پوٹینٹی آمیٹر یا کسی دوسرے آنلوگ سینسر کا استعمال
جوئسٹک یا کسی دوسرے ڈیجیٹل ان پٹ ڈیوائس کا استعمال
مخصوص سرو کنٹرولر یا ڈرایور کا استعمال
نیچے کے حصوں میں ہم یہ تمام طریقے مزید تفصیل سے جانے گے اور ان کے کام کے بعض مثالیں دیکھیں گے۔
آرڈینو کے ساتھ سرو موتور کنٹرول
آرڈینو سرو موتروں کو کنٹرول کرنے کا سب سے مقبول پلیٹ فارم ہے۔ آرڈینو بورڈوں میں سرو کو سگنل بھیجنے کے لیے بیلت ان بیلت آؤٹ پٹ ہوتے ہیں۔ آرڈینو کے پاس سرو کنٹرول کے لیے کوڈ لکھنے کو آسان بنانے کے لیے سرو لائبریری بھی ہوتی ہے۔
آرڈینو کے ساتھ سرو موتور کو کنٹرول کرنے کے لیے آپ کو درکار ہوگا:
ایک آرڈینو بورڈ (جیسے آرڈینو UNO)
ایک معاہدہ سرو موتور (جیسے SG90)
جمر واائرز
ایک بریڈ بورڈ (اختیاری)
سرو سے سرخ واائر آرڈینو بورڈ کے 5V سے جڑا ہوتا ہے۔ سرو سے کالا واائر آرڈینو بورڈ کے GND سے جڑا ہوتا ہے۔ سرو سے سفید واائر آرڈینو بورڈ کے پن 9 سے جڑا ہوتا ہے۔
آرڈینو بورڈ کو پروگرام کرنے کے لیے آپ کو آرڈینو IDE (آن لائن یا آف لائن) کا استعمال کرنا ہوگا۔ آپ سرو لائبریری سے کسی مثال کا استعمال کر سکتے ہیں یا اپنا کوڈ لکھ سکتے ہیں۔
نیچے دیا گیا کوڈ یہ ظاہر کرتا ہے کہ کس طرح for loop کے ذریعے سرو موتور کو 180 ڈگری کے دوران آگے پیچھے کرایا جا سکتا ہے:
#include <Servo.h> // سرو لائبریری شامل کریں
Servo myservo; // سرو آبجیکٹ بنائیں
int pos = 0; // پوزیشن کے لیے متغیر
void setup() {
myservo.attach(9); // پن 9 پر سرو آبجیکٹ کو لنک کریں
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // 0 سے 180 ڈگری تک لوپ
myservo.write(pos); // سرو آبجیکٹ کو پوزیشن لکھیں
delay(15); // 15 ملی سیکنڈ کا انتظار کریں
}
for (pos = 180; pos >= 0; pos -= 1) { // 180 سے 0 ڈگری تک لوپ
myservo.write(pos); // سرو آبجیکٹ کو پوزیشن لکھیں
delay(15); // 15 ملی سیکنڈ کا انتظار کریں
}
}
یہ کوڈ دو لوپ کا استعمال کرتا ہے تاکہ پوزیشن کے متغیر کو 0 سے 180 ڈگری تک اور بالعکس بڑھا سکے۔ پھر یہ قیمت myservo.write(pos) کے ذریعے سرو آبجیکٹ کو لکھتی ہے۔ یہ ہر مرحلے کے درمیان 15 ملی سیکنڈ کا انتظار کرکے حرکت کو کم کرتا ہے۔
آپ اپنے آرڈینو بورڈ کو آئی ڈی ای کے اپلوڈ بٹن کے ذریعے اپلوڈ کر سکتے ہیں، اور اپنے سرو موتور کو 180 ڈگری کے دوران آگے پیچھے کریں دیکھ سکتے ہیں۔
پوٹینٹی آمیٹر کے ساتھ سرو موتور کنٹرول
پوٹینٹی آمیٹر ایک آنلوگ سینسر ہے جس کی ریزسٹنس آپ کے نبی کو گھمانے کے حساب سے بدل سکتی ہے۔ آپ پوٹینٹی آمیٹر کو سرو موتور کو کنٹرول کرنے کے لیے ایک ان پٹ ڈیوائس کے طور پر استعمال کر سکتے ہیں۔
پوٹینٹی آمیٹر کے ساتھ سرو موتور کو کنٹرول کرنے کے لیے آپ کو درکار ہوگا:
ایک آرڈینو بورڈ (جیسے آرڈینو UNO)
ایک معاہدہ سرو موتور (جیسے SG90)
ایک پوٹینٹی آمیٹر (10k اوہم)
جمر واائرز
ایک بریڈ بورڈ
پوٹینٹی آمیٹر اور سرو موتور کو آرڈینو بورڈ سے جوڑنے کا واائرنگ ڈائیاگرام نیچے دکھایا گیا ہے:
پوٹینٹی آمیٹر سے سرخ واائر آرڈینو بورڈ کے 5V سے جڑا ہوتا ہے۔ پوٹینٹی آمیٹر سے کالا واائر آرڈینو بورڈ کے GND سے جڑا ہوتا ہے۔ پوٹینٹی آمیٹر سے سبز واائر آرڈینو بورڈ کے پن A0 سے جڑا ہوتا ہے۔
سرو سے سرخ واائر بریڈ بورڈ کے دوسرے رو سے 5V سے جڑا ہوتا ہے۔ سرو سے کالا واائر بریڈ بورڈ کے دوسرے رو سے GND سے جڑا ہوتا ہے۔ سرو سے سفید واائر بریڈ بورڈ کے دوسرے رو سے پن D9 سے جڑا ہوتا ہے۔
آپ کے آرڈینو بورڈ کو پروگرام کرنے کے لیے آپ کو پچھلے مثال کے کوڈ کا استعمال کرنا ہوگا لیکن کچھ لائنیں تبدیل کرنا ہوگا:
#include <Servo.h> // سرو لائبریری شامل کریں
Servo myservo; // سرو آبجیکٹ بنائیں
int potpin = A0; // پوٹینٹی آمیٹر سے جڑا پن
int val = 0; // پوٹینٹی آمیٹر کی قیمت پڑھنے کے لیے متغیر
void setup() {
myservo.attach(9); // پن D9 پر سرو آبجیکٹ کو لنک کریں
}
void loop() {
val = analogRead(potpin); // پوٹینٹی آمیٹر (0 -1023) سے قیمت پڑھیں
val = map(val,0,1023,0,180); // قیمت کا رینج (0 -180) میں میپ کریں
myservo.write(val); // میپ شدہ قیمت سرو آ