ارڈینو کا استعمال کرتے ہوئے دو نکات کے مابین فاصلہ کیسے طے کریں؟

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



ارڈینو کا استعمال کرتے ہوئے فاصلے کی پیمائش

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



فاصلے کی پیمائش کے ل A آردوینو اور الٹراسونک سینسر کا استعمال کیسے کریں؟

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



مرحلہ 1: اجزاء جمع کرنا (ہارڈ ویئر)

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



  • جمپر تاروں
  • 5V AC to DC اڈاپٹر (x2)

مرحلہ 2: اجزاء جمع کرنا (سافٹ ویئر)

  • پروٹیوس 8 پروفیشنل (سے ڈاؤن لوڈ کیا جاسکتا ہے یہاں )

پروٹیوس 8 پروفیشنل ڈاؤن لوڈ کرنے کے بعد ، اس پر سرکٹ ڈیزائن کریں۔ میں نے یہاں سافٹ ویئر کی نقالیوں کو شامل کیا ہے تاکہ ابتدائ کے لئے سرکٹ ڈیزائن کرنا اور ہارڈ ویئر پر مناسب کنیکشن لگانا آسان ہوسکے۔

مرحلہ 3: HCR-05 کا کام کرنا

جیسا کہ اب ہم اپنے منصوبے کا بنیادی خلاصہ جانتے ہیں ، آئیے ہم آگے بڑھیں اور اس کے کام کا ایک مختصر مطالعہ کریں HCR-05 . آپ درج ذیل خاکے کے ذریعہ اس سینسر کے مرکزی کام کو سمجھ سکتے ہیں۔

اس سینسر کے دو پن ہیں ، ٹرگر پن ، اور اکو پن یہ دونوں دو خاص نکات کے مابین فاصلے کی پیمائش کے لئے استعمال ہوتے ہیں۔ عمل سینسر سے الٹراسونک لہر بھیج کر شروع کیا گیا تھا۔ یہ کام 10us کے لئے ٹرگر پن کو متحرک کرکے کیا جاتا ہے۔ الٹراسونک لہروں کا ایک 8 آواز کا پھٹ اس کام کے ہوتے ہی ٹرانسمیٹر سے بھیج دیا جاتا ہے۔ یہ لہر ہوا میں سفر کرے گی اور جیسے ہی یہ کسی شے کو اپنے راستے سے ٹکرائے گی ، وہ پیچھے ہٹ جائے گی اور سینسر میں بنے ہوئے وصول کنندہ کو وصول کرے گی۔



جب الٹراسونک لہر وصول کنندہ کے ذریعہ سینسر کی عکاسی کرنے کے بعد وصول ہوگی ، تو وہ اس کو ڈال دے گی اکو پن ایک اعلی ریاست کی طرف. یہ پن وقت کی مدت کے لئے اعلی حالت میں رہے گا جو الٹراسونک لہر کے ذریعہ ٹرانسمیٹر سے سفر کرنے اور سینسر کے وصول کنندہ تک واپس جانے کے وقت کے بالکل برابر ہوگا۔

اپنا الٹراسونک سینسر بنانے کے ل ٹرانسمیٹر صرف ، بس ٹرگر پن کو اپنے آؤٹ پٹ پن کی طرح بنائیں اور اس پن پر ایک اعلی نبض 10us کے لئے بھیجیں۔ جیسے ہی یہ ہوتا ہے الٹراسونک پھٹنا شروع کردیا جائے گا۔ لہذا ، جب بھی لہر کو منتقل کرنا ہے ، الٹراسونک سینسر کے محرک پن کو ہی کنٹرول کرنا ہے۔

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

مرحلہ 4: سرکٹ کا کام کرنا

اب ، جیسا کہ ہم نے دونوں سینسروں کو بطور ٹرانسمیٹر اور وصول کنندہ کی حیثیت سے کام کرنے کے لئے بنایا ہے ، یہاں ایک بہت بڑا مسئلہ درپیش ہے۔ وصول کنندہ الٹراسونک لہر کے ذریعہ ٹرانسمیٹر سے وصول کرنے والے کے لئے جانے والے وقت کا پتہ نہیں چل پائے گا کیوں کہ وہ یہ نہیں جانتا ہے کہ یہ لہر کب منتقل ہوئی تھی۔

اس مسئلے کو حل کرنے کے ل we ، ہمیں کیا کرنا ہے ایک بھیجنا ہے ہائی جیسے ہی الٹراسونک لہر ٹرانسمیٹر سینسر میں منتقل ہوتی ہے تو وصول کنندہ کے ای سی او کو اشارہ کریں۔ یا آسان الفاظ میں ، ہم یہ کہہ سکتے ہیں کہ وصول کنندہ کا ای سی او اور ٹرانسمیٹر کا محرک ایک ہی وقت میں HIGH کو بھیجا جانا چاہئے۔ لہذا ، اس مقصد کو حاصل کرنے کے ل we ، ہم جیسے ہی ٹرانسمیٹر کا محرک اونچی ہوجاتے ہی وصول کنندگان کا محرک بلند کردیں گے۔ ای سی او پن جانے تک وصول کنندہ کا یہ محرک بلند رہے گا کم . جب الٹراسونک سگنل وصول کنندہ کے ای سی او پن کے ذریعہ موصول ہوگا ، تو یہ کم ہوجائے گا۔ اس کا مطلب یہ ہوگا کہ ٹرانسمیٹر سینسر کے محرک کو ابھی ایک ہائی سگنل ملا ہے۔ اب ، جیسے ہی ای سی او کم ہوجائے گا ، ہم معلوم تاخیر کا انتظار کریں گے اور وصول کنندہ کا محرک HIGH رکھیں گے۔ ایسا کرنے سے ، دونوں سینسروں کے محرکات مطابقت پذیر ہوجائیں گے اور لہر سفر کے وقت کی تاخیر کو جان کر فاصلے کا حساب لگایا جا. گا۔

مرحلہ 5: اجزاء کو جمع کرنا

اگرچہ ہم صرف ایک الٹراسونک سینسر کا ٹرانسمیٹر اور دوسرے کا وصول کنندہ استعمال کررہے ہیں ، لیکن اس کے چاروں پنوں کو جوڑنا لازمی ہے الٹراسونک سینسر ارڈینو کو سرکٹ کو مربوط کرنے کے لئے ، ذیل میں دیئے گئے مراحل پر عمل کریں:

  1. دو الٹراسونک سینسر لیں۔ پہلے سینسر کا وصول کنندہ اور دوسرے سینسر کے ٹرانسمیٹر کا احاطہ کریں۔ اس مقصد کے لئے سفید ڈکٹ ٹیپ کا استعمال کریں اور یہ یقینی بنائیں کہ یہ دونوں مکمل طور پر ڈھانپے ہوئے ہیں تاکہ کوئی سگنل دوسرے سینسر کے ٹرانسمیٹر کو نہ چھوڑ سکے اور نہ ہی کوئی سگنل پہلے سینسر کے وصول کنندہ میں پڑ جائے۔
  2. دو الگڈوینو کو دو الگ الگ بریڈ بورڈز پر جوڑیں اور ان سے متعلقہ سینسر کو مربوط کریں۔ آرڈوینو کے پن 10 سے ٹرگر پن کو اور ارڈوینو کے پن 10 سے ایکو پن کو جوڑیں۔ الٹراسونک سینسر کو 5 وی آرڈوینو اور عام تمام گراؤنڈ کے ذریعہ پاور اپ کریں۔
  3. وصول کنندہ کے ارڈوینو پر وصول کنندہ کوڈ اور ٹرانسمیٹر کوڈ کو ٹرانسمیٹر کے ارڈینو میں اپ لوڈ کریں۔
  4. اب وصول کنندگاہ کے سیریل مانیٹر کو کھولیں اور جس فاصلے کی پیمائش کی جارہی ہے اسے نوٹ کریں۔

اس پروجیکٹ کا سرکٹ ڈایاگرام کچھ یوں لگتا ہے:

سرکٹ ڈایاگرام

مرحلہ 6: ارڈینو کے ساتھ آغاز کرنا

اگر آپ پہلے ہی آرڈینوو IDE سے واقف نہیں ہیں تو ، فکر نہ کریں کیوں کہ مائکروکونٹرولر بورڈ کے ساتھ Ardino IDE ترتیب دینے اور استعمال کرنے کے لئے مرحلہ وار طریقہ کار کی وضاحت ذیل میں کی گئی ہے۔

  1. ارڈینو آئ ڈی ای کا تازہ ترین ورژن ڈاؤن لوڈ کریں اردوینو
  2. اپنے ارڈینو نینو بورڈ کو اپنے لیپ ٹاپ سے مربوط کریں اور کنٹرول پینل کھولیں۔ کنٹرول پینل میں ، پر کلک کریں ہارڈ ویئر اور آواز . اب پر کلک کریں ڈیوائسز اور پرنٹرز۔ یہاں ، وہ بندرگاہ ڈھونڈیں جس سے آپ کا مائکروقانونی بورڈ منسلک ہے۔ میرے معاملے میں یہ ہے COM14 لیکن یہ مختلف کمپیوٹرز پر مختلف ہے۔

    پورٹ تلاش کرنا

  3. ٹول مینو پر کلک کریں۔ اور بورڈ لگا دیا اردوینو نینو ڈراپ ڈاؤن مینو سے

    بورڈ مرتب کرنا

  4. اسی ٹول مینو میں ، بندرگاہ کو اس پورٹ نمبر پر سیٹ کریں جو آپ نے پہلے میں دیکھا تھا ڈیوائسز اور پرنٹرز .

    پورٹ کی ترتیب

  5. اسی ٹول مینو میں ، پروسیسر کو سیٹ کریں ATmega328P (پرانا) بوٹ لوڈر ).

    پروسیسر

  6. نیچے منسلک کوڈ ڈاؤن لوڈ کریں اور اسے اپنے اردوینو IDE میں پیسٹ کریں۔ پر کلک کریں اپ لوڈ کریں اپنے مائکروکنٹرولر بورڈ میں کوڈ کو جلا دینے کے لئے بٹن۔

    اپ لوڈ کریں

کوڈ ڈاؤن لوڈ کرنے کیلئے ، یہاں کلک کریں.

مرحلہ 7: ضابطہ کو سمجھنا

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

ٹرانسمیٹر سائیڈ کے لئے کوڈ

1. شروع میں ، ارڈینو بورڈ کے پنوں کو شروع کیا جاتا ہے جو الٹراسونک سینسر سے منسلک ہوگا۔ پھر متغیرات کا اعلان کیا جاتا ہے جو کوڈ کے رن ٹائم کے دوران وقت اور فاصلے کے حساب کتاب کے ل values ​​اقدار کو ذخیرہ کرنے کے لئے استعمال ہوگا۔

// پنوں کی تعداد کی وضاحت کرتا ہے؛ // الٹراسونک سینسر کے ٹرگر پن کو ارڈینو کانسٹ انٹ ایکوپن = 10 کے پن 9 سے مربوط کریں۔ // الٹراسونک سینسر کا ایکو پن کو آرڈینو کے پن 10 سے مربوط کریں // متغیر کی طویل مدت کی وضاحت کریں۔ // الٹراسونک لہر t ٹریول انٹین فاصلے کے ذریعہ لیا گیا وقت storore کرنے کے لئے متغیر؛ // ذخیرہ کرنے کے لئے متغیر کا حساب کتاب

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

باطل سیٹ اپ () {پن موڈ (ٹرگ پن ، آؤٹپٹ)؛ // ٹرگرپِن کو آؤٹ پٹ پن موڈ (ایکو پن ، انپٹ) کے بطور سیٹ کرتا ہے۔ // ایکوپین کو ان پٹ سیریل ڈاٹ بیگن (9600) کے بطور سیٹ کرتا ہے۔ // سیریل مواصلات شروع کرتا ہے}

باطل لوپ () ایک فنکشن ہے جو لوپ میں بار بار چلتا ہے۔ یہاں ہم نے مائکروکانٹرولر کوڈ کیا ہے تاکہ وہ الٹراسونک سینسر کے ٹرگر پن پر ایک HIGH سگنل بھیجتا ہے ، 20 مائیکرو سیکنڈ کے لئے wits اور اس پر LOW سگنل بھیجتا ہے۔

باطل لوپ () {// 10 مائکرو سیکنڈز ڈیجیٹل رائٹ (ٹرگرپن ، ایچ ای ٹی) کے لئے ہائی ٹائگ پر ٹرگرپن سیٹ کرتا ہے۔ // پہلے سینسر میں تاخیر سے ایک ہائی سگنل بھیجیں۔ // 10 مائیکرو سیکنڈ کا ڈیجیٹل رائٹ (ٹرگ پن ، LOW) کا انتظار کریں۔ // پہلے سینسر کی تاخیر (2) کے محرک پر ایک کم سگنل بھیجیں۔ // 0.2 سیکنڈ تک انتظار کریں}

وصول کنندہ کی طرف کے لئے کوڈ

1. شروع میں ، ارڈینو بورڈ کے پنوں کو شروع کیا جاتا ہے جو الٹراسونک سینسر سے منسلک ہوگا۔ پھر متغیرات کا اعلان کیا جاتا ہے جو کوڈ کے رن ٹائم کے دوران وقت اور فاصلے کے حساب کتاب کے ل values ​​اقدار کو ذخیرہ کرنے کے لئے استعمال ہوگا۔

// پنوں کی تعداد کی وضاحت کرتی ہے؛ // الٹراسونک سینسر کے ٹرگر پن کو ارڈینو کانسٹ انٹ ایکوپن = 10 کے پن 9 سے مربوط کریں۔ // الٹراسونک سینسر کا ایکو پن کو آرڈینو کے پن 10 سے مربوط کریں // متغیر کی طویل مدت کی وضاحت کریں۔ // الٹراسونک لہر t ٹریول انٹین فاصلے کے ذریعہ لیا گیا وقت storore کرنے کے لئے متغیر؛ // ذخیرہ کرنے کے لئے متغیر کا حساب کتاب

2 باطل سیٹ اپ () ایک ایسا فنکشن ہے جو شروع میں صرف ایک وقت چلتا ہے جب بورڈ کے ذریعہ چلتا ہے یا قابل بٹن دب جاتا ہے۔ یہاں اردوینو کی دونوں پنوں کو بطور INPUT اور OUTPUT استعمال کرنے کا اعلان کیا گیا ہے۔ اس فنکشن میں بوڈریٹ سیٹ ہے۔ بؤڈ کی شرح بٹس میں فی سیکنڈ ہے جس کے ذریعہ مائکروقابو کنٹرولر الٹراسونک سینسر کے ساتھ بات چیت کرتا ہے۔

باطل سیٹ اپ () {پن موڈ (ٹرگ پن ، آؤٹپٹ)؛ // ٹرگرپِن کو آؤٹ پٹ پن موڈ (ایکو پن ، انپٹ) کے بطور سیٹ کرتا ہے۔ // ایکوپین کو ان پٹ سیریل ڈاٹ بیگن (9600) کے بطور سیٹ کرتا ہے۔ // سیریل مواصلات شروع کرتا ہے}

باطل ٹرگر_ امریکی () ایک ایسا فنکشن ہے جس کو دوسرے الٹراسونک سینسر کے ٹرگ پن کو جعلی ٹرگرنگ کے لئے کہا جائے گا۔ ہم دونوں سینسروں کے ٹرگر پن کا ٹرگر وقت مطابقت پذیر کریں گے۔

باطل ٹرگر_ یو ایس () {// جعلی محرک امریکی سینسر ڈیجیٹل رائٹ (ٹرگ پن ، ایچ ای ٹی)؛ // دوسرے سینسر میں تاخیر مائکرو سیکنڈ (10) کے ٹرگر پن پر ایک ہائی سگنل بھیجیں۔ // 10 مائیکرو سیکنڈ ڈیجیٹل رائٹ (ٹرگرپن ، ایل او ایل) کا انتظار کریں۔ // ٹرگر پن سیکنڈ مرسل کو کم سگنل بھیجیں}

چار باطل کیلک () ایک فنکشن ہے جو الٹراسونک سگنل کے ذریعے پہلے سینسر سے دوسرے سینسر تک جانے کے لئے لے جانے والے وقت کا حساب کتاب کرنے کے لئے استعمال ہوتا ہے۔

باطل کیلک () // الٹراسونک لہر کے ذریعے سفر کرنے کے ل taken وقت کا حساب لگانے کے لئے فنکشن {مدت = 0؛ // مدت ابتدائی طور پر صفر ٹرگر_ یوس () پر سیٹ؛ // جب ٹرگر_ یو ایس فنکشن کو کال کریں (ڈیجیٹل ریڈ (ایکو پن) == ہائی)؛ // جبکہ اعلی تاخیر میں ای او پن کی حیثیت (2)؛ // 0.2 سیکنڈ کی تاخیر ٹرگر_ یو ایس ڈال دیں ()؛ // کال کریں ٹرگر_ یو ایس فنکشن کی مدت = پلس ان (ایکو پن ، ایچ ای ٹی)؛ // جو وقت لیا گیا ہے اس کا حساب لگائیں}

5. یہاں میں باطل لوپ () فنکشن ، ہم پہلے سینسر سے دوسرے سینسر تک سفر کرنے کے لئے الٹراسونک سگنل کے ذریعے لگے ہوئے وقت کا استعمال کرکے فاصلے کا حساب لگارہے ہیں۔

باطل لوپ () {فاصلہ = فاصلہ؛ کیلک ()؛ // کالک کو کال کریں () فنکشن فاصلہ = دورانیہ * 0.034؛ // الٹراسونک لہر کے ذریعے ڈھکے ہوئے فاصلے کی تپش لگانا اگر (Pdistance == فاصلہ || فاصلہ == فاصلہ + 1 || فاصلہ == فاصلہ -1). Serial.print ('ماپا ہوا فاصلہ:')؛ // پرنٹ پر سیریل مانیٹر سیریل۔ پرنٹلن (فاصلہ / 2)؛ // پرنٹ پر سیریل مانیٹر} //Serial.print(' فاصلہ: ')؛ //Serial.println(distance/2)؛ تاخیر (500)؛ // 0.5 سیکنڈ تک انتظار کریں}