یہاں ہم ایک اے ٹی میگا 8 مائکروکینٹرلر اور اردوینو اونو کے مابین ایک مواصلت قائم کرنے جارہے ہیں ۔ یہاں قائم مواصلات ہے UART (یونیورسل غیر ہم آہنگ وصول ٹرانسمیٹر) کی قسم. یہ سیریل مواصلات ہے۔ اس سیریل کے ذریعہ مواصلت کے اعداد و شمار کو دو کنٹرولرز کے مابین بانٹ سکتا ہے ، جو مختلف سرایت شدہ سسٹم ایپلی کیشنز میں ضروری ہے۔
سرایت شدہ نظاموں میں ہمیں سسٹم مواصلات کے بارے میں بنیادی معلومات ہونی چاہ. ، لہذا اس کے ل we ہم اس پروجیکٹ کو انجام دے رہے ہیں۔ اس پروجیکٹ میں ہم بنیادی مواصلاتی نظام پر تبادلہ خیال کریں گے اور ہم سیریل میں ٹرانسمیٹر سے وصول کنندہ کو کچھ ڈیٹا بھیجیں گے۔
اس پروجیکٹ میں اے ٹی ایم ای جی اے 8 ٹرانسمیٹر کی حیثیت سے کام کرتا ہے اور آرڈینو اقوام متحدہ بحیثیت ریسکیو کرتا ہے۔ سیریل مواصلات میں ہم بٹ کے ذریعہ ڈیٹا بٹ بھیجیں گے ، جب تک کہ BYTE ڈیٹا کو مکمل طور پر منتقل نہ کیا جائے۔ ڈیٹا 10 بٹ سائز کا ہوسکتا ہے لیکن ہم ابھی 8BITS پر رکھیں گے۔
ضروری اجزاء
ہارڈ ویئر: ATMEGA8 ، آرڈینو UNO ، بجلی کی فراہمی (5v) ، AVR-ISP پروگرامر ، 100uF کاپاکیٹر (بجلی کی فراہمی کے پار منسلک) ، 1KΩ ریزٹر (دو ٹکڑے) ، ایل ای ڈی ، بٹن۔
سافٹ ویئر: اٹیل اسٹوڈیو 6.1 ، پروگسپ یا فلیش جادو ، آرڈینو رات۔
سرکٹ ڈایاگرام اور وضاحت
اس سے پہلے کہ ہم سرکٹ ڈایاگرام اور ٹرانسمیٹر اور وصول کنندہ کے لئے پروگرامنگ پر گفتگو کریں ، ہمیں سیریل مواصلات کے بارے میں سمجھنے کی ضرورت ہے ۔ یہاں کا اے ٹی ایم ای جی اے پہلے ہی بحث کے تحت یو این او کو سیریل میں ڈیٹا بھیجتا ہے۔
اس میں مواصلات کے دیگر طریقے ہیں جیسے ماسٹر سلاو مواصلات ، JTAG مواصلات لیکن آسان مواصلات کے لئے ہم RS232 کا انتخاب کر رہے ہیں ۔ یہاں ہم اے ٹی ایم جی اے 8 کے ٹی ایکس ڈی (ٹرانسمیٹر) پن کو آرڈینو یو این او کے آر ایکس ڈی (وصول کنندہ) پن سے جوڑیں گے۔
قائم کردہ ڈیٹا مواصلات کے لئے یہ پروگرام کیا گیا ہے:
- آٹھ ڈیٹا بٹس
- دو اسٹاپ بٹس
- کوئی برابری چیک بٹ نہیں
- 9600 BPS کی Baud کی شرح (بٹس فی سیکنڈ)
- غیر متزلزل مواصلات (اے ٹی ایم ای جی اے 8 اور یو این او کے مابین گھڑی کا اشتراک نہیں (دونوں کی گھڑی کے مختلف یونٹ ہیں))
اروڈینو اونو اور اے ٹی ایم ای جی اے 8 کے مابین یو آر ٹی قائم کرنے کے ل we ہمیں ترتیب کا درست پروگرام کرنے کی ضرورت ہے۔ اس کے لئے ہمیں مذکورہ پیرامیٹرز کو دونوں سروں پر یکساں رکھنے کی ضرورت ہے۔ اس میں ایک ٹرانسمیٹر اور RECEIVER کے طور پر دوسرے کام کرتا ہے۔ ہم ذیل میں ہر طرف کی ترتیبات پر تبادلہ خیال کریں گے۔
اب RS232 انٹرفیس کے لئے ، ٹرانسسمٹر سائیڈ (ATMEGA8) کے لئے درج ذیل خصوصیات کو مطمئن کرنا ہوگا:
1. پہلے کنٹرولر کے TXD پن (اعداد و شمار کو حاصل کرنے والی خصوصیت) کو منتقلی کے لئے فعال کرنا ضروری ہے۔
Since. چونکہ مواصلات سیریل ہیں ہمیں جب تک ڈیٹا بائی موصول ہوتا ہے اسے جاننے کی ضرورت ہوتی ہے ، تاکہ ہم مکمل بائٹ موصول ہونے تک پروگرام کو روک سکیں۔ ایسا کسی ڈیٹا کو مکمل وقفے سے وصول کرنے کے قابل کرکے کیا جاتا ہے۔
3. ڈیٹا 8 بٹ موڈ میں کنٹرولر کو منتقل اور موصول ہوتا ہے۔ تو ایک وقت میں دو حروف کنٹرولر کو بھیجے جائیں گے۔
4. ماڈیول کے ذریعہ بھیجے گئے ڈیٹا میں کوئی برابری کی بٹس نہیں ہیں۔
مندرجہ بالا خصوصیات کنٹرولر کے اندراجات میں سیٹ کی گئی ہیں۔ ہم ان پر مختصر گفتگو کریں گے:
ڈارک گرے (UDRE): یہ تھوڑا سا اسٹارٹ اپ کے دوران طے نہیں ہوتا ہے لیکن یہ کام کرنے کے دوران استعمال کیا جاتا ہے یہ جانچ کرنے کے لئے کہ ٹرانسمیٹر منتقل کرنے کے لئے تیار ہے یا نہیں۔ مزید تفصیلات کے لئے ٹرسمیٹر سائڈ پر پروگرام دیکھیں۔
آواز (TXEN): یہ تھوڑا سا ٹرانسمیٹر سائڈ پر ٹرانسمیٹر پن کو چالو کرنے کے لئے مقرر کیا گیا ہے۔
پیلو (UCSZ0 ، UCSZ1 ، اور UCSZ2): یہ تینوں بٹس ہم ڈیٹا بٹس کی تعداد کو منتخب کرنے کے لئے استعمال ہوتے ہیں جو ہم ایک ہی بار میں بھیج رہے ہیں یا بھیج رہے ہیں۔
دو طرفہ مواصلت آٹھ بٹ مواصلات کے طور پر قائم ہے۔ ہمارے پاس ٹیبل کے ساتھ مواصلات کا مقابلہ کرتے ہوئے ، UCSZ0 ، UCSZ1 ایک سے ایک اور UCSZ2 سے صفر ہے۔
اورنج (یو ایم ایس ای ایل): یہ تھوڑا سا اسی بنیاد پر مرتب کیا گیا ہے کہ آیا یہ نظام غیر متزلزل گفتگو کر رہا ہے (دونوں مختلف گھڑی استعمال کرتے ہیں) یا ہم آہنگی سے (دونوں ایک ہی گھڑی کا استعمال کرتے ہیں)۔
دونوں SYTEMS کسی گھڑی کا اشتراک نہیں کرتے ہیں۔ چونکہ یہ دونوں اپنی اپنی داخلی گھڑی استعمال کرتے ہیں۔ لہذا ہمیں دونوں کنٹرولرز میں 0 UMSEL کو ترتیب دینے کی ضرورت ہے۔
گرین (یوپی ایم 1 ، یو پی ایم0): یہ دونوں بٹس بٹ پیریٹی کی بنیاد پر ایڈجسٹ کیے گئے ہیں جس کو ہم مواصلات میں استعمال کر رہے ہیں۔
ڈیٹا اے ٹی ایم ای جی اے کو بغیر کسی برابری کے ڈیٹا بھیجنے کا پروگرام بنایا گیا ہے ، کیونکہ ڈیٹا منتقل کرنے کی لمبائی چھوٹی ہے ، ہم واضح طور پر کسی ڈیٹا کے ضائع ہونے یا غلطی کی توقع نہیں کرسکتے ہیں۔ لہذا ہم یہاں کوئی برابری نہیں طے کر رہے ہیں۔ لہذا ہم دونوں UPM1 ، UPM0 کو صفر پر سیٹ کرتے ہیں یا وہ رہ جاتے ہیں ، کیونکہ تمام بٹس پہلے سے 0 ہیں۔
نیلی (USBS): یہ تھوڑا سا اسٹاپ بٹس کی تعداد کو منتخب کرنے کے لئے استعمال کیا جاتا ہے جو ہم مواصلت کے دوران استعمال کر رہے ہیں۔
اس کا قائم کردہ مواصلات غیر متزلزل نوعیت کا ہے ، لہذا زیادہ درست اعداد و شمار کی ترسیل اور استقبال حاصل کرنے کے ل we ، ہمیں دو اسٹاپ بٹس استعمال کرنے کی ضرورت ہے ، لہذا ہم نے ٹرانسمیٹر کی طرف یو ایس ایس کو '1' پر مقرر کیا۔
موزوں UBRRH کا انتخاب کرکے بوڈ کی شرح کنٹرولر میں مقرر کی گئی ہے۔
یو بی بی آر آر ویلیو کا انتخاب کراس ریفرنگ باؤڈ ریٹ اور سی پی یو کرسٹل فریکوینسی کے ذریعہ کیا جاتا ہے۔
تو کراس ریفرنس کے ذریعہ یو بی آر آر ویلیو کو '6' کے بطور دیکھا جاتا ہے ، اور اس طرح باؤڈ ریٹ مقرر ہے۔
اس کے ساتھ ہم نے ٹرانسمیٹر سائڈ پر ترتیبات قائم کیں۔ ہم اب سائٹ کو حاصل کرنے کے بارے میں بات کریں گے۔
یو این او میں سیریل مواصلات کو چالو کرنے کا کام واحد کمانڈ کا استعمال کرکے کیا جاسکتا ہے۔
|
ہم نے جو مواصلت قائم کرنے کا ارادہ کیا ہے وہ ایک BAUD شرح 9600 بٹس فی سیکنڈ کے ذریعہ کی جاتی ہے۔ لہذا UNO کے لئے اس طرح کی شرح کی شرح قائم کرنے اور سیریل مواصلات شروع کرنے کے ل we ہم کمانڈ "Serial.begin (9600)" استعمال کرتے ہیں۔ یہاں 9600 باؤڈ ریٹ ہے اور قابل تبدیل ہے۔
اب اگر باقی ڈیٹا وصول کرنا ہے تو ، ایک ڈیٹا یو این او کے ذریعہ موصول ہوا ہے ، وہ لینے کے لئے دستیاب ہوگا۔ یہ اعداد و شمار کمانڈ کے ذریعہ اٹھایا گیا ہے "وصول شدہ ڈیٹا = سیریل.ریڈ ()؛"۔ اس کمانڈ کے ذریعہ سیریل ڈیٹا کو 'وصول شدہ ڈیٹا' نامی انٹیجر میں لے جایا جاتا ہے۔
جیسا کہ سرکٹ میں ٹرانسمیٹر کی طرف سے جڑا ہوا ایک بٹن دکھایا گیا ہے ، جب دبے ہوئے اس بٹن کو ٹرانسمیٹر (ATMEGA8) کے ذریعہ آٹھ بٹ ڈیٹا بھیجا جاتا ہے اور یہ اعداد و شمار وصول کنندہ (آرڈینو UNO) کے ذریعہ موصول ہوتا ہے۔ کامیابی کے ساتھ یہ اعداد و شمار موصول ہونے پر ، یہ دو اور کنٹرولر کے مابین کامیاب ڈیٹا کی منتقلی کو ظاہر کرنے کے لئے ، اس سے منسلک ایل ای ڈی کو ٹوگل کرتا ہے۔
اس UART کے ذریعہ ATMEGA8 کنٹرولر اور آرڈینو UNO کے مابین کامیابی سے رابطہ قائم ہوا ہے۔