یہ ٹیوٹوریل کا حصہ ہے: سرو موٹرز
سروو موٹرز سے متعلق تمام ویڈیوز جو متعلقہ ہیں، یہاں درج ہیں۔ دیگر ویڈیوز کے لنک اس مضمون کے نیچے ہیں۔
پوٹینشیومیٹر کا استعمال کرتے ہوئے آرڈینو سرو موٹر کنٹرول
اس ٹیوٹوریل میں، ہم ایک پوتینشیومیٹر کے ذریعے سروو موٹر کو کنٹرول کرنے کا طریقہ سیکھیں گے جس میں آرڈینو استعمال ہوگا۔ مقصد یہ ہے کہ ایک سادہ سرکٹ بنایا جائے جہاں سروو کی پوزیشن پوتینشیومیٹر کی گردش کی بنیاد پر ایڈجسٹ کی جائے۔ اس پروجیکٹ کے آخر تک، آپ کے پاس ایک کام کرنے والا ماڈل ہوگا جو پوتینشیومیٹر کو گھمانے پر سروو کے زاویے کو 0 سے 180 ڈگری تک ہموار طریقے سے تبدیل کرتا ہے۔ یہ آرڈینو میں اینالاگ ان پٹ اور سروو کنٹرول کی بنیادی باتوں کو سمجھنے کا ایک بہترین طریقہ ہے۔
اسے حاصل کرنے کے لیے، ہم ایک آرڈینو بورڈ، ایک سرو موٹر، اور ایک پوٹینشیومیٹر استعمال کریں گے۔ پوٹینشیومیٹر ایک متغیر مزاحمتی کے طور پر کام کرتا ہے، جو آرڈینو کو ایک اینالاگ ان پٹ فراہم کرتا ہے، جو پھر سرو موٹر کی پوزیشن کا تعین کرے گا۔ یہ منصوبہ نہ صرف تفریحی ہے بلکہ تعلیمی بھی ہے، کیونکہ یہ الیکٹرانکس اور پروگرامنگ کے اہم تصورات کو ظاہر کرتا ہے۔ مزید تفصیلی وضاحت کے لیے، ویڈیو (ویڈیو میں 00:00 پر) کو دیکھنا نہ بھولیں۔
ہارڈ ویئر کی وضاحت
اس منصوبے میں، اہم اجزاء آرڈینو بورڈ، سروسو موٹر، اور پوٹینشیومیٹر ہیں۔ آرڈینو آپریشن کا دماغ ہے، جو ان پٹ کو پروسیس کرتا ہے اور آؤٹ پٹ کو کنٹرول کرتا ہے۔ سروسو موٹر وہ ہے جو آرڈینو سے موصول ہونے والے احکامات کی بنیاد پر جسمانی طور پر حرکت کرے گی۔ پوٹینشیومیٹر 1k اوہم سے 1M اوہم تک ہو سکتا ہے، جو صارفین کو ایک متغیر ان پٹ فراہم کرنے کی اجازت دیتا ہے جو سروسو کی حرکت میں تبدیل ہوتا ہے۔
سرور موٹر ایک PWM (پلس چوڑائی ماڈیولیشن) سگنل وصول کرکے کام کرتی ہے جو مطلوبہ مقام کی نشاندہی کرتا ہے۔ جب پوٹینشیومیٹر کو گھمایا جاتا ہے تو اس کی مزاحمت تبدیل ہوتی ہے، جسے آرڈینو ایک اینالاگ وولٹیج کے طور پر پڑھتا ہے۔ سرور موٹر 5V پر کام کرتی ہے۔ یہ 3.3V کے ساتھ کام نہیں کرتی۔ یہ وولٹیج پھر سرور موٹر کی حرکت کی حد میں نقشہ بنایا جاتا ہے، جس سے 0 ڈگری سے 180 ڈگری تک ہموار حرکت کی اجازت ملتی ہے۔
SG90 سرو موٹر کے لئے ڈیٹا شیٹ کی تفصیلات
| کارخانہ دار | پیراکسلیس |
|---|---|
| حصہ نمبر | SG90 |
| منطق/آئی او وولٹیج | 5 V |
| سپلائی وولٹیج | 4.8-6 V |
| آؤٹ پٹ کرنٹ (فی چینل) | ~500 ملی ایمپئر |
| چوٹی کرنٹ (فی چینل) | 1 اے |
| پی ڈبلیو ایم فریکوئنسی کی رہنمائی | 50 ہرٹز |
| ان پٹ منطقی حدیں | 0.5 وی (کم), 2.5 وی (زیادہ) |
| وولٹیج ڈراپ / RDS(on)/ سچوریشن | 0.5 V پر 500 mA |
| حرارتی حدود | 0°C سے 60°C |
| پیکج | معیاری 9g سرو |
| نوٹس / مختلف اقسام | آر سی ایپلیکیشنز میں عام طور پر استعمال ہوتا ہے۔ |
- یقینی بنائیں کہ سروسو اپنی زیادہ سے زیادہ کرنٹ کی درجہ بندی سے تجاوز نہ کرے۔
- اگر سروس مسلسل زیادہ بوجھ پر کام کرتا ہے تو ہیٹ سنک کا استعمال کریں۔
- پوٹینشیومیٹر کو درست پڑھائی کے لیے ایک اینالاگ پن سے جوڑیں۔
- سرور کنٹرول کے لیے PWM سگنل کے وقت کا خیال رکھیں۔
- سرور کی حرکت کی حد کو چیک کریں تاکہ جسمانی رکاوٹوں سے بچا جا سکے۔
وائرنگ کی ہدایات


اس سیٹ اپ کے لیے، آپ کو اجزاء کو مندرجہ ذیل طریقے سے جوڑنے کی ضرورت ہوگی:
پوٹینشیومیٹر کے درمیانی پن (وائپر) کو آرڈینو کے اینالاگ پن سے جوڑیں۔A0پوٹینشیومیٹر کے دوسرے دو پنوں کو جڑنا چاہیے5VاورGNDآرڈینو پر۔ سرو موٹر کے لیے، سرخ تار کو جوڑیں5Vسیاہ تار کوGNDاور پیلا یا سفید تار ڈیجیٹل پن پر9آرڈینو پر۔ یہ ترتیب پوٹینشیومیٹر کو آرڈینو کو ایک اینالاگ ان پٹ فراہم کرنے کی اجازت دیتی ہے، جو اس ان پٹ کی بنیاد پر سیروموٹور کی پوزیشن کو کنٹرول کرے گی۔
تمام کنکشنز کی تصدیق کرنا یقینی بنائیں اور یہ یقینی بنائیں کہ سیروا اپنی حرکت کی حد میں رکاوٹ نہیں ہے۔ اگر مختلف آرڈوینو ماڈل استعمال کر رہے ہیں تو یہ تصدیق کریں کہ اینالاگ ان پٹ اور سیروا آؤٹ پٹ کے پن کی تفویضات ہم آہنگ ہیں۔
کوڈ کی مثالیں اور رہنمائی
نیچے کوڈ کا ایک اقتباس ہے جو سرو کو شروع کرتا ہے اور پوٹینشیومیٹر کی قیمت پڑھتا ہے:
#include
Servo myservo; // create servo object to control a servo
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
اس کوڈ میں، ہم سرور لائبریری شامل کرتے ہیں اور ایک سرور آبجیکٹ بناتے ہیں جس کا نامmyservoسرو کو پن سے منسلک کیا گیا ہے۔9، جو ہمیں اس پن کا استعمال کرتے ہوئے اسے کنٹرول کرنے کی اجازت دیتا ہے۔
void loop() {
int sensorValue = analogRead(A0); // read the potentiometer
pos = map(sensorValue, 0, 1023, 0, 180); // map to servo position
myservo.write(pos); // move servo to position
delay(15); // waits 15ms for the servo to reach the position
}
لوپ فنکشن میں، ہم پن سے پوٹینشیومیٹر کی قیمت پڑھتے ہیں۔A0اور اسے اس کی رینج (0-1023) سے سرو کے رینج (0-180 ڈگری) میں منتقل کریں۔myservo.write(pos)کمانڈ پھر سیروا کو مطلوبہ مقام پر منتقل کرتی ہے جو پوٹینشیومیٹر کی گردش کی بنیاد پر ہوتا ہے۔
نمائش / کیا توقع کریں
جب آپ یہ پروگرام چلائیں گے تو آپ کو سرور موٹر کو 0 سے 180 ڈگری تک ہموار حرکت کرتے ہوئے دیکھنا چاہیے جب آپ پوٹینشیومیٹر کو گھمائیں گے۔ اگر سرور جیسا متوقع ہے ویسا نہیں چلتا تو وائرنگ چیک کریں اور یہ یقینی بنائیں کہ پوٹینشیومیٹر صحیح کام کر رہا ہے۔ اس کے علاوہ، یہ بھی یقینی بنائیں کہ آرڈینو کو صحیح طریقے سے پاور مل رہی ہے اور کوڈ بغیر کسی غلطی کے اپ لوڈ کیا گیا ہے۔ آپ کو توقع کرنی چاہیے کہ سرور پوٹینشیومیٹر کی پوزیشن کو حقیقی وقت میں ظاہر کرے گا (ویڈیو میں 02:00 پر)۔
ویڈیو کے وقت کے نشانات
- 00:00- منصوبے کا تعارف
- 01:30- ہارڈ ویئر سیٹ اپ کی وضاحت
- 03:45- وائرنگ کی ہدایات
- 05:00- کوڈ کی وضاحت
- 07:30- مکمل شدہ منصوبے کا مظاہرہ
یہ ٹیوٹوریل کا حصہ ہے: سرو موٹرز
- Controlling a Servo with Push Buttons Using Arduino
- 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)
- Controlling a Servo with a Potentiometer Using Arduino
- Controlling a Servo with Potentiometer and LCD1602 using Arduino
- Controlling Servo Motors Using an Infrared Remote with Arduino
- ہاتھ کے اشاروں کے ذریعے آردوینو کے لیے سروو کی پوزیشن کنٹرول کرنا
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- How to Use Continuous 360° Servo with Arduino
- Arduino Code and Video for PCA9685 16-Channel 12-Bit Servo Controller V1
- Build an Arduino Servo Toggle Switch with a Push Button
/**
*Original source: Arduino IDE
* Arduino Project: Controlling the servo position
* This code is used with a video tutorial for Robojax.com
* Published on April 24, 2017, from Ajax, ON, Canada.
* Written/Edited by Ahmad Shamshiri
* Watch the video on YouTube: https://youtu.be/kZ9b31gVemc
* View tutorial page for this code https://robojax.com/RJT8
* Controlling a servo position using a potentiometer (variable resistor)
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
وسائل اور حوالہ جات
ابھی تک کوئی وسائل نہیں۔
فائلیں📁
ڈیٹا شیٹ (پی ڈی ایف)
-
sg90_serveo_motor_datasheet
sg90_serveo_motor_datasheet.pdf0.13 MB