- ایس پی آئی کیا ہے؟
- ایس پی آئی کا کام کرنا
- ارڈینو یو این او میں ایس پی آئی پنس
- ارڈینو میں ایس پی آئی کا استعمال کرنا
- اردوینو ایس پی آئی مواصلت کے لئے ضروری اجزاء
- اردوینو ایس پی آئی کمیونیکیشن سرکٹ ڈایاگرام
- ایس پی آئی مواصلات کے لئے ارڈینو پروگرام کیسے کریں:
- اردوینو ایس پی آئی ماسٹر پروگرامنگ وضاحت
- اردوینو ایس پی آئی غلامی پروگرامنگ کی وضاحت
- ارڈینو پر ایس پی آئی کس طرح کام کرتی ہے؟ - چلو اس کی جانچ!
مائکروکنٹرولر مختلف سینسرز اور ماڈیولز کے ساتھ بات چیت کرنے کے لئے بہت سے مختلف پروٹوکول استعمال کرتا ہے۔ وائرلیس اور وائرڈ مواصلات کے ل communication بہت سے مختلف قسم کے مواصلات کے پروٹوکول ہیں ، اور سب سے عام طور پر استعمال ہونے والی مواصلاتی تکنیک سیریل مواصلات ہے۔ سیریل مواصلات ایک وقت میں ایک وقت میں تھوڑا سا ، ایک مواصلاتی چینل یا بس کے ذریعہ اعداد و شمار بھیجنے کا عمل ہے۔ سیریل مواصلات کی بہت ساری قسمیں ہیں جیسے یو آر ٹی ، کین ، یو ایس بی ، آئی 2 سی ، اور ایس پی آئی مواصلات۔
اس ٹیوٹوریل میں ، ہم ایس پی آئی پروٹوکول اور اردوینو میں اسے استعمال کرنے کے طریقے کے بارے میں جانتے ہیں ۔ ہم دو ارڈینو کے درمیان رابطے کے لئے ایس پی آئی پروٹوکول کا استعمال کریں گے ۔ یہاں ایک ارڈینو ماسٹر کی حیثیت سے کام کرے گی اور دوسرا غلام کی حیثیت سے کام کرے گا ، دو ایل ای ڈی اور پش بٹن دونوں اردوو سے منسلک ہوں گے۔ ایس پی آئی مواصلت کا مظاہرہ کرنے کیلئے ، ہم ماسٹر سائیڈ ایل ای ڈی کو غلام سائیڈ پر پش بٹن کے ذریعہ کنٹرول کریں گے اور اس کے برعکس ایس پی آئی سیریل مواصلات پروٹوکول کا استعمال کریں گے۔
ایس پی آئی کیا ہے؟
ایس پی آئی (سیریل پیریفیریل انٹرفیس) ایک سیریل مواصلات کا پروٹوکول ہے۔ ایس پی آئی انٹرفیس کو موٹرولا نے 1970 میں پایا تھا۔ ایس پی آئی کا فل ڈوپلیکس کنیکشن ہے ، جس کا مطلب ہے کہ ڈیٹا بیک وقت بھیجا اور وصول کیا جاتا ہے۔ وہ یہ ہے کہ ایک غلام کسی غلام کو ڈیٹا بھیج سکتا ہے اور غلام ایک ساتھ میں ماسٹر کو ڈیٹا بھیج سکتا ہے۔ ایس پی آئی ہم وقت ساز سیریل مواصلات کا مطلب ہے مواصلات کے مقاصد کے لئے گھڑی کی ضرورت ہے۔
اس سے پہلے دیگر مائکروکانٹرولرز میں ایس پی آئی مواصلات کی وضاحت کی گئی ہے:
- پی آئی سی مائکروکنٹرولر PIC16F877A کے ساتھ ایس پی آئی مواصلات
- راسبیری پائی کے ساتھ 3.5 انچ ٹچ اسکرین TFT LCD انٹرفیسنگ
- پروگرامنگ اے وی آر مائکروکانٹرولر کے ساتھ ایس پی آئی پنوں
- اردوینو کے ساتھ نوکیا 5110 گرافیکل ایل سی ڈی کو انٹرفیس کرنا
ایس پی آئی کا کام کرنا
ایک ایس پی آئی میں چار لائنوں کا استعمال کرکے ماسٹر / غلام مواصلات ہوتے ہیں۔ ایک ایس پی آئی میں صرف ایک ماسٹر ہوسکتا ہے اور اس میں ایک سے زیادہ غلام ہوسکتے ہیں۔ ایک ماسٹر عام طور پر ایک مائکروقابو کرنے والا ہوتا ہے اور غلام ایک مائکروقابو کرنے والا ، سینسر ، اے ڈی سی ، ڈی اے سی ، ایل سی ڈی وغیرہ ہوسکتا ہے۔
ذیل میں سنگل غلام کے ساتھ ایس پی آئی ماسٹر کی بلاک آریھ کی نمائندگی ہے ۔
ایس پی آئی کے پاس چار لائنیں MISO، MOSI، SS اور CLK ہیں
- MISO (ماسٹر ان غلامی آؤٹ) - ماسٹر کو ڈیٹا بھیجنے کے لئے غلام لائن۔
- MOSI (ماسٹر آؤٹ غلامی ان) - پیری فیرلز کو ڈیٹا بھیجنے کے لئے ماسٹر لائن۔
- ایس سی کے (سیریل گھڑی) - گھڑی کی دالیں جو ماسٹر کے ذریعہ تیار کردہ ڈیٹا ٹرانسمیشن کو ہم وقت ساز کرتی ہیں۔
- ایس ایس (غلام منتخب کریں) aster ماسٹر اس پن کو مخصوص آلات کو اہل اور غیر فعال کرنے کے لئے استعمال کرسکتا ہے۔
ایک سے زیادہ غلاموں کے ساتھ ایس پی آئی ماسٹر
ماسٹر اور غلام کے مابین مواصلات شروع کرنے کے لئے ہمیں مطلوبہ ڈیوائس کا غلام سلیکشن (ایس ایس) پن LOW پر مرتب کرنے کی ضرورت ہے ، تاکہ یہ ماسٹر سے بات چیت کرسکے۔ جب یہ اونچا ہوتا ہے تو ، یہ ماسٹر کو نظرانداز کرتا ہے۔ اس سے آپ متعدد ایس پی آئی ڈیوائسز کو ایک ہی MISO ، MOSI ، اور سی ایل کے لائن آف ماسٹر کا اشتراک کرنے کی سہولت دیتے ہیں۔ جیسا کہ آپ مندرجہ بالا تصویر میں دیکھ سکتے ہیں کہ یہاں چار غلام ہیں جن میں ایس سی ایل کے ، ایم آئ ایس او ، موسی عام طور پر ماسٹر سے جڑے ہوئے ہیں اور ہر ایک غلام کا ایس ایس انفرادی ایس ایس پن (ایس ایس 1 ، ایس ایس 2 ، ایس ایس 3) سے الگ الگ منسلک ہوتا ہے۔ مطلوبہ ایس ایس پن کو ترتیب دے کر ایک مالک اس غلام کے ساتھ بات چیت کرسکتا ہے۔
ارڈینو یو این او میں ایس پی آئی پنس
نیچے دی گئی تصویر میں اردوینو یو این او (ریڈ باکس میں) موجود ایس پی آئی پنوں کو دکھایا گیا ہے۔
ایس پی آئی لائن |
ارڈینو میں پن |
موسی |
11 یا آئی سی ایس پی۔ 4 |
MISO |
12 یا آئی سی ایس پی۔ 1 |
ایس سی کے |
13 یا آئی سی ایس پی ۔3 |
ایس ایس |
10 |
ارڈینو میں ایس پی آئی کا استعمال کرنا
اس سے پہلے کہ دو اردوینو کے مابین ایس پی آئی مواصلات کے لئے پروگرامنگ شروع کریں ۔ ہمیں اردوینو ایس پی آئی لائبریری کے بارے میں جاننے کی ضرورت ہے جو اردوینو IDE میں استعمال ہوتی ہیں۔
کتب خانہ
1. SPI.begin ()
استعمال: ایس سی کے ، موسی اور ایس ایس کو آؤٹ پٹ پر سیٹ کرکے ، ایس سی کے اور موسی کو کم اور ایس ایس اونچائی کھینچ کر ایس پی آئی بس کا آغاز کرنا۔
2. SPI.setClockDivider (تقسیم)
استعمال: سسٹم گھڑی کے مقابلہ میں SPI گھڑی تقسیم کرنے کیلئے۔ دستیاب تقسیم کار 2 ، 4 ، 8 ، 16 ، 32 ، 64 یا 128 ہیں۔
آبادی:
- SPI_CLOCK_DIV2
- SPI_CLOCK_DIV4
- SPI_CLOCK_DIV8
- SPI_CLOCK_DIV16
- SPI_CLOCK_DIV32
- SPI_CLOCK_DIV64
- SPI_CLOCK_DIV128
3. SPI.attachInterrupt (ہینڈلر)
استعمال: اس فنکشن کو اس وقت کہا جاتا ہے جب کوئی غلام آلہ ماسٹر سے ڈیٹا وصول کرتا ہے۔
4. SPI.transfer (ویل)
استعمال: یہ فنکشن بیک وقت بھیجنے اور ماسٹر اور غلام کے مابین ڈیٹا وصول کرنے کے لئے استعمال ہوتا ہے۔
تو اب ہم آرڈینوو میں ایس پی آئی پروٹوکول کے عملی مظاہرے سے شروع کریں۔ اس ٹیوٹوریل میں ہم دو ادوینو کو بطور ماسٹر اور دوسرا غلام کے طور پر استعمال کریں گے۔ دونوں اردوینو الگ الگ ایل ای ڈی اور پش بٹن کے ساتھ منسلک ہیں۔ غلام اردوینو کے پش بٹن کا استعمال کرکے ماسٹر ایل ای ڈی کو کنٹرول کیا جاسکتا ہے اور غلام اردوینو کے ایل ای ڈی کو ارڈوینو میں موجود ایس پی آئی مواصلات پروٹوکول کا استعمال کرتے ہوئے ماسٹر اردوینو کے پش بٹن کے ذریعے کنٹرول کیا جاسکتا ہے۔
اردوینو ایس پی آئی مواصلت کے لئے ضروری اجزاء
- ارڈینو یو این او (2)
- ایل ای ڈی (2)
- پش بٹن (2)
- مزاحم 10 ک (2)
- مزاحمتی 2.2 ک (2)
- بریڈ بورڈ
- مربوط تاروں
اردوینو ایس پی آئی کمیونیکیشن سرکٹ ڈایاگرام
مندرجہ ذیل سرکٹ ڈایاگرام سے پتہ چلتا ہے کہ آرڈوینو یو این او پر ایس پی آئی کو کس طرح استعمال کیا جا. ، لیکن آپ ارڈینو میگا ایس پی آئی مواصلات یا اریڈینو نانو ایس پی آئی مواصلات کے لئے اسی طریقہ کار پر عمل کرسکتے ہیں۔ پن نمبر کے علاوہ تقریبا everything ہر چیز یکساں رہے گی۔ اردوینو نینو ایس پی آئی پنوں اور ارڈینو میگا پنوں کو تلاش کرنے کے ل You آپ کو ارڈینو نینو یا میگا کا پن آؤٹ چیک کرنا ہوگا ، ایک بار جب آپ یہ کر چکے ہیں کہ باقی سب ایک جیسے ہوں گے۔
میں نے ایک بریڈ بورڈ پر مذکورہ بالا سرکٹ بنایا ہے ، آپ سرکٹ سیٹ اپ دیکھ سکتے ہیں جو میں نے نیچے جانچ کے لئے استعمال کیا تھا۔
ایس پی آئی مواصلات کے لئے ارڈینو پروگرام کیسے کریں:
اس ٹیوٹوریل میں دو پروگرام ہیں ایک ماسٹر ارڈینو کے لئے اور دوسرا غلام ارڈینو کے لئے۔ اس منصوبے کے اختتام پر دونوں اطراف کے لئے مکمل پروگرام دیئے گئے ہیں۔
اردوینو ایس پی آئی ماسٹر پروگرامنگ وضاحت
1. سب سے پہلے ہمیں SPI مواصلات کے افعال کے استعمال کے ل the SPI لائبریری کو شامل کرنے کی ضرورت ہے۔
# شامل کریں
2. باطل سیٹ اپ میں ()
- ہم بوڈ ریٹ 115200 پر سیریل مواصلات شروع کرتے ہیں۔
سیریل.بیگین (115200)؛
- 7 کو پن کرنے کے لئے ایل ای ڈی اور پش بٹن کو 2 پن پر منسلک کریں اور ان پنوں کو بالترتیب اوٹپٹ اور انپٹ سیٹ کریں۔
پن موڈ (آئپ بٹن ، ان پٹ)؛ پن موڈ (ایل ای ڈی ، آؤٹپٹ)؛
- آگے ہم ایس پی آئی مواصلات کا آغاز کرتے ہیں
SPI.begin ()؛
- اگلا ، ہم نے ایس پی آئی مواصلات کے لئے کلاک ڈیوائڈر مرتب کیا۔ یہاں ہم نے تقسیم کنندگان 8 مقرر کی ہیں۔
SPI.setClockDivider (SPI_CLOCK_DIV8)؛
- پھر ایس ایس پن ہائی ہائی سیٹ کریں کیوں کہ ہم نے غلام ارڈینو کو کوئی منتقلی شروع نہیں کی۔
ڈیجیٹل رائٹ (ایس ایس ، ہائی)؛
3. باطل لوپ میں ():
- ہم نے پندرہ (ماسٹر ارڈینو) سے منسلک پش بٹن پن کی حیثیت پڑھ کر غلام اردوینو کو ان کی قیمت بھیجنے کے ل. پڑھی۔
بٹن ویلیو = ڈیجیٹل ریڈ (آئی پی بٹن)؛
- پن 2 سے ان پٹ پر انحصار کرتے ہوئے ایکس ویلیو (غلام کو بھیجنے کے لئے) کے لئے منطق مرتب کریں
اگر (بٹن ویلیو == ہائی) { x = 1؛ } دوسری { x = 0؛ }
- قیمت بھیجنے سے پہلے ہمیں غلام سے کم قیمت کی ضرورت ہے تاکہ ماسٹر سے غلام میں تبادلہ شروع کریں۔
ڈیجیٹل رائٹ (ایس ایس ، کم)؛
- یہاں اہم مرحلہ آتا ہے ، مندرجہ ذیل بیان میں ہم ماسٹرسنڈ متغیر میں پش بٹن ویلیو کو غلام ارڈینو کو بھیجتے ہیں اور غلام سے بھی قیمت وصول کرتے ہیں جو ماسٹرریپ متغیر میں اسٹور ہوگی ۔
ماسٹریسیپ = SPI.transfer (ماسٹرسینڈ)؛
- اس کے بعد ماسٹریپ ویلیو پر انحصار کرتے ہوئے ہم ماسٹر اردوینو ایل ای ڈی کو آن یا آف کردیں گے۔
اگر (ماسٹر ریپ == 1) { ڈیجیٹل رائٹ (ایل ای ڈی ، ہائی)؛ // سیٹ 7 اعلی ہائی سیریل.پرنٹ لین ("ماسٹر ایل ای ڈی آن")؛ } دوسری { ڈیجیٹل رائٹ (ایل ای ڈی ، کم)؛ // سیٹ 7 LOW Serial.println ("ماسٹر ایل ای ڈی آف")؛ }
نوٹ: ارڈوینو IDE کے سیریل موٹر میں نتیجہ دیکھنے کے لئے ہم سیریل.پرنٹلن () استعمال کرتے ہیں ۔ آخر میں ویڈیو چیک کریں۔
اردوینو ایس پی آئی غلامی پروگرامنگ کی وضاحت
1. سب سے پہلے ہمیں SPI مواصلات کے افعال کے استعمال کے ل the SPI لائبریری کو شامل کرنے کی ضرورت ہے۔
# شامل کریں
2. باطل سیٹ اپ میں ()
- ہم بوڈ ریٹ 115200 پر سیریل مواصلات شروع کرتے ہیں۔
سیریل.بیگین (115200)؛
- پن 2 پر ایل ای ڈی اور پش بٹن کو پن 2 کے ل to منسلک کریں اور ان پنوں کو بالترتیب آؤٹ پٹ اور انپٹ سیٹ کریں۔
پن موڈ (آئپ بٹن ، ان پٹ)؛ پن موڈ (ایل ای ڈی ، آؤٹپٹ)؛
- یہاں اہم قدم مندرجہ ذیل بیانات ہیں
پن موڈ (MISO، آؤٹ پٹ)؛
مذکورہ بیان نے MISO کو آؤٹ پٹ (ماسٹر IN کو ڈیٹا بھیجنا ہے) کے طور پر متعین کیا ہے۔ تو اعدادوشمار سلاو ارڈینو کے MISO کے ذریعے بھیجا جاتا ہے۔
- اب ایس پی آئی کنٹرول رجسٹر کا استعمال کرکے غلامی وضع میں ایس پی آئی کو آن کریں
SPCR - = _BV (SPE)؛
- پھر ایس پی آئی مواصلت کیلئے مداخلت کو آن کریں۔ اگر ماسٹر سے ڈیٹا موصول ہوتا ہے تو انٹراپٹ روٹین طلب کی جاتی ہے اور موصولہ قیمت ایس پی ڈی آر سے لی جاتی ہے (ایس پی آئی ڈیٹا رجسٹر)
SPI.attachInterrupt ()؛
- ماسٹر سے ملنے والی قیمت ایس پی ڈی آر سے لی گئی ہے اور غلامی شدہ متغیر میں اسٹور کی گئی ہے۔ یہ روٹین روٹین کی تقریب کے بعد ہوتا ہے۔
ISR (SPI_STC_vect) { غلامی شدہ = SPDR؛ موصول = سچ؛ }
3. اگلی صفر لوپ میں () ہم نے غلام کی قیمت پر منحصر ہوکر غلام آرڈینو ایل ای ڈی کو آن یا آف کرنے کے لئے مقرر کیا۔
اگر (غلامی شدہ == 1) { ڈیجیٹل رائٹ (ایل ای ڈی پن ، ہائی)؛ // سیریل ڈاٹ ہائیٹ ایل ای ڈی کے طور پر 7 سیٹ کرتا ہے۔ پرنٹلن ("غلامی ایل ای ڈی")؛ } دوسری { ڈیجیٹل رائٹ (ایل ای ڈی پن ، LOW)؛ // سیریل ڈاٹ ایل ای ڈی کے بطور پن 7 سیٹ کریں۔ پرنٹلن ("غلامی کی ایل ای ڈی بند ہے")؛ }
- اس کے بعد ہم غلام آردوینو پش بٹن کی حیثیت کو پڑھتے ہیں اور ایس پی ڈی آر رجسٹر کو قیمت دے کر ماسٹر اردوینو کو ویلیو بھیجنے کے لئے سلیونسینڈ میں ویلیو اسٹور کرتے ہیں ۔
بٹن ویلیو = ڈیجیٹل ریڈ (بٹن پن)؛ اگر (بٹن ویلیو == ہائی) {x = 1؛ } دوسری {x = 0؛ } غلامی = سیکنڈ؛ ایس پی ڈی آر = غلامی؛
نوٹ: ارڈوینو IDE کے سیریل موٹر میں نتیجہ دیکھنے کے لئے ہم سیریل.پرنٹلن () استعمال کرتے ہیں ۔ آخر میں ویڈیو چیک کریں۔
ارڈینو پر ایس پی آئی کس طرح کام کرتی ہے؟ - چلو اس کی جانچ!
ذیل میں دو ارڈینو بورڈ کے مابین ایس پی آئی مواصلت کے لئے حتمی سیٹ اپ کی تصویر ہے ۔
جب ماسٹر سائیڈ پر پش بٹن دبایا جاتا ہے تو ، غلام سائیڈ پر سفید ایل ای ڈی آن ہو جاتا ہے۔
اور جب غلام سلائڈ پر پش بٹن دب جاتا ہے تو ، ماسٹر سائیڈ میں ریڈ ایل ای ڈی آن ہو جاتا ہے۔
ایردوینو ایس پی آئی مواصلات کا مظاہرہ دیکھنے کے لئے آپ نیچے دی گئی ویڈیو چیک کرسکتے ہیں۔ اگر آپ کے کوئی سوالات ہیں تو ، براہ کرم انھیں تبصرہ سیکشن میں ہمارے فورمز کا استعمال کریں۔