- ضروری سامان
- روٹری انکوڈر کس طرح کام کرتا ہے؟
- روٹری انکوڈر کی اقسام
- KY-040 روٹری انکوڈر پن آؤٹ اور تفصیل
- ارڈینو روٹری انکوڈر سرکٹ ڈایاگرام
- روٹری انکوڈر کے ل your اپنے آرڈینو کو پروگرام کر رہا ہے
- روڈری انکوڈر کا آرڈوینو کے ساتھ کام کرنا
ایک روٹری مرموزکار ایک نظام کے ساتھ بات چیت کے لئے صارف کی مدد کرتا ہے جس میں ایک ان پٹ آلہ ہے. یہ زیادہ تر ریڈیو پوٹینومیٹر کی طرح لگتا ہے لیکن یہ دالوں کی ایک ٹرین تیار کرتا ہے جس کی وجہ سے اس کی ایپلی کیشن منفرد ہوتی ہے۔ جب انکوڈر کی کھوٹی گھوم جاتی ہے تو وہ چھوٹے چھوٹے قدموں کی شکل میں گھومتی ہے جو اس کو اسٹپر / سرو موٹر کنٹرول کرنے کے ل used استعمال کرنے میں مدد دیتی ہے ، مینو کے تسلسل کے ذریعے گھومنے پھرتی ہے اور کسی تعداد کی قدر میں اضافہ / گھٹاتی ہے۔
اس مضمون میں ہم روٹری انکوڈرز کی مختلف اقسام اور اس کے کام کرنے کے بارے میں جانیں گے ۔ ہم اسے آرڈینو کے ساتھ بھی انٹرفیس کریں گے اور انکوڈر کو گھماتے ہوئے ایک عدد کی قدر کو کنٹرول کریں گے اور 16 * 2 LCD اسکرین پر اس کی قدر ظاہر کریں گے۔ اس ٹیوٹوریل کے اختتام پر آپ اپنے منصوبوں کے لئے روٹری انکوڈر استعمال کرنے میں راحت محسوس کریں گے۔ تو آئیے شروع کریں…
ضروری سامان
- روٹری انکوڈر (KY-040)
- اردوینو یو این او
- 16 * 2 الفاانومریٹک LCD
- پوٹینومیٹر 10 ک
- بریڈ بورڈ
- مربوط تاروں
روٹری انکوڈر کس طرح کام کرتا ہے؟
روٹری انکوڈر ایک الیکٹرو مکینیکل ٹرانڈوسیسر ہے ، مطلب یہ میکانی حرکتوں کو الیکٹرانک دالوں میں تبدیل کرتا ہے۔ یہ ایک نوب پر مشتمل ہے جو جب گھومتا ہے تو وہ قدم بہ قدم آگے بڑھتا ہے اور ہر قدم کے لئے پہلے سے طے شدہ چوڑائی کے ساتھ پلس ٹرینوں کا ایک سلسلہ تیار کرتا ہے۔ ہر ایک کو اپنے کام کرنے والے طریقہ کار کے ساتھ بہت سے قسم کے انکوڈرز ہیں ، ہم بعد میں ان اقسام کے بارے میں سیکھیں گے لیکن اب صرف KY040 انکیمنٹل انکوڈر پر ہی توجہ مرکوز کریں کیونکہ ہم اسے اپنے ٹیوٹوریل کے لئے استعمال کررہے ہیں۔
انکوڈر کے لئے اندرونی میکانکی ڈھانچہ نیچے دکھایا گیا ہے۔ یہ بنیادی طور پر ایک سرکلر ڈسک (سرمئی رنگ) پر مشتمل ہوتا ہے جس میں اس سرکلر ڈسک کے اوپری حصے پر کنڈویٹو پیڈ (تانبے کا رنگ) ہوتا ہے۔ یہ کوندکٹو پیڈز برابر فاصلے پر رکھے گئے ہیں جیسا کہ ذیل میں دکھایا گیا ہے۔ آؤٹ پٹ پنوں کو اس سرکلر ڈسک کے اوپری حصے میں طے کیا جاتا ہے ، اس طرح کہ جب نوب گھوم جاتا ہے تو کوندکٹو پیڈ آؤٹ پٹ پنوں کے ساتھ رابطے میں رہتے ہیں۔ یہاں دو آؤٹ پٹ پن ، آؤٹ پٹ اے اور آؤٹ پٹ بی موجود ہیں جیسا کہ ذیل کی شکل میں دکھایا گیا ہے۔

آؤٹ پٹ پن A اور آؤٹ پٹ بی کے ذریعہ تیار کردہ آؤٹ پٹ ویوفارم بالترتیب نیلے اور سبز رنگ میں دکھایا جاتا ہے۔ جب کنڈویٹو پیڈ براہ راست پن کے نیچے ہوتا ہے تو یہ وقت پر اس کے نتیجے میں اونچی جاتا ہے اور جب کنڈویٹو پیڈ پن سے ہٹ جاتا ہے تو نتیجہ کم ہوتا ہے جس کے نتیجے میں مذکورہ بالا موج کے وقت ختم ہوجاتے ہیں۔ اب ، اگر ہم دالوں کی تعداد گنیں تو ہم اس بات کا تعین کر سکیں گے کہ انکوڈر کتنے اقدامات میں منتقل ہوا ہے۔
اب سوال یہ پیدا ہوسکتا ہے کہ جب ہمیں گنبد گھوماتے ہوئے اٹھائے گئے اقدامات کی تعداد گننے کے لئے کافی ہو تو ہمیں دو نبض اشاروں کی ضرورت کیوں ہے؟ اس کی وجہ یہ ہے کہ ہمیں اس کی نشاندہی کرنے کی ضرورت ہے کہ نقاط کس سمت میں گھمایا گیا ہے۔ اگر آپ ان دو دالوں پر ایک نگاہ ڈالیں تو آپ محسوس کرسکتے ہیں کہ وہ دونوں 90 ° مرحلے سے باہر ہیں۔ لہذا جب جب گھڑی گھڑی کی سمت میں گھمایا جاتا ہے تو آؤٹ پٹ اے سب سے پہلے اونچائی پر آجائے گا اور جب نوبھ گھڑی کے مخالف سمت میں گھمایا جاتا ہے تو آؤٹ پٹ بی پہلے اونچی ہوجائے گی۔
روٹری انکوڈر کی اقسام
مارکیٹ میں روٹری انکوڈر کی بہت سی قسمیں ہیں ڈیزائنر اپنی درخواست کے مطابق کسی کو منتخب کرسکتا ہے۔ سب سے عام قسمیں ذیل میں درج ہیں
- اضافی انکوڈر
- مطلق انکوڈر
- مقناطیسی انکوڈر
- آپٹیکل انکوڈر
- لیزر انکوڈر
یہ انکوڈر آؤٹ پٹ سگنل اور سینسنگ ٹکنالوجی کی بنیاد پر درجہ بند ہیں ، انکیمنٹل انکوڈر اور مطلق انکوڈرس کو آؤٹ پٹ سگنل کی بنیاد پر درجہ بندی کیا گیا ہے اور مقناطیسی ، آپٹیکل اور لیزر انکوڈر سینسنگ ٹکنالوجی کی بنیاد پر درجہ بندی کیا گیا ہے۔ یہاں استعمال ہونے والا انکوڈر ایک بڑھا ہوا قسم کا انکوڈر ہے ۔
KY-040 روٹری انکوڈر پن آؤٹ اور تفصیل
KY-040 اضافہ والے قسم کے روٹری انکوڈر کے پن آؤٹ ذیل میں دکھائے گئے ہیں

پہلے دو پن (گراؤنڈ اور وی سی سی) کو انکوڈر کو طاقت دینے کے لئے استعمال کیا جاتا ہے ، عام طور پر + 5 وی سپلائی استعمال ہوتی ہے۔ گھڑی وار اور گھڑی مخالف مخالف سمت میں گھومنے کے علاوہ ، انکوڈر میں ایک سوئچ (ایکٹو لو) بھی ہوتا ہے جسے گھونٹنا اندر دبانے سے دبایا جاسکتا ہے۔ اس سوئچ سے اشارہ پن 3 (سوئچ) کے ذریعے حاصل کیا جاتا ہے۔ آخر کار اس میں دو آؤٹ پٹ پن ہیں جو پہلے ہی مذکورہ بالا بحث کے مطابق ویوفارمس تیار کرتے ہیں۔ آئیے اس کو ارڈوینو کے ساتھ انٹرفیس کرنے کا طریقہ سیکھیں۔
ارڈینو روٹری انکوڈر سرکٹ ڈایاگرام
ارڈوینو کے ساتھ روٹری انکوڈر کو انٹرفیس کرنے کے لئے مکمل سرکٹ ڈایاگرام ذیل کی تصویر میں دکھایا گیا ہے

روٹری انکوڈر میں مندرجہ بالا لیبل میں دکھائے گئے ترتیب میں 5 پن ہیں۔ پہلے دو پنز گراؤنڈ اور وی سی سی ہیں جو گراؤنڈ اور اردوینو کے + 5 وی پن سے جڑے ہوئے ہیں۔ انکوڈر کا سوئچ ڈیجیٹل پن D10 سے منسلک ہوتا ہے اور 1k ریزسٹر کے باوجود بھی اونچا نکالا جاتا ہے۔ دو آؤٹ پٹ پن بالترتیب D9 اور D8 سے جڑے ہوئے ہیں۔
متغیر کی قدر ظاہر کرنے کے لئے جس میں روٹری انکوڈر کو گھومنے سے اضافہ یا کمی واقع ہو گی ہمیں ایک ڈسپلے ماڈیول کی ضرورت ہے۔ یہاں استعمال ہونے والا ایک عام طور پر 16 * 2 الفا عددی LCD ڈسپلے میں دستیاب ہے۔ ہم نے ڈسپلے کو 4 بٹ موڈ میں آپریٹ کرنے کے لئے مربوط کیا ہے اور اسے ارڈوینو کے + 5 وی پن کا استعمال کرکے طاقت حاصل کی ہے۔ پوٹینومیٹر LCD ڈسپلے کے برعکس کو ایڈجسٹ کرنے کے لئے استعمال کیا جاتا ہے۔ اگر آپ اردوینو کے ساتھ انٹرفیسنگ LCD ڈسپلے کے بارے میں مزید جاننا چاہتے ہیں تو لنک پر عمل کریں مکمل سرکٹ ایک بریڈ بورڈ کے اوپر بنایا جاسکتا ہے ، ایک بار جب سارے رابطے ہوچکے ہیں تو میری نظر کچھ اس طرح ہے۔

روٹری انکوڈر کے ل your اپنے آرڈینو کو پروگرام کر رہا ہے
اگر آپ روٹری انکوڈر کے عملی اصول کو سمجھ چکے ہوتے تو اس کے ساتھ روٹری انکوڈر میں مداخلت کرنے کے لئے ارڈینو بورڈ کو پروگرام کرنا کافی آسان اور سیدھا آگے ہے۔ ہمیں صرف یہ معلوم کرنے کے لئے نب کی تعداد پڑھنی ہوگی کہ انکوڈر نے کتنے رخ موڑ لئے ہیں اور چیک کریں کہ کونسی نبض پہلے بڑھتی ہے یہ معلوم کرنے کے لئے کہ کس سمت میں انکوڈر کو گھمایا گیا تھا۔ اس ٹیوٹوریل میں ہم وہ نمبر دکھائیں گے جو ایل سی ڈی کی پہلی صف میں اضافہ اور کمی ہو رہا ہے اور دوسری لائن میں انکوڈر کی سمت۔ ایسا کرنے کا مکمل پروگرام اس صفحے کے نیچے ایک مظاہرے والی ویڈیو کے ساتھ پایا جاسکتا ہے ، اس کے ل any کسی لائبریری کی ضرورت نہیں ہے۔ اب ، کام کو سمجھنے کے لئے پروگرام کو چھوٹے حصوں میں تقسیم کریں۔
چونکہ ہم نے LCD ڈسپلے استعمال کیا ہے ، لہذا ہم مائع کرسٹل لائبریری بھی شامل کرتے ہیں جو Ardino IDE میں پہلے سے موجود ہے۔ پھر ہم LCD کو Ardino کے ساتھ منسلک کرنے کے لئے پنوں کی وضاحت کرتے ہیں ۔ آخر میں ہم ان پنوں پر LCD ڈسپلے شروع کرتے ہیں۔
# شامل کریں
اندر اگلا سیٹ اپ کی تقریب، ہم LCD کی سکرین پر ایک تعارفی پیغام ظاہر ، اور پھر اس کی 2 سیکنڈ تا کہ اس پیغام صارف قابل مطالعہ ہے انتظار. یہ یقینی بنانا ہے کہ LCD ٹھیک سے کام کر رہا ہے۔
lcd.print ("روٹری انکوڈر")؛ // انٹرو میسج لائن 1 lcd.setCursor (0، 1)؛ lcd.print ("ارڈینو کے ساتھ")؛ // انٹرو میسج لائن 2 تاخیر (2000)؛ lcd.clear ()؛
روٹری انکوڈر میں تین آؤٹ پٹ پن ہیں جو اردوینو کے لئے INPUT پن ہوں گے۔ یہ تینوں پن بالترتیب سوئچ ، آؤٹ پٹ اے اور آؤٹ پٹ بی ہیں۔ یہ ہیں کا استعمال کرتے ہوئے ان پٹ کے طور پر اعلان pinMode کا تقریب کے طور پر ذیل میں دکھایا گیا.
// پن موڈ ڈیکلیریشن پن موڈ (انکوڈر_آؤپٹہ ، INPUT)؛ پن موڈ (انکوڈر_آپٹ بی ، INPUT)؛ پن موڈ (انکوڈر_سوئچ ، INPUT)؛
باطل سیٹ اپ فنکشن کے اندر ، ہم پن کی آخری حیثیت کو جانچنے کے لئے آؤٹ پٹ اے پن کی حالت پڑھتے ہیں۔ اس کے بعد ہم اس معلومات کو نئی قدر کے ساتھ موازنہ کرنے کے لئے استعمال کریں گے تاکہ چیک کریں کہ کون سا پن (آؤٹ پٹ اے یا آؤٹ پٹ بی) زیادہ بڑھ گیا ہے۔
پچھلا_ آؤٹ پٹ = ڈیجیٹل ریڈ (انکوڈر_آپٹہ)؛ // آؤٹ پٹ اے کی اصل قدر پڑھیں
آخر میں مرکزی لوپ فنکشن کے اندر ، ہمیں پچھلے آؤٹ پٹ کے ساتھ آؤٹ پٹ اے اور آؤٹ پٹ بی کی قدر کا موازنہ کرنا ہے تاکہ یہ چیک کریں کہ کون سا پہلے اعلی جاتا ہے۔ یہ صرف A اور B کی موجودہ آؤٹ پٹ کی قیمت کا موازنہ کرکے کیا جاسکتا ہے جیسا کہ ذیل میں دکھایا گیا ہے۔
اگر (digitalRead (Encoder_OuputA) = Previous_Output!) { تو (digitalRead (Encoder_OuputB) = Previous_Output!) { Encoder_Count ++؛ lcd.clear ()؛ lcd.print (انکوڈر_کاؤنٹ)؛ lcd.setCursor (0 ، 1)؛ lcd.print ("کلاک وائز")؛ }
مذکورہ کوڈ میں دوسرا اگر شرط پر عمل درآمد ہو جاتا ہے اگر آؤٹ پٹ بی پچھلے آؤٹ پٹ سے تبدیل ہوا ہے۔ اس صورت میں انکوڈر متغیر کی قیمت میں اضافہ ہوتا ہے اور LCD ظاہر کرتا ہے کہ انکوڈر گھڑی کی سمت میں گھمایا گیا ہے۔ اسی طرح اگر یہ حالت ناکام ہوجاتی ہے تو ، بعد میں آنے والی دوسری حالت میں ہم متغیر کو کم کردیتے ہیں اور یہ ظاہر کرتے ہیں کہ انکوڈر کو اینٹلوک کی سمت میں گھمایا جاتا ہے ۔ اس کے لئے کوڈ ذیل میں دکھایا گیا ہے۔
دوسری { انکوڈر_کاؤنٹ--؛ lcd.clear ()؛ lcd.print (انکوڈر_کاؤنٹ)؛ lcd.setCursor (0 ، 1)؛ lcd.print ("اینٹی - کلاک وائز")؛ } }
آخر میں ، مرکزی لوپ کے آخر میں ہمیں موجودہ آؤٹ پٹ ویلیو کے ساتھ پچھلی آؤٹ پٹ ویلیو کو اپ ڈیٹ کرنا ہوگا تاکہ لوپ کو اسی منطق کے ساتھ دہرایا جاسکے۔ درج ذیل کوڈ بھی ایسا ہی کرتا ہے
پچھلا_ آؤٹ پٹ = ڈیجیٹل ریڈ (انکوڈر_آپٹہ)؛
ایک اور اختیاری چیز یہ ہے کہ آیا انکوڈر پر سوئچ دبا ہوا ہے یا نہیں ۔ روٹری کوڈر پر سوئچ پن کو چیک کرکے اس کی نگرانی کی جاسکتی ہے۔ یہ پن ایک فعال کم پن ہے ، اس کا مطلب ہے کہ جب بٹن دب جائے گا تو یہ نیچے جائے گا۔ اگر دبائے ہوئے پن زیادہ نہیں رہتا ہے تو ، ہم نے یہ یقینی بنانے کے لئے پل اپ ریزسٹر بھی استعمال کیا ہے کہ جب سوئچ دبایا نہیں جاتا ہے تو اس طرح تیرتی نقطہ حالت سے بچیں۔
اگر (ڈیجیٹل ریڈ (انکوڈر_سوئچ) == 0) c lcd.clear ()؛ lcd.setCursor (0 ، 1)؛ lcd.print ("سوئچ دبایا")؛ }
روڈری انکوڈر کا آرڈوینو کے ساتھ کام کرنا
ایک بار جب ہارڈ ویئر اور کوڈ تیار ہوجائے تو ، کوڈ کو ارڈینو بورڈ میں اپ لوڈ کریں اور ارڈینو بورڈ کو طاقت بنائیں۔ آپ یا تو اسے USB کیبل کے ذریعہ طاقت فراہم کرسکتے ہیں یا 12V اڈیپٹر استعمال کرسکتے ہیں۔ جب ایل سی ڈی چلائے تو انٹرو میسج ڈسپلے کریں اور پھر خالی ہوجائیں۔ اب روٹری انکوڈر کو گھمائیں اور آپ کو جس رخ کی طرف سے گھومتے ہیں اس کی بنیاد پر قیمت میں اضافہ یا کمی واقع دیکھنا چاہئے۔ دوسری لائن آپ کو دکھائے گی کہ اگر انکوڈر گھڑی کی سمت میں گھوم رہا ہے یا گھڑی کی مخالف سمت میں۔ ذیل کی تصویر بھی وہی دکھاتی ہے

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