ہال اثر سینسر
ہال ایفیکٹ سینسرز مقناطیسی فیلڈ کی موجودگی کا پتہ لگا سکتے ہیں اور جب کسی کا پتہ چل جاتا ہے تو آؤٹ پٹ وولٹیج پیدا کر سکتے ہیں۔ ہال اثر سینسر، جب کے ساتھ استعمال کیا جاتا ہےلکیری ایکچیوٹرز، عام طور پر مقناطیسی ڈسک کے ساتھ ایکچیویٹر کے گیئر باکس کے اندر رکھے جاتے ہیں۔ جیسے جیسے لکیری ایکچیویٹر توسیع کرتا ہے یا پیچھے ہٹتا ہے، یہ ڈسک گھومتی ہے ہال ایفیکٹ سینسر سے گزرتی ہے جس کی وجہ سے سینسر وولٹیج کی نبض کی شکل میں ڈیجیٹل آؤٹ پٹ پیدا کرتا ہے۔ ان دالوں کو شمار کیا جا سکتا ہے اور اس بات کا تعین کرنے کے لیے استعمال کیا جا سکتا ہے کہ ایکچیویٹر کتنی دور چلا گیا ہے۔
ہال ایفیکٹ سینسر سے پوزیشنی فیڈ بیک
پوزیشنی فیڈ بیک کے لیے ہال ایفیکٹ سینسر استعمال کرنے کا ایک منفی پہلو یہ ہے کہ وہ مطلق پوزیشن کی پیمائش نہیں کرتے ہیں۔ اس کے بجائے وہ دالیں پیدا کرتے ہیں جن کو شمار کیا جا سکتا ہے اس بات کا تعین کرنے کے لیے کہ ایکچیویٹر کتنی دور چلا گیا ہے۔ پوزیشنی فیڈ بیک کے لیے ان دالوں کو استعمال کرنے کے لیے، آپ کو استعمال کرنے کی ضرورت ہوگی۔ مائیکرو کنٹرولر پیدا شدہ دالوں کو شمار کرنے کے لیے۔ ایسا کرنے کے لیے، آپ کو اپنے مائیکرو کنٹرولر کے ایکسٹرنل انٹرپٹ پنوں کو استعمال کرنے کی ضرورت ہوگی تاکہ ان دالوں کو ان کے ہوتے ہی شمار کیا جا سکے۔ بیرونی مداخلتیں وہ پن ہیں جو وولٹیج میں تبدیلی کا پتہ لگاتے ہیں اور ہمارے معاملے میں ہال ایفیکٹ سینسر سے وولٹیج پلس کا پتہ لگانے کے لیے استعمال کیا جا سکتا ہے۔ آپ کو اپنے مائیکرو کنٹرولر کی ڈیٹا شیٹ سے مشورہ کرنے کی ضرورت ہوگی تاکہ یہ یقینی بنایا جا سکے کہ آپ کے مائیکرو کنٹرولر کے کن پنوں کو انٹرپٹ پن کے طور پر استعمال کیا جا سکتا ہے۔ ایک کا استعمال کرتے ہوئے Arduino Uno مثال کے طور پر، پن 2 اور 3 کو بیرونی مداخلت کے لیے استعمال کیا جا سکتا ہے۔ ایک بار جب آپ نے ایک مناسب انٹرپٹ پن کا انتخاب کر لیا، تو آپ ہال ایفیکٹ سینسر آؤٹ پٹ کے تار کو اس پن سے جوڑ سکتے ہیں اور ساتھ ہی ان پٹ وولٹیج کو 5V سے جوڑ سکتے ہیں اور گراؤنڈ پن سے گراؤنڈ کر سکتے ہیں۔
ذیل میں دی گئی کوڈ مثال سے پتہ چلتا ہے کہ Arduino IDE میں ایک انٹرپٹ کیسے ترتیب دیا جائے جہاں وولٹیج پلس کے بڑھتے ہوئے کنارے پر رکاوٹ کو متحرک کیا جائے گا۔ آپ وولٹیج کی تبدیلی میں مختلف پوائنٹس پر متحرک ہونے کے لیے اپنے مداخلت کو ترتیب دے سکتے ہیں اور دستیاب اختیارات کا تعین کرنے کے لیے اپنے مائیکرو کنٹرولر کی ڈیٹا شیٹ سے رجوع کریں۔ آپ کے مداخلت کو ترتیب دینے کے لیے آپ کو آخری پہلو جو کرنے کی ضرورت ہے وہ یہ ہے کہ آپ اپنی انٹرپٹ سروس روٹین کو لکھیں، یہ فنکشن ہے کہ کوڈ ہر بار جب بھی مداخلت شروع کرے گا چلائے گا۔ یہ فنکشن مختصر ہونا چاہئے اور صرف آسان کام انجام دینا چاہئے جیسے ہمارے ہال ایفیکٹ سینسر سے دالوں کی تعداد گننا۔ ذیل میں کوڈ کی مثال میں فنکشن countSteps() ہال ایفیکٹ سینسر سے دالوں کی تعداد گننے کے لیے استعمال ہوتا ہے۔
پوزیشنل ویلیو کا تعین کرنے کے لیے ان دالوں کو استعمال کرنے کے لیے، آپ کو لکیری ایکچیویٹر کی پچھلی پوزیشن اور لکیری ایکچیویٹر جس سمت میں سفر کر رہا ہے اسے جاننا ہو گا۔ آپ کا مائیکرو کنٹرولر پہلے ہی جان لے گا کہ آپ اپنے لکیری ایکچیویٹر کو کس راستے سے چلا رہے ہیں، لہذا آپ اپنے کوڈ میں ایکچیویٹر کی سمت کو ٹریک کرنے کے لیے آسانی سے ایک متغیر ترتیب دے سکتے ہیں جو اس بات کا تعین کرنے کے لیے استعمال کیا جائے گا کہ آیا آپ اپنی پچھلی پوزیشن سے دالیں شامل کرتے ہیں یا گھٹاتے ہیں۔ ایک بار جب آپ اپنی پوزیشن کو اپ ڈیٹ کر لیتے ہیں، تو آپ کو گنتی ہوئی دالوں کو صفر پر دوبارہ سیٹ کرنا ہوگا۔ ذیل میں کوڈ کی مثال آپ کو ایک فنکشن دکھاتی ہے جو گنتی ہوئی دالوں کی تعداد کی بنیاد پر پوزیشن کو اپ ڈیٹ کرتی ہے۔ ایک بار جب آپ دالوں کے لحاظ سے پوزیشن حاصل کرلیتے ہیں تو آپ اپنے لکیری ایکچیویٹر کی نبض فی انچ تفصیلات کا استعمال کرتے ہوئے انچ میں تبدیل کرسکتے ہیں۔ ذیل میں کوڈ کے نمونے میں، پلس فی انچ سفر 3500 ہے۔
اپنے لکیری ایکچوایٹر کو ہومنگ کرنا
ہال ایفیکٹ سینسر سے پوزیشنی فیڈ بیک کو درست طریقے سے استعمال کرنے کے لیے، آپ کو ہمیشہ اپنے لکیری ایکچیویٹر کی ابتدائی پوزیشن جاننے کی ضرورت ہے۔ اگرچہ جب آپ پہلی بار اپنے سسٹم کو آن کرتے ہیں، تو آپ کا مائیکرو کنٹرولر یہ نہیں بتا سکے گا کہ ایکچیویٹر بڑھا ہوا ہے یا نہیں۔ اس کے لیے آپ کو اپنے لکیری ایکچیویٹر کو ایک معلوم پوزیشن پر رکھنے کی ضرورت ہوگی۔ اپنے لکیری ایکچیویٹر کو گھر میں رکھنے کے لیے، آپ کو اسے معلوم پوزیشن پر لے جانے کی ضرورت ہوگی، جیسے مکمل طور پر پیچھے ہٹنا۔ آپ بھی استعمال کر سکتے ہیں۔ بیرونی حد سوئچز اپنی معلوم پوزیشن کو مکمل طور پر توسیع یا پیچھے ہٹانے کے علاوہ کسی اور جگہ پر سیٹ کرنا۔ ذیل میں Arduino کوڈ کو مثال کے طور پر استعمال کرتے ہوئے، ہم WHILE لوپ قائم کرنا چاہیں گے جو ہمارے لکیری ایکچیویٹر کو آپ کی معلوم پوزیشن کی طرف لے جائے گا، اس صورت میں مکمل طور پر پیچھے ہٹ جائے گا۔ ہم جانتے ہیں کہ آپ ہماری معلوم پوزیشن پر ہیں کیونکہ ہال ایفیکٹ سینسر کی رکاوٹ متحرک نہیں ہوگی۔ اس صورت میں، ہم جانچتے ہیں کہ آیا اسٹیپ متغیر میں تبدیلی آئی ہے یا نہیں اس بات کا تعین کرنے کے لیے کہ آیا رکاوٹ کو متحرک کیا گیا ہے۔ ہمیں یہ بھی یقینی بنانے کی ضرورت ہے کہ مداخلت کے شروع ہونے کی توقع کرنے کے لیے کافی وقت گزر چکا ہے، اس کے لیے ہم millis() فنکشن کا استعمال کرتے ہیں جو کہ کوڈ کے شروع ہونے کے بعد سے وقت کو ملی سیکنڈ میں نکالتا ہے اور ہم اس کا موازنہ پچھلی ٹائم سٹیمپ سے کرتے ہیں۔ . ایک بار جب ہم یہ طے کر لیتے ہیں کہ لکیری ایکچیویٹر ہماری ہوم پوزیشن پر ہے، ہم ایکچیویٹر کو چلانا بند کر دیتے ہیں، اسٹیپس ویری ایبل کو ری سیٹ کر دیتے ہیں، اور WHILE لوپ سے باہر نکل جاتے ہیں۔
جھوٹے محرکات سے نمٹنا
جب کہ ہال ایفیکٹ سینسر بجلی کے شور کے لیے اتنے حساس نہیں ہوتے جتنے پوٹینومیٹر، برقی شور اب بھی آؤٹ پٹ سگنل کو متاثر کر سکتا ہے۔ سوئچ باؤنسنگ ہال ایفیکٹ سینسرز کے ساتھ بھی ایک مسئلہ ہو سکتا ہے جو غلط دالوں کو گننے کے لیے متحرک کر سکتا ہے، جو اس بات کو متاثر کرے گا کہ آپ کا مائیکرو کنٹرولر یہ سوچتا ہے کہ آپ کا لکیری ایکچیویٹر کس حد تک منتقل ہوا ہے۔ کچھ اضافی دالیں پوزیشننگ کو زیادہ متاثر نہیں کریں گی کیونکہ فی انچ 1000 دالیں ہوتی ہیں، لیکن وقت کے ساتھ ساتھ یہ ایک بڑا مسئلہ بن سکتا ہے۔ آپ غلط محرکات کو فلٹر کرنے کے لیے اندرونی ٹائمر کا استعمال کر کے ان مسائل کا مقابلہ کر سکتے ہیں۔ جیسا کہ آپ اس بات کا تعین کر سکتے ہیں کہ آپ کتنی بار نئی دالوں کا پتہ لگانے کی توقع کریں گے، آپ اس وقت فلٹر کر سکتے ہیں جب شور کی وجہ سے رکاوٹ پیدا ہوتی ہے۔ ذیل میں کوڈ کے نمونے میں، trig-Delay ہر نبض کے درمیان وقت کی تاخیر ہے۔ اگر اس تاخیر سے پہلے خلل پیدا ہوا تو نبض کو شمار نہیں کیا جائے گا۔
اس تاخیر کے وقت کی لمبائی آپ کی درخواست کی بنیاد پر مختلف ہوگی، لیکن اگر یہ بہت کم ہے تو یہ شور کو صحیح طریقے سے فلٹر نہیں کرے گا اور اگر یہ بہت لمبا ہے تو یہ لکیری ایکچیویٹر سے اصل دالیں کھو دے گا۔ لکیری ایکچیویٹر کی رفتار اس تاخیر کو بھی متاثر کرے گی اور اگر آپ رفتار کو ایڈجسٹ کرنا چاہتے ہیں، تو اس متغیر کو متوقع دالوں کی نئی فریکوئنسی کو ایڈجسٹ کرنے کے لیے تبدیل کرنے کی ضرورت پڑ سکتی ہے۔ ہر نبض کے درمیان درست تاخیر کا درست تعین کرنے کے لیے، آپ ہال ایفیکٹ سینسر سے حقیقی سگنل دیکھنے کے لیے منطقی تجزیہ کار استعمال کر سکتے ہیں۔ اگرچہ زیادہ تر ایپلی کیشنز میں اس کی ضرورت نہیں ہے، اگر آپ کو بالکل درست پوزیشننگ کی ضرورت ہوتی ہے، تو آپ عین تاخیر کا تعین کرنا چاہیں گے۔
غلط محرکات کا مقابلہ کرنے کا ایک اور طریقہ یہ ہے کہ جب بھی ایکچیویٹر کسی معلوم پوزیشن پر پہنچتا ہے تو پوزیشن کی قیمت کو درست کرنا ہے۔ لکیری ایکچیویٹر کو ہوم کرنے کی طرح، اگر آپ نے لکیری ایکچیویٹر کو مکمل طور پر پیچھے ہٹایا ہوا یا بڑھا دیا ہے یا اگر آپ استعمال کرتے ہیں۔ بیرونی حد سوئچز، آپ کو پتہ چل جائے گا کہ ایکچیویٹر کتنی دور چلا گیا ہے۔ جیسا کہ آپ جانتے ہیں کہ ہال ایفیکٹ سینسر کو آپ کی معلوم پوزیشن تک پہنچنے کے لیے کتنے قدموں پر بھیجنا چاہیے، جب ہم اس تک پہنچیں گے تو آپ آسانی سے اس کی قیمت درست کر سکتے ہیں۔ ذیل میں کوڈ کے نمونے میں، یہ مکمل طور پر توسیع شدہ اور مکمل طور پر پیچھے ہٹ جانے والی پوزیشنوں کے لیے کیا جاتا ہے۔ چونکہ ایکچیویٹر ان پوزیشنوں میں سے کسی ایک پوزیشن پر پہنچنے کے بعد حرکت نہیں کرے گا، اگر ہم ایکچیویٹر کو چلانے کی کوشش کرتے ہیں اور پوزیشن کی قدر تبدیل نہیں ہوتی ہے، تو ہم جانتے ہیں کہ ہم حد پر ہیں۔ یہ طریقہ اس بات کو یقینی بنانے کے لیے ایک عملی حل فراہم کرتا ہے کہ آپ کی پوزیشن کی قیمت درست رہے، خاص طور پر اگر آپ آپریشن کے دوران کسی وقت اپنے ایکچیویٹر کو مکمل طور پر پیچھے ہٹا رہے ہیں یا مکمل طور پر بڑھا رہے ہیں۔ آپ اس طریقہ کو اوپر بیان کردہ طریقہ کے ساتھ مل کر استعمال کر سکتے ہیں جس سے آپ کی پوزیشنی ویلیو کی درستگی کو برقرار رکھنے میں مدد ملتی ہے۔
خلاصہ
پوزیشنل فیڈ بیک کے لیے ہال ایفیکٹ سینسر کا استعمال پوٹینٹیومیٹر کے فیڈ بیک کے مقابلے میں بہت زیادہ ریزولوشن فراہم کرتا ہے۔ چونکہ حرکت کے ایک انچ میں 1000 دالیں ہوسکتی ہیں، ہال ایفیکٹ سینسرز آپ کے لکیری ایکچیویٹر کی پوزیشننگ میں درستگی اور اعتبار فراہم کرتے ہیں۔ ہال ایفیکٹ سینسرز اس بات کو یقینی بنانے کی زیادہ صلاحیت بھی فراہم کرتے ہیں کہ متعدد لکیری ایکچیوٹرز ایک ساتھ حرکت کریں کیونکہ نبض کی گنتی پوٹینومیٹر کے بدلتے ہوئے وولٹیج سے زیادہ درست ہوتی ہے۔ ہمارے استعمال FA-SYNC-X ایکچیویٹر کنٹرولر، آپ اس بات کو بھی یقینی بنا سکتے ہیں کہ ایکچیوٹرز بوجھ سے قطع نظر یکجہتی میں حرکت کریں۔ DIYers کے لیے، آپ چیک کر سکتے ہیں کہ آپ کے ایکچیوٹرز کو Arduino کا استعمال کرتے ہوئے ہم آہنگی سے حرکت کیسے کرنا ہے۔ یہاں.
ذیل میں اس بلاگ میں استعمال ہونے والا مکمل نمونہ کوڈ ہے اور اسے 14” اسٹروک کی لمبائی کو کنٹرول کرنے کے لیے بنایا گیا تھا۔ بلٹ سیریز 36 کیلوری۔ لکیری ایکچوایٹر. لکیری ایکچوایٹر a کا استعمال کرتے ہوئے چلایا جاتا ہے۔ موٹر ڈرائیور، جسے آپ سیٹ اپ کرنے کا طریقہ سیکھ سکتے ہیں۔ یہاں.
[1] موناری، جی (جون، 2013) آپٹیکل اور میگنیٹک انکوڈرز میں ریزولوشن کو سمجھنا. سے حاصل: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders