- روٹری انکوڈر اور اس کی اقسام
- KY-040 روٹری انکوڈر پن آؤٹ اور تفصیل
- روٹری انکوڈر کس طرح کام کرتا ہے
- ضروری اجزاء
- PIC16F877A روٹری انکوڈر انٹرفیسنگ سرکٹ ڈایاگرام
- کوڈ کی وضاحت
ایک روٹری مرموزکار ایک نظام کے ساتھ بات چیت کے لئے صارف کی مدد کرتا ہے جس میں ایک ان پٹ آلہ ہے. یہ زیادہ تر ریڈیو پوٹینومیٹر کی طرح لگتا ہے لیکن یہ دالوں کی ایک ٹرین تیار کرتا ہے جس کی وجہ سے اس کی ایپلی کیشن منفرد ہوتی ہے۔ جب انکوڈر کی کھوٹی گھوم جاتی ہے تو وہ چھوٹے چھوٹے اقدامات کی شکل میں گھومتی ہے جو اس کو اسٹپر / سرو موٹر کنٹرول کرنے کے ل used استعمال کرنے میں مدد دیتی ہے ، مینو کے تسلسل کے ذریعے تشریف لے جاتی ہے اور کسی تعداد کی قدر میں اضافہ / گھٹاتا ہے۔
اس مضمون میں ، ہم روٹری انکوڈرز کی مختلف اقسام اور اس کے کام کرنے کے بارے میں جانیں گے ۔ ہم اسے PIC مائکروکنٹرولر PIC16F877A کے ساتھ بھی انٹرفیس کریں گے اور انکوڈر کو گھماتے ہوئے کسی انٹیجر کی قدر کو کنٹرول کریں گے اور اس کی قدر 16 * 2 LCD اسکرین پر ظاہر کریں گے۔ اس ٹیوٹوریل کے اختتام پر ، آپ اپنے منصوبوں کے لئے روٹری انکوڈر استعمال کرنے میں راحت محسوس کریں گے۔ تو آئیے شروع کریں…
روٹری انکوڈر اور اس کی اقسام
روٹری انکوڈر اکثر شافٹ انکوڈر کہا جاتا ہے ۔ یہ ایک الیکٹرو مکینیکل ٹرانڈوسیسر ہے ، مطلب یہ میکانی حرکت کو الیکٹرانک دالوں میں بدلتا ہے یا دوسرے لفظوں میں یہ کونیی کی پوزیشن یا حرکت یا شافٹ پوزیشن کو ڈیجیٹل یا ینالاگ سگنل میں تبدیل کرتا ہے۔ یہ ایک نوب پر مشتمل ہے جو جب گھومتا ہے تو وہ قدم بہ قدم آگے بڑھتا ہے اور ہر قدم کے لئے پہلے سے طے شدہ چوڑائی کے ساتھ پلس ٹرینوں کا ایک سلسلہ تیار کرتا ہے۔
مارکیٹ میں روٹری انکوڈر کی بہت سی قسمیں ہیں ڈیزائنر اپنی درخواست کے مطابق کسی کو منتخب کرسکتا ہے۔ سب سے عام قسمیں ذیل میں درج ہیں
- اضافی انکوڈر
- مطلق انکوڈر
- مقناطیسی انکوڈر
- آپٹیکل انکوڈر
- لیزر انکوڈر
یہ انکوڈر آؤٹ پٹ سگنل اور سینسنگ ٹکنالوجی کی بنیاد پر درجہ بند ہیں ، انکیمنٹل انکوڈر اور مطلق انکوڈرس کو آؤٹ پٹ سگنل کی بنیاد پر درجہ بندی کیا گیا ہے اور مقناطیسی ، آپٹیکل اور لیزر انکوڈر سینسنگ ٹکنالوجی کی بنیاد پر درجہ بندی کیا گیا ہے۔ یہاں استعمال ہونے والا انکوڈر ایک بڑھا ہوا قسم کا انکوڈر ہے ۔
مطلق انکوڈر پاور ہٹانے کے بعد بھی پوزیشن کی معلومات کو اسٹور کرتا ہے ، اور جب ہم اس پر دوبارہ پاور لگائیں گے تو پوزیشن کی معلومات دستیاب ہوں گی۔
دوسری بنیادی قسم ، انکیمینٹل انکوڈر ڈیٹا مہیا کرتا ہے جب انکوڈر اپنی پوزیشن تبدیل کرتا ہے۔ یہ پوزیشن کی معلومات کو محفوظ نہیں کرسکتا ہے۔
KY-040 روٹری انکوڈر پن آؤٹ اور تفصیل
KY-040 اضافہ والے قسم کے روٹری انکوڈر کے پن آؤٹ ذیل میں دکھائے گئے ہیں۔ اس پروجیکٹ میں ، ہم اس روٹری انکوڈر کو مائیکرو چیپ سے مشہور مائکروکન્ટولر PIC16F877A کے ساتھ انٹرفیس کریں گے۔
پہلے دو پن (گراؤنڈ اور وی سی سی) کو انکوڈر کو طاقت دینے کے لئے استعمال کیا جاتا ہے ، عام طور پر + 5 وی سپلائی استعمال ہوتی ہے۔ گھڑی وار اور گھڑی مخالف مخالف سمت میں گھومنے کے علاوہ ، انکوڈر میں ایک سوئچ (ایکٹو لو) بھی ہوتا ہے جسے گھونٹنا اندر دبانے سے دبایا جاسکتا ہے۔ اس سوئچ سے اشارہ پن 3 (SW) کے ذریعے حاصل کیا جاتا ہے۔ آخر کار اس میں دو آؤٹ پٹ پن (ڈی ٹی اور سی ایل کے) ہیں جو پہلے سے ہی ذیل میں زیر بحث کے مطابق ویوفارمس تیار کرتے ہیں۔ ہم نے اس روٹری انکوڈر کو پہلے آرڈینو کے ساتھ انٹرفیس کیا ہے۔
روٹری انکوڈر کس طرح کام کرتا ہے
آؤٹ پٹ مکمل طور پر اندرونی تانبے کے پیڈ پر منحصر ہوتا ہے جو شافٹ کے ساتھ جی این ڈی اور وی سی سی کے ساتھ رابطہ فراہم کرتا ہے۔
روٹری انکوڈر کے دو حصے ہیں۔ شافٹ وہیل جو شافٹ کے ساتھ منسلک ہوتا ہے اور شافٹ کی گردش ، اور جس بنیاد پر بجلی کا کنکشن ہوتا ہے اس پر منحصر ہوتا ہے۔ اڈے میں بندرگاہیں یا پوائنٹس ہیں جو ڈی ٹی یا سی ایل کے سے اس طرح جڑے ہوئے ہیں کہ جب جب شافٹ وہیل گھومتا ہے تو ، یہ بیس پوائنٹس کو جوڑتا ہے اور ڈی ٹی اور سی ایل کے بندرگاہ دونوں پر مربع لہر فراہم کرتا ہے۔
آؤٹ پٹ اس طرح ہوگی جب شافٹ گھومتا ہے-
دو بندرگاہیں مربع لہر فراہم کرتی ہیں لیکن وقت میں تھوڑا سا فرق ہوتا ہے۔ اس کی وجہ سے ، اگر ہم آؤٹ پٹ کو 1 اور 0 کے طور پر قبول کرتے ہیں تو ، وہاں صرف چار ریاستیں ہوسکتی ہیں ، 0 0، 1 0، 1 1، 0 1. بائنری آؤٹ پٹ کی ترتیب گھڑی کی باری یا اینٹی گھڑی کی سمت موڑ کا تعین کرتی ہے۔ جیسے ، مثال کے طور پر ، اگر روٹری انکوڈر 1 id کو بیکار حالت میں فراہم کرتا ہے اور اس کے بعد 1 1 فراہم کرتا ہے ، اس کا مطلب ہے کہ انکوڈر میں یہ گھڑی کی سمت میں ایک قدم ہے ، لیکن اگر یہ بیکار 1 0 کے بعد 0 0 مہیا کررہا ہے تو ، اس کا مطلب ہے کہ شافٹ ایک قدم کے ساتھ مخالف گھڑی کی سمت میں اپنی پوزیشنوں کو تبدیل کرتا ہے۔
ضروری اجزاء
اب وقت آگیا ہے کہ ہمیں روٹری انکوڈر کو پی آئی سی مائکروکنٹرولر کے ساتھ انٹرفیس کرنے کی کیا ضرورت ہے ،
- PIC16F877A
- 4.7k مزاحم
- 1 ک مزاحم
- 10 کٹ کا برتن
- 33pF سیرامک ڈسک کاپاکیسیٹر - 2 پی سیز
- 20 میگاہرٹز کرسٹل
- 16x2 ڈسپلے
- روٹری انکوڈر
- 5V اڈاپٹر
- روٹی بورڈ
- ہک اپ تاروں
PIC16F877A روٹری انکوڈر انٹرفیسنگ سرکٹ ڈایاگرام
سرکٹ ڈایاگرام کے مطابق اجزاء کو جوڑنے کے بعد فائنل سیٹ اپ کی تصویر ذیل میں ہے۔
ہم نے ایک بھی 1K ریزٹر استعمال کیا ہے اس کے برعکس LCD کے برعکس ایک پوٹینومیٹر استعمال کرنے کی۔ نیز ، آخر میں دی گئی مکمل ورکنگ ویڈیو چیک کریں ۔
کوڈ کی وضاحت
مکمل پی آئی سی کوڈ اس پروجیکٹ کے اختتام پر ایک مظاہرے کی ویڈیو کے ساتھ دیا گیا ہے ، یہاں ہم کوڈ کے کچھ اہم حص explaے کی وضاحت کر رہے ہیں۔ اگر آپ پی آئی سی مائکروکنٹرولر کے ساتھ نئے ہیں تو شروع سے ہمارے پی آئی سی ٹیوٹوریلز پر عمل کریں۔
جیسا کہ ہم نے پہلے بھی تبادلہ خیال کیا ہے ، ہمیں ڈی ٹی اور سی ایل کے دونوں کے لئے بائنری آؤٹ پٹ کو چیک کرنے اور بائنری آؤٹ پٹ کو فرق کرنے کی ضرورت ہے ، لہذا ہم نے آپریشن کے لئے ایک اور - حصہ تیار کیا۔
if (انکوڈر_سی ایل! = پوزیشن) { اگر (انکوڈر_ڈی ٹی! = پوزیشن) { // lcd_com (0x01)؛ انسداد ++؛ // کاؤنٹر میں اضافہ کریں جو پرنٹ کریں گے lcd lcd_com (0xC0)؛ lcd_puts ("")؛ lcd_com (0xC0)؛ lcd_bcd (1 ، کاؤنٹر)؛ } دوسری { // lcd_com (0x01)؛ lcd_com (0xC0)؛ کاؤنٹر--؛ // کاؤنٹر کو کم کریں lcd_puts ("")؛ lcd_com (0xC0)؛ lcd_bcd (1 ، کاؤنٹر)؛ // lcd_puts ("بائیں")؛ } }
ہمیں ہر قدم پر پوزیشن کو بھی ذخیرہ کرنے کی ضرورت ہے ۔ ایسا کرنے کے ل we ، ہم نے ایک متغیر "پوزیشن" استعمال کی جو موجودہ پوزیشن کو محفوظ رکھتی ہے۔
پوزیشن = انکوڈر_ سی ایل کے؛ // یہ متغیر پر انکوڈر گھڑی کی پوزیشن کو اسٹور کرنا ہے۔ 0 یا 1 ہوسکتا ہے۔
اس کے علاوہ LCD پر سوئچ پریس کے بارے میں مطلع کرنے کے لئے ایک آپشن فراہم کیا گیا ہے ۔
اگر (انکوڈر_ڈبلیو == 0) { sw_delayms (20)؛ // آغاز میں تاخیر اگر (انکوڈر_ڈبلیو == 0) l // lcd_com (1)؛ // lcd_com (0xC0)؛ lcd_puts ("سوئچ دبائیں")؛ // اٹووا (انسداد ، قیمت ، 10)؛ // ایل سی ڈی_پٹس (قیمت)؛
system_init تقریب پن I / O آپریشن، LCD کی ابتدا کرنے اور روٹری مرموزکار پوزیشن کو ذخیرہ کرنے کے لئے استعمال کیا جاتا ہے.
باطل نظام_نیت () { TRISB = 0x00؛ // پورٹ بی آؤٹ پٹ کے طور پر ، یہ بندرگاہ LCD TRISDbit.TRISD2 = 1 کے لئے استعمال کیا جاتا ہے ۔ TRISDbit.TRISD3 = 1؛ TRISCbit.TRISC4 = 1؛ lcd_init ()؛ // یہ LCD پوزیشن = انکوڈر_سی ایل کے کو شروع کردے گا // // اس وقت لوپ اسٹارٹ ہونے سے پہلے ، سسٹم init پر سی ایل کے پوزیشن پر روشنی ڈالی جائے گی ۔ }
LCD فنکشن lcd.c اور lcd.h لائبریری پر لکھا ہوا ہے جہاں lcd_puts ()، lcd_cmd () ڈیکلئیر کیا گیا ہے۔
متغیر کے اعلان ، تشکیل بٹس اور دیگر کوڈ کے ٹکڑوں کے لئے ، براہ کرم ذیل میں پورا کوڈ تلاش کریں۔