- RS-485 سیریل مواصلات
- ضروری اجزاء
- سرکٹ ڈایاگرام
- پروگرامنگ STM32F103C8 اور RS485 سیریل مواصلات کے لئے Ardino UNO
- STM32F103C8 اور Ardino UNO کے مابین RS485 مواصلات کی جانچ کرنا:
مواصلاتی پروٹوکول ایک ڈیجیٹل الیکٹرانکس اور ایمبیڈڈ سسٹم کا لازمی جزو ہیں۔ جہاں کہیں بھی متعدد مائکروکینٹرولر اور پیری فیرلز میں مداخلت ہوتی ہے ، وہاں ڈیٹا کے تبادلے کے ل the مواصلاتی پروٹوکول کا استعمال کرنا پڑتا ہے۔ سیریل مواصلات کی بہت سی قسمیں پروٹوکول دستیاب ہیں۔ RS485 ایک سیریل مواصلات پروٹوکول میں سے ایک ہے اور صنعتی منصوبوں اور بھاری مشینری میں استعمال ہوتا ہے۔
ہم نے پچھلے سبق میں آرڈوینو یونو اور ارڈینو نینو کے مابین RS485 سیریل مواصلات کے بارے میں سیکھا ۔ اس ٹیوٹوریل میں STM32F103C8 مائکروکنٹرولر میں RS-485 سیریل مواصلات استعمال کرنے کے بارے میں ہے ۔ اگر آپ STM32 مائکروکانٹرلر کے لئے نئے ہیں تو پھر آرڈینوو IDE کا استعمال کرتے ہوئے STM32 کے ساتھ شروعات کرنا شروع کریں: پلکنے والی ایل ای ڈی اور یہاں کے تمام STM32 پروجیکٹس کو چیک کریں۔
اس ٹیوٹوریل میں ماسٹر STM32F103C8 کے پاس تین پش بٹن ہیں جو RS-485 سیریل مواصلات کا استعمال کرتے ہوئے غلامی اردوینو یونو میں موجود تین ایل ای ڈی کی حیثیت کو کنٹرول کرنے کے لئے استعمال ہوتے ہیں۔
آئیے RS-485 سیریل مواصلات کے کام کو سمجھنے سے شروع کرتے ہیں۔
RS-485 سیریل مواصلات
RS-485 ایک متضاد سیریل مواصلات پروٹوکول ہے جس میں گھڑی کی ضرورت نہیں ہوتی ہے۔ یہ بائنری ڈیٹا کو ایک دوسرے سے دوسرے آلے میں منتقل کرنے کے لئے تفریق سگنل نامی ایک تکنیک کا استعمال کرتا ہے ۔
تو یہ مختلف سگنل منتقلی کا طریقہ کیا ہے؟
متناسب سگنل کا طریقہ کار مثبت اور منفی 5V کا استعمال کرکے تفرقی وولٹیج پیدا کرکے کام کرتا ہے ۔ جب چار تاروں کا استعمال کرتے وقت دو تاروں اور فل ڈوپلیکس مواصلت کا استعمال کرتے ہو تو یہ نصف ڈوپلیکس مواصلات فراہم کرتا ہے ۔
یہ طریقہ استعمال کرکے:
- RS-485 زیادہ سے زیادہ 30MBS کی ڈیٹا ٹرانسفر کی شرح کی حمایت کرتا ہے۔
- یہ RS-232 پروٹوکول کے مقابلے میں زیادہ سے زیادہ ڈیٹا ٹرانسفر فاصلہ بھی فراہم کرتا ہے۔ یہ ڈیٹا کو زیادہ سے زیادہ 1200 میٹر تک منتقل کرتا ہے۔
- RS-232 سے زیادہ RS-485 کا سب سے بڑا فائدہ سنگل ماسٹر کے ساتھ ایک سے زیادہ غلام ہے جبکہ RS-232 صرف ایک ہی غلام کی حمایت کرتا ہے۔
- زیادہ سے زیادہ 32 آلات RS-485 پروٹوکول سے منسلک ہوسکتے ہیں۔
- RS-485 کا دوسرا فائدہ شور سے محفوظ ہے کیونکہ وہ منتقلی کے لئے امتیازی اشارے کا طریقہ استعمال کرتے ہیں۔
- I2C پروٹوکول کے مقابلے RS-485 تیز ہے۔
RS-485 ماڈیول کسی بھی مائکرو قابو رکھنے والے سے سیریل پورٹ سے منسلک ہوسکتا ہے ۔ مائکروکنٹرولرز کے ساتھ RS-485 ماڈیول استعمال کرنے کے لئے 5V MAX485 TTL سے RS485 نامی ایک ماڈیول کی ضرورت ہے جو میکسم MAX485 IC پر مبنی ہے جس کی وجہ سے یہ 1200 میٹر کی لمبی دوری پر سیریل مواصلات کی اجازت دیتا ہے اور یہ دو طرفہ ہے اور آدھے ڈوپلیکس میں ڈیٹا کی منتقلی کی شرح 2.5 ہے۔ ایم بی پی ایس اس ماڈیول میں 5V کا وولٹیج درکار ہے۔
RS-485 پن تفصیل:
پن کا نام |
تفصیل |
وی سی سی |
5V |
A |
غیر انورٹنگ وصول کنندہ ان پٹ غیر انورٹنگ ڈرائیور آؤٹ پٹ |
بی |
وصول کنندہ ان پٹ کو تبدیل کرنا الٹا ڈرائیور آؤٹ پٹ |
GND |
GND (0V) |
R0 |
وصول کنندہ آؤٹ (آر ایکس پن) |
RE |
وصول کنندہ آؤٹ پٹ (LOW-اہل) |
ڈی ای |
ڈرائیور آؤٹ پٹ (اعلی قابل) |
DI |
ڈرائیور ان پٹ (TX پن) |
RS485 ماڈیول میں مندرجہ ذیل خصوصیات ہیں:
- آپریٹنگ وولٹیج: 5V
- بورڈ میں MAX485 چپ
- RS485 مواصلت کے لئے بجلی کی کم کھپت
- سست روی شرح محدود ٹرانسیور
- 5.08 ملی میٹر پچ 2P ٹرمینل
- آسان RS-485 مواصلات کی وائرنگ
- چپ کے تمام پنوں کو مائکرو قابو کرنے والے کے ذریعے کنٹرول کیا جاسکتا ہے
- بورڈ کا سائز: 44 x 14 ملی میٹر
اس ماڈیول کو STM32F103C8 اور Ardino UNO کے ساتھ استعمال کرنا بہت آسان ہے۔ مائیکروکنٹرولرز کی ہارڈ ویئر سیریل پورٹس استعمال کی جاتی ہیں۔ STM32 اور ارڈوینو UNO میں ہارڈ ویئر سیریل پنوں کو نیچے دیا گیا ہے۔
- STM32F103C8 میں: پن PA9 (TX) اور PA10 (RX)
- ارڈینو اونو میں: پن 0 (RX) اور 1 (TX)
پروگرامنگ صرف استعمال بھی آسان ہے Serial.print () RS-485 اور میں لکھنے کی Serial.Read () RS-485 اور پنوں سے پڑھنے کے لئے DE & RE کے RS-485 بنا ہوتا ہے اعداد و شمار حاصل کرنے کے لئے کم کرنے اور ان کے لئے اعلی RS-485 بس میں ڈیٹا لکھیں ۔
ضروری اجزاء
- STM32F103C8
- اردوینو یو این او
- MAX485 TTL سے RS485 کنورٹر ماڈیول - (2)
- 10K پوٹینومیٹر
- پش بٹن - 3
- ایل ای ڈی - 3
- مزاحم
- بریڈ بورڈ
- مربوط تاروں
سرکٹ ڈایاگرام
اس ٹیوٹوریل میں STM32F103C8 ایک RS-485 ماڈیول کے ساتھ ماسٹر کے طور پر استعمال ہوتا ہے اور Ardino UNO دوسرے RS-485 ماڈیول کے ساتھ غلام کی حیثیت سے استعمال ہوتا ہے ۔
RS-485 اور STM32F103C8 (ماسٹر) کے مابین سرکٹ کنکشن:
RS-485 |
STM32F103C8 |
DI |
PA9 (TX1) |
ڈی ای RE |
پی اے 3 |
R0 |
PA10 (RX1) |
وی سی سی |
5V |
GND |
GND |
A |
غلام آر ایس - 485 کے ایک کو |
بی |
غلام آر ایس 485 کے بی |
تین پش بٹن کے ساتھ STM32F103C8:
10 ک کے تین پل ڈاون ریزسٹر کے ساتھ تین پش بٹن STM32F103C8 کے پنوں PA0 ، PA1 ، PA2 سے جڑے ہوئے ہیں۔
آر ایس 485 اور ارڈینو یو این او (غلام) کے مابین سرکٹ کنکشن:
RS-485 |
اردوینو یو این او |
DI |
1 (TX) |
ڈی ای RE |
2 |
R0 |
0 (آر ایکس) |
وی سی سی |
5V |
GND |
GND |
A |
ماسٹر آر ایس - 485 کے اے کو |
بی |
ماسٹر آر ایس - 485 کے بی |
تین ایل ای ڈی کا استعمال کیا جاتا ہے جہاں 330 اوہم کے ریزٹر کے ساتھ ایل ای ڈی کے انوڈس پنڈ سے منسلک ہوتے ہیں 4 ، 7 ، 8 اردوینو یو این او کے ایل ای ڈی کے کیتھوڈ جی این ڈی سے منسلک ہوتے ہیں۔
پروگرامنگ STM32F103C8 اور RS485 سیریل مواصلات کے لئے Ardino UNO
ارڈوینو IDE دونوں بورڈوں کی ترقی اور پروگرامنگ کے لئے استعمال کیا جاتا ہے یعنی ایسٹی ایم 32 اور اردوینو یو این او۔ لیکن یہ یقینی بنائیں کہ آپ نے ٹولس-> پورٹ اور بورڈ سے ٹولس-> بورڈ سے متعلقہ PORT کا انتخاب کیا ہے ۔ اگر آپ کو کوئی مشکلات یا شک محسوس ہوتا ہے تو صرف اپنے STM32 کو آرڈینو IDE میں پروگرام کرنا دیکھیں۔ اس ٹیوٹوریل کے لئے پروگرامنگ میں STM32F103C8 (ماسٹر) کے لئے دو سیکشن ون پر مشتمل ہے اور دوسرا ارڈینوو UNO (غلام) کے لئے ہے۔ دونوں کوڈز کو ایک ایک ذیل میں بیان کیا جائے گا۔
STM32F103C8 بطور ماسٹرماسٹر سائیڈ میں ، پش بٹن کی حیثیت کو پڑھا جاتا ہے اور پھر ان اقدار کو STM32F103C8 کے ہارڈ ویئر سیریل پورٹس 1 (PA9 ، PA10) کے ذریعے RS-485 بس میں سیرت سے لکھا جاتا ہے۔ نیز ابھی تک کسی بیرونی لائبریری کی ضرورت نہیں ہے۔ ارڈینو میں سیریل مواصلات کے لئے تمام ضروری لائبریری موجود ہے۔
9600 کے بوڈریٹ پر ہارڈ ویئر سیریل پن (PA9، PA10) کا استعمال کرتے ہوئے سیریل مواصلات کا آغاز کریں۔
سیریل 1.بیگین (9600)؛
STM32F103C8 کے پنوں PA0 ، PA1 ، PA2 پر پش بٹن کی حیثیت کو پڑھیں اور انہیں ایک متغیر بٹن 1 ، بٹن 2 وال ، بٹن 3 میں محفوظ کریں۔ بٹن دبائے جانے پر قدر زیادہ ہے اور دبانے پر کم ہے۔
انٹ بٹن 1 وال = ڈیجیٹل ریڈ (بٹن 1)؛ انٹ بٹن 2 وال = ڈیجیٹل ریڈ (بٹن 2)؛ انٹ بٹن 3 ایال = ڈیجیٹل ریڈ (بٹن 3)؛
سیریل پورٹ پر بٹن کی قدر بھیجنے سے پہلے ، RS-485 کے پنوں DE & RE HIGH ہونی چاہئے جو STM32F103C8 کے پن PA3 سے منسلک ہے (پن PA3 HIGH بنانے کے لئے):
ڈیجیٹل رائٹ (قابل بنائیں ، اعلی)؛
ان اقدار کو سیریل پورٹ میں ڈالنے کے ل Next اور اس پر منحصر ہے کہ جن پر دبانے والے بٹن کو دباؤ ہے اس پر انحصار کریں اگر کوئی اور بیان ہے اور اسی قدر کو بٹن دبانے پر بھیجیں۔
اگر پہلا بٹن دبایا جاتا ہے تو پھر حالت مماثل ہو جاتی ہے اور '1' کی قیمت سیریل پورٹ پر بھیجی جاتی ہے جہاں ارڈینو یو این او منسلک ہے۔
اگر (button1val == اعلی) { INT num1 = 1؛ سیریل 1. پرنٹ لن (نمبر 1)؛ }
اسی طرح ، جب بٹن 2 دب جاتا ہے تو ویلیو 2 سیریل پورٹ کے اوپر بھیجا جاتا ہے اور جب بٹن 3 دب جاتا ہے تو ویلیو 3 سیریل پورٹ پر بھیجی جاتی ہے۔
ورنہ اگر (button2val == اعلی) { INT num2 = 2؛ سیریل 1. پرنٹ لن (نمبر 2)؛ } ورنہ اگر (بٹن 3 والا == HIGH) { نمبر num3 = 3؛ سیریل 1. پرنٹ لن (نمبر 3)؛ }
اور جب کوئی بٹن دبایا نہیں جاتا ہے تو 0 کی قیمت کو اردونو یونو کو بھیجا جاتا ہے۔
باقی { انٹ نمبر = 0؛ سیریل 1. پرنٹ لن (نمبر)؛ }
اس نے STM32 کو ماسٹر کی حیثیت سے تشکیل دینے کے لئے پروگرامنگ ختم کردی۔
اردوینو یو این او بطور غلامغلام سائیڈ میں آرڈوینو یو این او کو ایک انٹیجر ویلیو ملتی ہے جو ماسٹر STM32F103C8 سے بھیجی گئی ہے جو اردوینو یو این او (P0، 1) کے ہارڈ ویئر سیریل پورٹ پر دستیاب ہے جہاں RS-485 ماڈیول منسلک ہے۔
آسانی سے پڑھیں اور متغیر میں قیمت کو اسٹور کریں۔ موصولہ قیمت پر انحصار کرتے ہوئے اسی ایل ای ڈی کو آنڈو GPIO سے منسلک یا بند کردیا گیا ہے۔
ماسٹر سے اقدار حاصل کرنے کے لئے صرف RS-485 ماڈیول LOW کی پنوں کو DE & RE بنائیں ۔ لہذا Ardino UNO کا پن 2 (قابل پن) کم بنایا گیا ہے۔
ڈیجیٹل رائٹ (ایبل پن ، کم)؛
اب صرف سیریل پورٹ پر دستیاب انٹیجر ڈیٹا پڑھیں اور ان کو متغیر میں اسٹور کریں۔
int وصول = Serial.parseInt ()؛
موصولہ قیمت (یعنی ، 0 ، 1 ، 2 ، 3) پر منحصر ہے ، اسی طرح تین ایل ای ڈی میں سے ایک کو آن کیا گیا ہے۔
اگر (موصولہ == 1) // حاصل شدہ قیمت پر منحصر ہے کہ متعلقہ ایل ای ڈی کو آن یا آف { ڈیجیٹل رائٹ ( بند کر دیا گیا ہے) (ledpin1 ، HIGH)؛ } دوسری صورت میں اگر (وصول == 2) { ڈیجیٹل رائٹ (لیڈپین 2 ، ہائی)؛ } دوسری صورت میں اگر (وصول == 3) { ڈیجیٹل رائٹ (لیڈپین 3 ، ہائی)؛ } دوسری { ڈیجیٹل رائٹ (ledpin1 ، LOW)؛ ڈیجیٹل رائٹ (ledpin2 ، LOW)؛ ڈیجیٹل رائٹ (ledpin3 ، LOW)؛ }
اس سے پروگرامنگ اور اردوینو یو این او کو بطور غلام تشکیل دینے کا کام ختم ہوجاتا ہے۔ نیز یہ آردوینو یو این او اور ایس ٹی ایم 32 کے لئے مکمل کنفیگریشن کو بھی ختم کرتا ہے۔ اس سبق کے آخر میں کام کرنے والی ویڈیو اور تمام کوڈز منسلک ہیں۔
STM32F103C8 اور Ardino UNO کے مابین RS485 مواصلات کی جانچ کرنا:
1. جب پش بٹن -1 ، جو ماسٹر STM32 سے منسلک ہوتا ہے ، پر ایل ای ڈی 1 ٹرنز دبایا جاتا ہے جب غلام اردوینو سے منسلک ہوتا ہے۔
2. جب پش بٹن -2 ، جو ماسٹر STM32 سے منسلک ہوتا ہے ، جب ایل ای ڈی 2 ٹرنز دب جاتا ہے تو غلام اردوینو سے جڑا ہوتا ہے۔
3. اسی طرح جب پش بٹن -3 دبانے پر ایل ای ڈی 3 ٹرنز بند ہوجاتا ہے تو غلام اردوینو سے منسلک ہوتا ہے۔
یہ STM32F103C8 اور Ardino UNO کے مابین RS485 سیریل مواصلات کو ختم کرتا ہے ۔ ایردوینو یو این او اور ایس ٹی ایم 32 بورڈ بڑے پیمانے پر بورڈز کو تیزی سے پروٹوٹائپنگ کے لئے استعمال کرتے ہیں اور ہم نے ان بورڈز پر بہت سارے مفید منصوبے انجام دیئے ہیں۔ اگر آپ کو کوئی شبہ ہے یا ہمارے لئے کوئی تجویز ہے تو نیچے لکھ کر تبصرہ کریں۔