یہ ٹیوٹوریل کا حصہ ہے: سرو موٹرز
سروو موٹرز سے متعلق تمام ویڈیوز جو متعلقہ ہیں، یہاں درج ہیں۔ دیگر ویڈیوز کے لنک اس مضمون کے نیچے ہیں۔
پوٹینشیومیٹر کے ذریعے Arduino استعمال کرتے ہوئے سروو کو کنٹرول کرنا
اس ٹیوٹوریل میں، ہم سیکھیں گے کہ Arduino کے ساتھ پوٹینشیومیٹر استعمال کرکے سروو موٹر کو کیسے کنٹرول کیا جائے۔ پوٹینشیومیٹر ہمیں سروو کے زاویے کو آسانی سے ایڈجسٹ کرنے کی اجازت دیتا ہے، جس سے ہمیں اس کی پوزیشن پر ریئل ٹائم کنٹرول ملتا ہے۔ اس پروجیکٹ کے اختتام تک، آپ کے پاس ایک فعال سیٹ اپ ہوگا جو پوٹینشیومیٹر کی قدر اور متعلقہ سروو زاویہ ظاہر کرتا ہے۔

جیسے ہی پوٹینشیومیٹر گھمایا جاتا ہے، سروو موٹر کا زاویہ 0 سے 180 ڈگری تک تبدیل ہوتا ہے۔ ہم پوٹینشیومیٹر کی قدر پڑھنے کے لیے Arduino کے اینالاگ ان پٹ کا استعمال کریں گے اور پھر ایک سادہ فارمولے کا استعمال کرکے اس قدر کو سروو کی رینج میں میپ کریں گے۔ یہ پروجیکٹ یہ سمجھنے کا ایک بہترین طریقہ ہے کہ اینالاگ ان پٹ کیسے کام کرتے ہیں اور ان کے ساتھ موٹرز کو کیسے کنٹرول کیا جائے (ویڈیو میں 01:45 پر)۔
ہارڈویئر کی وضاحت
اس پروجیکٹ کے لیے، ہمیں ایک Arduino بورڈ، ایک سروو موٹر، اور ایک پوٹینشیومیٹر درکار ہے۔ پوٹینشیومیٹر ایک متغیر ریزسٹر کے طور پر کام کرتا ہے، جو اس کی پوزیشن کے مطابق وولٹیج آؤٹ پٹ فراہم کرتا ہے۔ یہ آؤٹ پٹ Arduino کے اینالاگ ان پٹ کے ذریعے پڑھا جاتا ہے، جس سے ہمیں یہ تعین کرنے میں مدد ملتی ہے کہ سروو کو کتنا گھمانا ہے۔
سروو موٹر ایک قسم کی موٹر ہے جسے ایک مخصوص زاویے پر رکھا جا سکتا ہے۔ یہ ایک کنٹرول سگنل وصول کرتی ہے، جو اسے مطلوبہ پوزیشن بتاتا ہے۔ سروو Arduino سے موصول ہونے والے ان پٹ کی بنیاد پر اس زاویے تک گھومے گی، جس سے یہ مختلف ایپلیکیشنز جیسے روبوٹکس اور ریموٹ کنٹرول ڈیوائسز کے لیے مفید بنتی ہے۔
ڈیٹاشیٹ کی تفصیلات
| مینوفیکچرر | مختلف |
|---|---|
| پارٹ نمبر | اسٹینڈرڈ سروو |
| لاجک/آئی او وولٹیج | 5 V |
| سپلائی وولٹیج | 4.8 – 6 V |
| آؤٹ پٹ کرنٹ (فی چینل) | 1 A تک |
| پیک کرنٹ (فی چینل) | 2 A تک |
| PWM فریکوئنسی رہنمائی | 50 Hz |
| ان پٹ لاجک تھریشولڈز | 0.8 V (کم) / 2.0 V (زیادہ) |
| وولٹیج ڈراپ / RDS(on) / سیچوریشن | 0.5 V |
| تھرمل حدود | 85 °C |
| پیکیج | اسٹینڈرڈ سائز |
| نوٹس / ویریئنٹس | مختلف سائز اور ٹارک ریٹنگز میں دستیاب |
- پاور سپلائی کو حدود میں رکھیں (4.8 – 6 V)۔
- پوٹینشیومیٹر کے لیے مناسب ریزسٹر ویلیو استعمال کریں (10 kΩ تجویز کردہ)۔
- ریورسڈ آپریشن سے بچنے کے لیے کنکشنز کی پولیرٹی چیک کریں۔
- گرمی سے محتاط رہیں؛ یقینی بنائیں کہ سروو اوور لوڈ نہ ہو۔
- مداخلت کم کرنے کے لیے وائرنگ مختصر رکھیں۔
- اگر ضرورت ہو تو پاور ان پٹس پر ڈیکپلنگ کیپسیٹرز استعمال کریں۔
- تصدیق کریں کہ پوٹینشیومیٹر اینالاگ پن A0 سے درست طریقے سے جڑا ہوا ہے۔
وائرنگ ہدایات

اجزاء کو وائر کرنے کے لیے، پہلے پوٹینشیومیٹر کو جوڑیں۔ پوٹینشیومیٹر کا درمیانی پن Arduino کے اینالاگ پن A0 سے منسلک ہونا چاہیے۔ بایاں پن Arduino کے 5V پن پر جانا چاہیے، اور دایاں پن گراؤنڈ (GND) سے منسلک ہونا چاہیے۔
اگلا، سروو موٹر کو جوڑیں۔ سروو کی گراؤنڈ تار (عام طور پر سیاہ یا بھوری) Arduino کے GND سے منسلک ہونی چاہیے۔ پاور تار (عام طور پر سرخ) Arduino کے 5V پن سے منسلک ہونی چاہیے۔ آخر میں، کنٹرول تار (اکثر پیلی یا سفید) Arduino کے ڈیجیٹل پن 9 سے منسلک ہونی چاہیے۔ یہ سیٹ اپ Arduino کو پوٹینشیومیٹر کی پوزیشن کی بنیاد پر سروو کو کنٹرول کرنے کی اجازت دے گا۔

کوڈ مثالیں اور واک تھرو
آئیے کوڈ کے اہم حصوں پر ایک نظر ڈالتے ہیں۔ پہلے، ہم Servo لائبریری شامل کرتے ہیں اور ایک سروو آبجیکٹ بناتے ہیں:
#include
Servo myservo; // سروو کو کنٹرول کرنے کے لیے سروو آبجیکٹ بنائیں
یہ کوڈ سروو کو انیشیالائز کرتا ہے اور اسے کنٹرول کے لیے تیار کرتا ہے۔ اگلا مرحلہ پوٹینشیومیٹر کی قدر پڑھنا شامل ہے:
int val = analogRead(potpin); // پوٹینشیومیٹر کی قدر پڑھتا ہے
یہاں، پوٹینشیومیٹر سے پڑھی گئی قدر متغیر val میں محفوظ کی جاتی ہے۔ قدر 0 اور 1023 کے درمیان ہوگی، جو پوٹینشیومیٹر کی پوزیشن کے مطابق ہوتی ہے۔ پھر ہم اس قدر کو سروو کی رینج میں میپ کرتے ہیں:
val = map(val, 0, 1023, 0, 180); // اسے سروو کے ساتھ استعمال کرنے کے لیے اسکیل کریں
یہ لائن پوٹینشیومیٹر کی قدر کو سروو موٹر کے لیے موزوں رینج میں تبدیل کرتی ہے۔ آخر میں، ہم سروو کو حساب شدہ پوزیشن پر سیٹ کرتے ہیں:
myservo.write(val); // اسکیل شدہ قدر کے مطابق سروو پوزیشن سیٹ کرتا ہے
یہ کمانڈ سروو کو پوٹینشیومیٹر کی پوزیشن کی بنیاد پر مخصوص زاویے پر منتقل ہونے کو کہتی ہے۔ آپ مضمون کے نیچے مکمل کوڈ لوڈ شدہ پا سکتے ہیں۔
ڈیمونسٹریشن / کیا توقع کریں
جب آپ پروگرام چلاتے ہیں، تو پوٹینشیومیٹر کو گھمانے سے سروو موٹر کا زاویہ آسانی سے ایڈجسٹ ہوگا۔ آپ کو نوب گھمانے کے دوران سیریل مانیٹر میں زاویے کی قدریں پرنٹ ہوتی نظر آئیں گی۔ اگر سروو غیر متوقع طور پر برتاؤ کرے تو اپنی وائرنگ چیک کریں، خاص طور پر پوٹینشیومیٹر اور سروو کے کنکشنز (ویڈیو میں 04:30 پر)۔
سروو کو پوٹینشیومیٹر کی پوزیشن میں تبدیلیوں کا فوری جواب دینا چاہیے۔ اگر آپ کو کوئی تاخیر یا جھٹکا محسوس ہو تو ردعمل بہتر بنانے کے لیے کوڈ میں تاخیر کم کرنے پر غور کریں۔
یہ ٹیوٹوریل کا حصہ ہے: سرو موٹرز
- آردوینو کے ذریعے پش بٹنوں سے سروو کو کنٹرول کرنا
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- پوٹینشیومیٹر اور LCD1602 کا استعمال کرتے ہوئے Arduino کے ساتھ سروو کو کنٹرول کرنا
- انفراریڈ ریموٹ کے ذریعے Arduino کا استعمال کرتے ہوئے سروو موٹرز کو کنٹرول کرنا
- پوٹینشیومیٹر کا استعمال کرتے ہوئے آرڈینو سرو موٹر کنٹرول
- ہاتھ کے اشاروں کے ذریعے آردوینو کے لیے سروو کی پوزیشن کنٹرول کرنا
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- مسلسل 360° سروو کو Arduino کے ساتھ کیسے استعمال کریں
- آرڈوینو کوڈ اور ویڈیو برائے PCA9685 16-چینل 12-بٹ سروو کنٹرولر V1
- ایک پش بٹن کے ساتھ آرڈوینو سروو ٹوگل سوئچ بنائیں
/*
Controlling a servo position using a potentiometer (variable resistor)
by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
modified on 8 November 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Knob
Update by Ahmad Shamshiri for Robojax.com in Ajax, Ontario, Canada
Watch video for this code at https://youtu.be/X_drE5tLbz0
This code is taken from http://robojax.com/learn/arduino
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = A0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup() {
// Servo knob demo by Robojax.com
Serial.begin(9600); // setup serial
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
// Servo knob demo by Robojax.com
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
Serial.print(val);
Serial.print(" ");
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
// Servo knob demo by Robojax.com
Serial.print(val);
Serial.println();
delay(200); // waits for the servo to get there
}
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزونServo motor on Amazonamzn.to
-
علی ایکسپریسPurchase SG90 servo motor 180 or 360 from AliExpresss.click.aliexpress.com
وسائل اور حوالہ جات
-
باہرونیSG90 Servosamzn.to
فائلیں📁
کوئی فائلیں دستیاب نہیں ہیں۔