Arduino Potentiometer اور Rotary Encoder کے درمیان کیا فرق ہے؟

Arduino Potentiometer Awr Rotary Encoder K Drmyan Kya Frq



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

پوٹینشیومیٹر کیا ہے؟

پوٹینشیومیٹر ایک ریوسٹیٹ ہے، یا ہم اسے متغیر ریزسٹر کہہ سکتے ہیں۔ مزاحمت کی قدر پوٹینومیٹر کی شافٹ گردش کے مطابق مختلف ہوتی ہے۔ پوٹینشیومیٹر صرف ایک مقررہ فاصلے تک مڑ سکتے ہیں۔ ینالاگ اور ڈیجیٹل پوٹینومیٹر دونوں ہیں، لیکن وہ تقریباً ایک جیسے ہیں۔ ینالاگ پوٹینٹیومیٹر کو Arduino، Raspberry Pi، اور دیگر آلات پر مائیکرو کنٹرولرز کے ساتھ انٹرفیس کیا جا سکتا ہے۔ ایک پوٹینشیومیٹر میں تین پن ہوتے ہیں جو ان پٹ وولٹیج پن Vcc، گراؤنڈ پن GND، اور ان پٹ سگنل پن ہوتے ہیں۔ سگنل پن Arduino کو ان پٹ فراہم کرتا ہے۔









روٹری انکوڈر کیا ہے؟

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







پن آؤٹ ڈایاگرام اور روٹری انکوڈر کی پن کی تفصیل

نیچے دیا گیا خاکہ روٹری انکوڈر کے پنوں کو دکھاتا ہے۔ ان پنوں کو اس طرح بیان کیا گیا ہے:

B یا CLK سے باہر



یہ پن اس بات کا آؤٹ پٹ دیتا ہے کہ نوب یا روٹری انکوڈر کتنی بار گھوم چکا ہے۔ ہر بار جب نوب کو گھمایا جاتا ہے، CLK HIGH اور LOW کا ایک چکر مکمل کرتا ہے۔ اسے ایک گردش کے طور پر شمار کیا جاتا ہے۔

باہر A یا DT

یہ روٹری انکوڈر کا دوسرا آؤٹ پٹ پن ہے جو گردش کی سمت کا تعین کرتا ہے۔ یہ CLK سگنل سے 90° پیچھے ہے۔ لہذا، اگر اس کی حالت CLK کی حالت کے برابر نہیں ہے تو گردش کی سمت گھڑی کی سمت ہے، دوسری صورت میں، مخالف گھڑی کی سمت۔

سوئچ کریں۔

سوئچ پن کو چیک کرنے کے لیے استعمال کیا جاتا ہے کہ آیا پش بٹن دبایا گیا ہے یا نہیں۔

وی سی سی

یہ پن 5V سپلائی سے منسلک ہے۔

جی این ڈی

یہ پن زمین سے جڑا ہوا ہے۔

پوٹینشیومیٹر اور روٹری انکوڈر کے درمیان فرق

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

ان پٹ پوزیشنوں کی تعداد پوٹینشیومیٹر میں ان پٹ پوزیشنز کی لامحدود تعداد ہوتی ہے جس پر قدریں لی جا سکتی ہیں کیونکہ یہ ایک اینالاگ ڈیوائس ہے روٹری انکوڈرز میں ان پٹ پوزیشنز کی ایک محدود تعداد ہوتی ہے۔

Arduino کے ساتھ پوٹینشیومیٹر ترتیب دینا

ایک روٹری انکوڈر کے مقابلے میں Arduino کے ساتھ پوٹینشیومیٹر کا سیٹ اپ کرنا آسان ہے۔ پوٹینشیومیٹر میں صرف تین پن VCC، GND، اور ایک INPUT پن ہے جو Arduino سے جڑا ہوا ہے۔ Arduino کے ساتھ پوٹینومیٹر کا انٹرفیسنگ ذیل میں دکھایا گیا ہے:

Arduino میں potentiometer پروگرام کرنا روٹری انکوڈر کے مقابلے میں آسان ہے۔ ذیل میں ان دونوں کے نمونے کے نحوی کوڈ دیئے گئے ہیں۔

پوٹینشیومیٹر کے لیے نمونہ کوڈ

const int pot = A0; // ان پٹ پن کا اعلان کریں۔
باطل سیٹ اپ ( ) {
پن موڈ ( برتن، ان پٹ ) ; // پوٹینشیومیٹر سے لی گئی سیٹ اپ ویلیو کے طور پر ان پٹ
سیریل شروع کریں۔ ( 9600 ) ;
}
باطل لوپ ( ) {
int potValue = analogRead ( برتن ) ; // پوٹینشیومیٹر کے ذریعے لی گئی ان پٹ کی قدر پڑھیں
نقشہ ( پوٹ ویلیو، 0 , 1023 , 0 , 255 ) ; // مماثلت کے لیے ان پٹ کی قدر کو اسکیل کرنا 8 -بٹ
Serial.println ( پوٹ ویلیو ) ; // پرنٹس ویلیو جو پوٹینشیومیٹر میں ڈالی گئی تھی۔
تاخیر ( 100 ) ;
}

پوٹینشیومیٹر کوڈ بہت آسان اور سادہ ہے۔ Arduino کے اینالاگ ان پٹ پن کو صرف پوٹینومیٹر سے ان پٹ لینے کے لیے قرار دیا جاتا ہے، اور پھر analogRead() اور map() فنکشنز کو پڑھنے اور پوٹینشیومیٹر سے پڑھنے کی صحیح قدر دینے کے لیے استعمال کیا جاتا ہے۔

Arduino کے ساتھ روٹری انکوڈر کو انٹرفیس کرنا

روٹری انکوڈر میں پانچ پن ہوتے ہیں۔ روٹری انکوڈر کے VCC اور GND Arduino کے ساتھ جڑے ہوئے ہیں۔ باقی پن CLK، DT، اور SW Arduino کے ڈیجیٹل ان پٹ پنوں سے جڑے ہوئے ہیں۔

روٹری انکوڈر کے لیے Arduino کوڈ

// روٹری انکوڈر ان پٹس
#CLK_PIN 2 کی وضاحت کریں۔
DT_PIN 3 کی وضاحت کریں۔
#SW_PIN 4 کی وضاحت کریں۔
int counter = 0 ;
int currentCLKState؛
int lastCLKState;
سٹرنگ کرنٹ ڈائریکشن = '' ;
غیر دستخط شدہ long lastButtonPressTime = 0 ;
باطل سیٹ اپ ( ) {
// انکوڈر پن سیٹ کریں۔ کے طور پر ان پٹ
پن موڈ ( CLK_PIN، INPUT ) ;
پن موڈ ( DT_PIN، INPUT ) ;
پن موڈ ( SW_PIN، INPUT_PULLUP ) ;
// سیریل مانیٹر سیٹ اپ کریں۔
سیریل شروع کریں۔ ( 9600 ) ;
// CLK کی ابتدائی حالت پڑھیں
lastCLKState = ڈیجیٹل ریڈ ( CLK_PIN ) ;
}
باطل لوپ ( ) {
// CLK کی موجودہ حالت پڑھیں
currentCLKState = ڈیجیٹل ریڈ ( CLK_PIN ) ;
// اگر آخری اور CLK کی موجودہ حالت مختلف ہے، پھر ایک نبض واقع ہوئی
// صرف ردعمل کا اظہار کریں۔ 1 دوہری گنتی سے بچنے کے لیے ریاست کی تبدیلی
اگر ( موجودہ سی ایل کے اسٹیٹ ! = lastCLKState && currentCLKState == 1 ) {
// اگر DT کی حالت CLK ریاست سے مختلف ہے، پھر
// انکوڈر گھڑی کی مخالف سمت میں گھوم رہا ہے، لہذا کمی
اگر ( ڈیجیٹل ریڈ ( DT_PIN ) ! = موجودہ سی ایل کے اسٹیٹ ) {
جوابی--
موجودہ سمت = 'CCW' ;
} اور {
// انکوڈر گھڑی کی سمت گھوم رہا ہے، اس لیے انکریمنٹ
کاؤنٹر++؛
موجودہ سمت = 'CW' ;
}
سیریل۔ پرنٹ ( 'گھومنے کی سمت:' ) ;
سیریل۔ پرنٹ ( موجودہ سمت ) ;
سیریل۔ پرنٹ ( ' | کاؤنٹر ویلیو:' ) ;
Serial.println ( کاؤنٹر ) ;
}
// یاد رکھیں آخری CLK ریاست
lastCLKState = currentCLKState؛
// بٹن کی حالت پڑھیں
int buttonState = ڈیجیٹل ریڈ ( SW_PIN ) ;
// اگر ہمیں کم سگنل کا پتہ چلتا ہے، تو بٹن دبایا جاتا ہے۔
اگر ( بٹن اسٹیٹ == کم ) {
// اگر اس کے بعد سے 50ms گزر چکے ہیں۔ آخری کم نبض، اس کا مطلب ہے کہ
// بٹن دبایا گیا، جاری کیا گیا اور دوبارہ دبایا گیا۔
اگر ( ملی ( ) - آخری بٹن پریس ٹائم > پچاس ) {
Serial.println ( 'بٹن دبایا!' ) ;
}
// یاد رکھیں آخری بٹن پریس ایونٹ وقت
lastButtonPressTime = ملی ( ) ;
}
// ڈال میں میں تھوڑی تاخیر مدد پڑھنے کو ختم کرنا
تاخیر ( 1 ) ;
}

اوپر دیے گئے کوڈ میں، لوپ() فنکشن میں CLK پن کی حالت چیک کی جاتی ہے۔ اگر یہ اپنی پچھلی حالت کے برابر نہیں ہے، تو یہ ظاہر کرتا ہے کہ روٹری نوب گھوم گیا ہے۔ اب، نوب کی گردش کی سمت کو جانچنے کے لیے، CLK کی موجودہ حالت کا موازنہ DT کی حالت سے کیا جاتا ہے۔ اگر دونوں حالتیں غیر مساوی ہیں، تو یہ ظاہر کرتا ہے کہ نوب نے گھڑی کی سمت میں گھمایا ہے اور روٹری نوب کی پوزیشن کو ظاہر کرنے کے لیے اس کی قدر میں اضافہ کرتا ہے۔ مخالف صورت میں، کاؤنٹر کمی.

درخواستیں

پوٹینشیومیٹر بنیادی طور پر استعمال کیے جاتے ہیں جہاں کنٹرول فنکشن کی ضرورت ہوتی ہے۔ وہ حجم کنٹرول، ایل ای ڈی چمک کنٹرول میں استعمال ہوتے ہیں. دوسری طرف، روٹری انکوڈرز ایپلی کیشنز کی ایک وسیع رینج پیش کرتے ہیں۔ وہ روبوٹکس، طبی آلات، آٹومیشن اور گیمنگ میں استعمال ہوتے ہیں۔

نتیجہ

پوٹینشیومیٹر اور روٹری انکوڈر دونوں خاص طور پر الیکٹرانکس کے شعبے میں مفید آلات ہیں۔ روٹری انکوڈرز پوٹینشیومیٹر کے مقابلے میں ترقی یافتہ ہیں، کیونکہ وہ مسلسل 360° تک گھوم سکتے ہیں۔ اسی طرح، جدید الیکٹرانکس میں ان کی زیادہ ایپلی کیشنز ہیں، اور ان کا استعمال پوٹینشیومیٹر کے مقابلے میں قدرے مشکل ہے۔ .