Arduino میں سافٹ ویئر سیریل لائبریری

Arduino My Saf Wyyr Syryl Laybryry



Arduino پلیٹ فارم لوگوں کو مختلف پروجیکٹس بنانے کے قابل بناتا ہے۔ Arduino ایک صارف دوست پلیٹ فارم ہے جس میں لائبریریوں کی ایک وسیع رینج کے لیے سپورٹ شامل ہے۔ سافٹ ویئر سیریل لائبریری . دی سافٹ ویئر سیریل لائبریری آپ کو اپنے Arduino بورڈ پر کسی بھی ڈیجیٹل پن پر سیریل پورٹ بنانے کی اجازت دیتا ہے۔

اس مضمون میں، ہم SoftwareSerial لائبریری میں گہرائی میں جائیں گے اور دریافت کریں گے کہ یہ کیسے کام کرتا ہے۔







سافٹ ویئر سیریل لائبریری کا تعارف

دی سافٹ ویئر سیریل لائبریری ایک معیاری Arduino لائبریری ہے جو TX اور RX کے علاوہ ڈیجیٹل پنوں پر سیریل کمیونیکیشن کی اجازت دیتی ہے۔ لائبریری ایک سافٹ ویئر سیریل پورٹ بنانے کے قابل بناتی ہے، جسے دوسرے آلات، جیسے کہ دوسرے مائیکرو کنٹرولرز، کمپیوٹرز، یا یہاں تک کہ بلوٹوتھ ماڈیولز کے ساتھ بات چیت کے لیے استعمال کیا جا سکتا ہے۔ سافٹ ویئر سیریل لائبریری Arduino IDE کے ساتھ شامل ہے اور اسے کسی بھی Arduino بورڈ کے ساتھ استعمال کیا جا سکتا ہے۔



نوٹ: عام طور پر، TX اور آر ایکس پن سیریل کمیونیکیشن کے لیے استعمال کیے جاتے ہیں لیکن اس لائبریری کا استعمال کرتے ہوئے ہم Arduino بورڈ کو TX اور RX پنوں کو تبدیل کرنے کے لیے کسی بھی ڈیجیٹل پن کو استعمال کرنے کے قابل بنا سکتے ہیں۔



سافٹ ویئر سیریل لائبریری کے افعال کو سمجھنا

دی سافٹ ویئر سیریل لائبریری اس کے کئی فنکشنز ہیں جو آپ کو سافٹ ویئر سیریل پورٹ کو سیٹ اپ اور کنٹرول کرنے کے قابل بناتے ہیں۔ یہاں کچھ اہم افعال ہیں جن کے بارے میں آپ کو معلوم ہونا چاہئے:





سافٹ ویئر سیریل ()

یہ فنکشن کی ایک نئی مثال بناتا ہے۔ سافٹ ویئر سیریل کلاس اس فنکشن میں دو دلائل ہیں، RX پن اور TX پن۔ مثال کے طور پر، اگر آپ پن 2 اور 3 پر سافٹ ویئر سیریل پورٹ بنانا چاہتے ہیں، تو آپ درج ذیل کوڈ استعمال کریں گے:

سافٹ ویئر سیریل mySerial ( 2 , 3 ) ; // آر ایکس، ٹی ایکس



دی سافٹ ویئر سیریل () a کی ایک نئی مثال بنانے کے لیے طریقہ استعمال کیا جاتا ہے۔ سافٹ ویئر سیریل چیز. یہ متعدد مثالوں کی تخلیق کی اجازت دیتا ہے تاہم ایک وقت میں صرف ایک ہی فعال ہوسکتا ہے۔

نحو

کے لیے نحو سافٹ ویئر سیریل () طریقہ درج ذیل ہے:

سافٹ ویئر سیریل ( rxPin، txPin، inverse_logic )

پیرامیٹرز

کے لئے پیرامیٹرز سافٹ ویئر سیریل () ہیں

rxPin: یہ پیرامیٹر اس پن کی وضاحت کرتا ہے جو سیریل ڈیٹا حاصل کرنے کے لیے استعمال کیا جائے گا۔

txPin: یہ پیرامیٹر اس پن کی وضاحت کرتا ہے جو سیریل ڈیٹا کو منتقل کرنے کے لیے استعمال کیا جائے گا۔

inverse_logic: یہ پیرامیٹر اختیاری ہے، اور یہ آنے والے بٹس کے احساس کو الٹ دیتا ہے۔ پہلے سے طے شدہ قدر غلط ہے، یعنی RX پن پر ایک LOW کو 0-bit اور HIGH کو 1-bit سے تعبیر کیا جاتا ہے۔ اگر درست پر سیٹ کیا جاتا ہے تو، RX پن پر LOW اب 1-bit اور HIGH 0-bit لے گا۔

واپسی

دی سافٹ ویئر سیریل () کچھ واپس نہیں کرتا.

Arduino SoftwareSerial() لائبریری کے افعال

آرڈوینو سافٹ ویئر سیریل () آلات کے درمیان سیریل کمیونیکیشن کے لیے افعال کی ایک فہرست ہے۔ یہاں کچھ اہم افعال پر تبادلہ خیال کیا گیا ہے:

شروع کریں()

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

mySerial.begin ( 9600 ) ;

دستیاب()

دی دستیاب() f unction سافٹ ویئر سیریل پورٹ پر پڑھنے کے لیے دستیاب بائٹس واپس کرتا ہے۔ مثال کے طور پر، یہ چیک کرنے کے لیے کہ آیا پڑھنے کے لیے کوئی ڈیٹا دستیاب ہے، آپ درج ذیل کوڈ کا استعمال کریں گے۔

اگر ( mySerial.available ( ) > 0 ) {
// پڑھیں ان پٹ ڈیٹا
char incomingByte = mySerial.read ( ) ;
}

پڑھیں()

دی پڑھیں() فنکشن سافٹ ویئر سیریل پورٹ سے ڈیٹا کا اگلا بائٹ پڑھتا ہے۔ مثال کے طور پر، ڈیٹا کا بائٹ پڑھنے اور اسے سیریل مانیٹر پر پرنٹ کرنے کے لیے، آپ درج ذیل کوڈ کا استعمال کریں گے:

char incomingByte = mySerial.read ( ) ;
Serial.println ( incomingByte ) ;

لکھیں()

دی لکھیں() فنکشن سافٹ ویئر سیریل پورٹ پر ڈیٹا کا بائٹ لکھتا ہے۔ مثال کے طور پر خط بھیجنا 'ا' سافٹ ویئر سیریل پورٹ پر، آپ درج ذیل کوڈ استعمال کریں گے:

mySerial.write ( 'اے' ) ;

Arduino SoftwareSerial() لائبریری کا مثالی کوڈ

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

جڑیں D2 کے ساتھ ماسٹر Arduino بورڈ کے D3 غلام Arduino بورڈ کے، اسی طرح جڑیں D3 کے ساتھ ماسٹر Arduino کے D2 غلام Arduino کے.

نوٹ: سیریل مواصلات کے لئے، TX پن ہمیشہ سے منسلک ہوتا ہے۔ آر ایکس مخالف Arduino کا پن اور آر ایکس ماسٹر کا پن ہمیشہ سے منسلک ہوتا ہے۔ TX دوسرے Arduino کا پن۔

دونوں Arduino بورڈز کا ہارڈویئر درج ذیل ہے۔

یہاں ایک مثال Arduino کوڈ ہے جو یہ ظاہر کرتی ہے کہ کس طرح استعمال کرنا ہے۔ سافٹ ویئر سیریل لائبریری دو Arduino بورڈز کے درمیان مواصلت قائم کرنے کے لیے:

بھیجنے والا بورڈ کوڈ

نیچے کا کوڈ ارڈوینو بھیجنے والے کے لیے ہے جو وصول کنندہ Arduino بورڈ پر ایک تار لکھے گا۔

#include

// سافٹ ویئر سیریل آبجیکٹ سیٹ کریں۔
سافٹ ویئر سیریل mySerial ( 2 , 3 ) ;

باطل سیٹ اپ ( ) {
// سیریل مواصلات شروع کریں۔
سیریل شروع کریں۔ ( 9600 ) ;
جبکہ ( ! سیریل ) {
; // انتظار کرو کے لیے منسلک کرنے کے لئے سیریل پورٹ
}

// سافٹ ویئر سیریل مواصلات شروع کریں۔
mySerial.begin ( 9600 ) ;
}

باطل لوپ ( ) {
// سافٹ ویئر سیریل کنکشن پر ایک پیغام بھیجیں۔
mySerial.println ( 'ہیلو، رسیور بورڈ!' ) ;
تاخیر ( 1000 ) ;
}

وصول کنندہ بورڈ کوڈ

نیچے کا کوڈ وصول کنندہ بورڈ کے لیے ہے۔ اس کوڈ کو استعمال کرنے سے Arduino دو Arduino بورڈز کے درمیان قائم کردہ سیریل کمیونیکیشن پر دوسرے بورڈ سے سٹرنگ حاصل کرے گا۔

#include

// سافٹ ویئر سیریل آبجیکٹ سیٹ کریں۔
سافٹ ویئر سیریل mySerial ( 2 , 3 ) ;

باطل سیٹ اپ ( ) {
// سیریل مواصلات شروع کریں۔
سیریل شروع کریں۔ ( 9600 ) ;
جبکہ ( ! سیریل ) {
; // انتظار کرو کے لیے منسلک کرنے کے لئے سیریل پورٹ
}

// سافٹ ویئر سیریل مواصلات شروع کریں۔
mySerial.begin ( 9600 ) ;
}

باطل لوپ ( ) {
// چیک کریں۔ اگر ڈیٹا سافٹ ویئر سیریل کنکشن پر دستیاب ہے۔
اگر ( mySerial.available ( ) ) {
// ڈیٹا کو پڑھیں اور اسے سیریل مانیٹر پر پرنٹ کریں۔
Serial.println ( mySerial.readString ( ) ) ;
}
}

اس مثال میں، ہم سب سے پہلے شامل کرتے ہیں سافٹ ویئر سیریل لائبریری کوڈ کے آغاز میں. پھر، ہم ایک بناتے ہیں سافٹ ویئر سیریل اعتراض نامی ' mySerial ” پن 2 اور 3 کے ساتھ بالترتیب RX اور TX پنوں کے طور پر بیان کیا گیا ہے۔

میں سیٹ اپ() فنکشن، ہم ہارڈ ویئر سیریل اور سافٹ ویئر سیریل کمیونیکیشن دونوں کو 9600 کی بوڈ ریٹ کے ساتھ شروع کرتے ہیں۔ لوپ() بھیجنے والے بورڈ کے فنکشن میں، ہم mySerial.println() طریقہ استعمال کرتے ہوئے سافٹ ویئر سیریل کنکشن پر ایک پیغام بھیجتے ہیں، اور اگلا پیغام بھیجنے سے پہلے ایک سیکنڈ کا انتظار کرتے ہیں۔

رسیور بورڈ کے لوپ() فنکشن میں، کوڈ سافٹ ویئر کے سیریل کنکشن پر سیریل ڈیٹا کی دستیابی کی جانچ کرے گا۔ mySerial.available() طریقہ اگر ڈیٹا دستیاب ہے تو، ہم mySerial.readString() طریقہ استعمال کرکے ڈیٹا کو پڑھتے ہیں اور Serial.println() طریقہ استعمال کرکے اسے سیریل مانیٹر پر پرنٹ کرتے ہیں۔

SoftwareSerial() لائبریری کی حدود

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

  • بیک وقت ڈیٹا کی ترسیل اور وصول کرنے میں ناکامی۔
  • ایک سے زیادہ سافٹ ویئر سیریل پورٹس استعمال کرتے وقت، صرف ایک بندرگاہ ایک ساتھ ڈیٹا وصول کر سکتی ہے۔
  • اس لائبریری کا استعمال کرتے ہوئے تخلیق کردہ سافٹ ویئر پر مبنی سیریل پورٹس کم بوڈ ریٹ پر کام کرتی ہیں اور ہارڈ ویئر پر مبنی سیریل پورٹس کی طرح قابل اعتماد نہیں ہیں۔
  • میگا اور میگا 2560 بورڈز پر کچھ پن RX کے لیے تبدیلی کی مداخلت کو سپورٹ نہیں کرتے ہیں، اس بات کو محدود کرتے ہوئے کہ کن پنوں کو استعمال کیا جا سکتا ہے۔
  • اسی طرح، لیونارڈو اور مائیکرو بورڈز پر، تبدیلی کی رکاوٹوں کی کمی کی وجہ سے صرف مخصوص پنوں کو RX کے لیے استعمال کیا جا سکتا ہے۔
  • Arduino یا Genuino 101 بورڈز پر RX کی زیادہ سے زیادہ رفتار 57600 bps ہے۔
  • RX Arduino یا Genuino 101 بورڈز کے ڈیجیٹل پن 13 پر کام نہیں کرتا ہے۔
بورڈ RX پن
میگا اینڈ میگا 2560 10، 11، 12، 13، 14، 15، 50، 51، 52، 53، A8 (62)، A9 (63)، A10 (64)، A11 (65)، A12 (66)، A13 (67)، A14 (68)، A15 (69)۔

لیونارڈو اور مائک 8، 9، 10، 11، 14 (MISO)، 15 (SCK)، 16 (MOSI)۔

نتیجہ

دی سافٹ ویئر سیریل لائبریری in Arduino سیریل کمیونیکیشن پروٹوکول کا استعمال کرتے ہوئے آلات کے ساتھ بات چیت کے لیے ایک مفید ٹول ہے۔ یہ ڈویلپرز کو سافٹ ویئر پر مبنی سیریل پورٹس بنانے کی اجازت دیتا ہے جنہیں ہارڈ ویئر پر مبنی سیریل پورٹس کے ساتھ مل کر استعمال کیا جا سکتا ہے۔ اس لائبریری کی کچھ حدود ہیں کیونکہ یہ بیک وقت ڈیٹا کی منتقلی کی اجازت نہیں دیتی ہے۔ مزید تفصیلات کے لیے اوپر کا مضمون پڑھیں۔