AN0007 Arduino سے پلاٹینم COMM
“
پروڈکٹ کی معلومات
وضاحتیں
- پروڈکٹ کا نام: ARDUINO سے PLATINUM COMMS ہیلپ دستاویز
- ڈویلپر: ڈائنمنٹ لمیٹڈ
- پتہ: ہرمیtagای لین انڈسٹریل اسٹیٹ، کنگز مل وے،
مینسفیلڈ، نوٹنگھم شائر، NG18 5ER، UK - رابطہ: ٹیلی فون: 44 (0)1623 663636، ای میل: sales@dynament.com،
Webسائٹ: www.dynament.com - شمارہ: 1.2، تاریخ: 09/04/2025
مصنوعات کے استعمال کی ہدایات
سینسر کو مربوط کرنا
یہ ڈیٹا شیٹ Arduino Mega کو بطور سابق استعمال کرتی ہے۔ample کے طور پر جڑیں۔
مندرجہ ذیل
- 5v -> 5v Arduino پن
- 0v -> Arduino GND
- Tx -> Arduino RX1
- Rx -> ممکنہ تقسیم کرنے والے کے آؤٹ پٹ پر جاتا ہے۔ ان پٹ
Arduino Tx پر جاتا ہے۔
والیومtagای مطابقت
Arduino 5v لاجک ہائی استعمال کرتا ہے جبکہ پلاٹینم سینسر استعمال کرتا ہے۔
3.3v والیوم استعمال کریں۔tage divider R1 اور R2 کے لیے تجویز کردہ قدروں کے ساتھ
سینسر کو پہنچنے والے نقصان کو روکنے کے لیے 4K7۔
Arduino IDE سیٹ اپ
- سے Arduino IDE سافٹ ویئر کا تازہ ترین ورژن ڈاؤن لوڈ کریں۔
Arduino webسائٹ - ٹولز میں Arduino بورڈ، پروسیسر اور پورٹ کو منتخب کریں۔
ڈراپ ڈاؤن مینو.
کوڈ اپ لوڈ کریں۔
- فراہم کردہ سابق کو کاپی کریں۔ampArduino IDE میں le کوڈ۔
- تیر پر کلک کرکے کوڈ کو Arduino پر اپ لوڈ کریں۔
- سیریل مانیٹر کو کھولیں۔ view ڈیٹا ٹرانسمیشن.
اکثر پوچھے گئے سوالات
سوال: اگر میرے پاس صرف ایک کمی کے ساتھ Arduino Uno ہو تو مجھے کیا کرنا چاہیے؟
بندرگاہ؟
A: پلاٹینم سینسر کو اس بندرگاہ سے جوڑیں۔ کا استعمال کرتے وقت
سیریل مانیٹر، یہ منتقل شدہ ہیکس بھی دکھائے گا۔
''
درخواست نوٹ AN0007
ARDUINO سے PLATINUM COMMS مدد دستاویز
ڈائنمنٹ لمیٹڈ
ہرمیtagای لین انڈسٹریل اسٹیٹ کنگز مل وے مینسفیلڈ نوٹنگھم شائر NG18 5ER UK۔ ٹیلی فون: 44 (0)1623 663636
ای میل: sales@dynament.com www.dynament.com
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 1 از 14
مشمولات
Dynament Limited …………………………………………………………………………………………….1 سینسر کو جوڑ رہا ہے ……………………………………………………………………………………………………..3 Arduino IDE ……………………………………………………………………………………………………………………………………………… 5 کوڈ کی وضاحت………………………………………………………………………………………………. ………………………………………………………………………………………………….9
اعلی درجے کی تبدیلی کے نوٹس……………………………………………………………………………….14
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 2 از 14
سینسر کو جوڑنا یہ ڈیٹا شیٹ Arduino Mega کو بطور سابق استعمال کرتی ہے۔ample Ardunio Mega ایک سے زیادہ comm پورٹ فراہم کرتا ہے، اس لیے comm پورٹ 1 کا استعمال سینسر کے ساتھ بات چیت کے لیے کیا جاتا ہے اور comm پورٹ 0 کو PC پر پرنٹ کرنے کے لیے استعمال کیا جاتا ہے۔
Arduino 5v لاجک ہائی استعمال کرتا ہے جبکہ پلاٹینم سینسر 3.3v استعمال کرتا ہے، لہذا سینسر کو پہنچنے والے نقصان کو روکنے کے لیےtagای ڈیوائیڈر استعمال کرنا ضروری ہے۔ R1 اور R2 کے لیے تجویز کردہ قدریں 4K7 ہیں۔
شکل 1: والیوم کو کم کرتا ہے۔tagای قابل استعمال سطح پر
Arduino وصول کرنے والی سینسر ٹرانسمٹ لائن کو ڈیوائیڈر کی ضرورت نہیں ہے کیونکہ 3.3v Arduino کے لیے قابل قبول ان پٹ ہے۔
سینسر کو پاور کرنے کے لیے اسے 5v اور 0v سے منسلک ہونا چاہیے۔ ایسا کرنے کے لیے آپ Arduino پر پن استعمال کر سکتے ہیں۔
اس کے مکمل ہونے کے بعد، سینسر کو اب درج ذیل پنوں سے منسلک ہونا چاہیے:
5v -> 5v Arduino پن
0v -> Arduino GND
Tx -> Arduino RX1
Rx -> ممکنہ تقسیم کرنے والے کے آؤٹ پٹ پر جاتا ہے۔ ان پٹ Arduino Tx پر جاتا ہے۔
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 3 از 14
اس کے مکمل ہونے کے بعد آپ کا پلاٹینم سینسر منسلک ہونا چاہیے جیسا کہ دکھایا گیا ہے:
شکل 2: سینسر کو سولڈر اڈاپٹر کے ساتھ الٹا دکھایا گیا ہے۔
اگر آپ صرف ایک کام پورٹ (جیسے Arduino Uno) کے ساتھ Arduino استعمال کر رہے ہیں تو آپ کو اسے اس سے جوڑنا پڑے گا، تاہم جب آپ سیریل مانیٹر استعمال کریں گے (بعد میں دکھایا گیا ہے) تو یہ منتقل ہونے والا ہیکس بھی دکھائے گا۔
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 4 از 14
Arduino IDE Arduino پر جائیں۔ webسائٹ اور Arduino IDE سافٹ ویئر کا تازہ ترین ورژن ڈاؤن لوڈ کریں۔ انسٹال ہونے کے بعد آپ کو درج ذیل اسکرین نظر آنی چاہیے:
شکل 3: Arduino ہوم اسکرین
ٹولز ڈراپ ڈاؤن مینو میں Arduino بورڈ، پروسیسر اور پورٹ کو منتخب کریں جسے آپ استعمال کر رہے ہیں:
شکل 4: بورڈ، پروسیسر اور پورٹ کے اختیارات کو منتخب کریں۔
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 5 از 14
اس سابق میں کاپی کریں۔ample کوڈ: void send_read_live_data_simple(); باطل موصول_پڑھیں_لائیو_ڈیٹا_سادہ ()؛
باطل سیٹ اپ () { Serial.begin(38400)؛ Serial1.begin(38400)؛
}
void loop() { send_read_live_data_simple()؛ حاصل_پڑھیں_لائیو_ڈیٹا_سادہ ()؛ تاخیر (5000)؛
}
void send_read_live_data_simple(){ // 0x10, 0x13, 0x06, 0x10, 0x1F, 0x00, 0x58 Serial1.write(0x10); Serial1.write(0x13); Serial1.write(0x06); Serial1.write(0x10); Serial1.write(0x1F); Serial1.write(0x00); Serial1.write(0x58);
}
void receive_read_live_data_simple(){ جبکہ (Serial1.available()) { Serial.print(Serial1.read(), HEX); سیریل پرنٹ ("|")؛ } Serial.println();
}
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 6 از 14
شکل 5: کوڈ اپ لوڈ کرنے کے لیے تیار ہے۔
کوڈ کو Arduino پر اپ لوڈ کرنے کے لیے تیر پر کلک کریں۔ آرڈوینو کے پروگرام ہونے کے بعد سیریل مانیٹر کھولیں۔
اے این 0007
شکل 6: سیریل مانیٹر کھولیں۔
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 7 از 14
شکل 7: سیریل مانٹر اس پیکٹ کو دکھاتا ہے جو موصول ہوا ہے۔
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 8 از 14
کوڈ کی وضاحت Arduino IDE Arduino کو پروگرام کرنے کے لیے C++ کا استعمال کرتا ہے۔
یہ سطر آگے کا اعلان ہے۔ اس کا استعمال مائیکرو کنٹرولر کو یہ بتانے کے لیے کیا جاتا ہے کہ پروگرام میں مزید نیچے 'send_read_live_data_simple' فنکشن اور 'receive_read_live_data_simple' فنکشن کو بلایا جائے گا۔
اگلا سیٹ اپ فنکشن ہے۔ یہ کوڈ شروع ہونے پر صرف ایک بار چلتا ہے۔ یہ Serial0 اور Serial1 بندرگاہوں کو شروع کرتا ہے۔ سیریل 0 وہ ہے جو سیریل مانیٹر اسکرین میں دکھایا گیا ہے۔ سیریل 1 سینسر کے ساتھ بات چیت کرنے کی بندرگاہ ہے۔
یہ مرکزی لوپ ہے، اس کوڈ کو بار بار لوپ کیا جاتا ہے۔ آپ فنکشن کے ناموں کو پڑھ کر دیکھ سکتے ہیں کہ یہ لائیو ڈیٹا ڈھانچہ کے آسان ورژن کو پڑھنے کی درخواست بھیجتا ہے۔ پھر یہ جواب پڑھنے کے لیے ریسیو پورٹ کو پڑھتا ہے۔ اس کے بعد مائیکرو کنٹرولر 5000mS انتظار کرتا ہے۔
یہ فنکشن سیریل پورٹ 1 میں لائیو ڈیٹا سادہ ڈھانچہ حاصل کرنے کی درخواست لکھتا ہے۔ جیسا کہ پہلے بتایا گیا ہے کہ اگر آپ کے پاس صرف ایک سیریل پورٹ ہے تو آپ کو سیریل 1 کو سیریل میں تبدیل کرنا چاہیے۔ کمانڈز کی مکمل فہرست دیکھنے کے لیے، پریمیئر سینسر کمیونیکیشن پروٹوکول دستاویز سے رجوع کریں۔ یہاں دستاویز کا وہ حصہ ہے جو آپ کو بتاتا ہے کہ اس کمانڈ کے لیے کیا لکھنا ہے:
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 9 از 14
یہ فنکشن ریڈ فنکشن کو لوپ کرتا ہے جب کہ پلاٹینم سینسر سے ڈیٹا موصول ہونا باقی ہے۔ Serial1.read() Serial1 سے ڈیٹا پڑھتا ہے جو سینسر سے منسلک ہوتا ہے اور اسے Serial0 پر پرنٹ کرتا ہے تاکہ اسے سیریل مانیٹر پر دیکھا جا سکے۔ کردار '|' اس کے بعد سیریل مانیٹر پر اسے واضح کرنے کے لیے موصول ہونے والے ہر بائٹ کو توڑنے کے لیے پرنٹ کیا جاتا ہے۔
اس کے مکمل ہونے کے بعد یہ سیریل مانیٹر پر ایک نئی لائن لکھتا ہے۔
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 10 از 14
پیکٹ بریک ڈاؤن شکل 8 اور 9 موصول اور ترسیل لائنوں سے منسلک سیریل ڈیکوڈر کا آؤٹ پٹ دکھاتے ہیں۔
شکل 8: باہر جانے والا پیکٹ
شکل 9: آنے والا پیکٹ
شکل 10 اور 11 بالترتیب آؤٹ گوئنگ اور انکمنگ ہیکس کو ایک کالم کے ساتھ دکھاتے ہیں جو ظاہر کرتا ہے کہ یہ کون سی کمانڈ ہے۔
شکل 10: باہر جانے والے پیکٹ کی تفصیل
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 11 از 14
شکل 11: آنے والے پیکٹ کی تفصیل
براہ کرم نوٹ کریں کہ گیس ریڈنگ اعشاریہ ہے نہ کہ عدد۔ یہ اعشاریہ IEEE-754 فارمیٹ میں ہے، آپ اسے تبدیل کرنے کے لیے اس طرح کا آن لائن کنورٹر استعمال کر سکتے ہیں۔ اس معاملے میں گیس کی قیمت -250 ظاہر کرتی ہے (جیسا کہ اس وقت یہ ایرر موڈ میں تھا)۔
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 12 از 14
Serial.read() کا استعمال
پچھلا کوڈ صرف سیریل مانیٹر کو موصول ہونے والے ڈیٹا کو پرنٹ کرتا تھا، اگر آپ ڈیٹا کو متغیر میں محفوظ کرنا چاہتے ہیں تو آپ کو کچھ مزید پروسیسنگ کرنے کی ضرورت ہوگی۔ آپ جو پیکٹ وصول کرتے ہیں وہ بائٹس میں تقسیم ہوتا ہے، اس کی وجہ سے آپ کو اس ڈیٹا میں سے کچھ کو متغیرات میں جوڑنے کی ضرورت ہوگی۔ Serial1.Read() ایک int واپس کرتا ہے (جو Arduino کے لیے 16 بٹس ہے)، تاہم، صرف پہلے 8 بٹس استعمال کیے جاتے ہیں۔ اس کی وجہ سے ہم اسے ایک چھوٹی ڈیٹا ٹائپ میں کاپی کر سکتے ہیں جو کہ صرف 8 بٹس ہے، اس صورت میں میں char استعمال کروں گا۔
ان پیکٹوں کے لیے جو صرف ایک بائٹ لمبے ہیں، یہ ٹھیک کام کرتا ہے:
2 بائٹس یا 4 بائٹس لمبے پیکٹوں کے لئے آپ کو ڈیٹا کو جوڑنا ہوگا۔
آپ اسے بہت سے مختلف طریقوں سے کر سکتے ہیں، یہاں میں جو کرنے جا رہا ہوں وہ ہے ڈیٹا کو شفٹ کرنا اور پھر OR اسے۔
اس کوڈ کا استعمال کرتے ہوئے، اگر readByte1 0x34 ہے اور readByte2 0x12 ہے۔
(int)readByte2
// یہ 0x12 کو 0x0012 میں تبدیل کرتا ہے۔
(int)readByte2 << 8
// یہ بٹس کو بائٹ کے ذریعے 0x1200 بناتا ہے۔
(int)readByte2 << 8 | readByte1 // یہ پھر OR'ed ہو جاتا ہے، 0x34 کے ساتھ 0x1234 بناتا ہے۔
ایسا کرنے کا دوسرا طریقہ یہ ہوگا کہ قدروں کو ایک صف میں ڈالیں اور پھر سرنی کو اپنی پسند کی قسم میں تبدیل کریں:
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 13 از 14
حروف ایک بائٹ لمبے ہیں، جبکہ فلوٹ 4 بائٹس لمبا ہے۔ اس کی وجہ سے اگر ہم اس میں اپنی اقدار کے ساتھ 4 حروف کی ایک صف بناتے ہیں اور قسم کو فلوٹ میں تبدیل کرتے ہیں۔
اس صورت میں readArray چار صف کی طرف اشارہ کرتا ہے۔ (float*)readArray یہ حصہ اسے ایک فلوٹ کے پوائنٹر پر ڈالتا ہے اور پھر فلوٹ کی قدر حاصل کرنے کے لیے سامنے میں ایک * شامل کیا جاتا ہے۔
اعلی درجے کی تبدیلی کے نوٹس
1. Serial.read() char کی بجائے int لوٹاتا ہے کیونکہ غلطیاں منفی قدریں لوٹائیں گی۔ آپ کے پروگرام کو اس کی جانچ کرنی چاہئے۔
2. uint8_t اور uint16_t کو بالترتیب char اور int کی جگہ استعمال کیا جانا چاہیے، کیونکہ ان اقسام کا معیاری سائز نہیں ہے (میرے پی سی پر int 32 بٹس ہے جبکہ Arduino پر یہ 16 بٹس ہے)۔
3. comms پروٹوکول میں بائٹ اسٹفڈ کریکٹر ہوتے ہیں (جسے کنٹرول کریکٹر بھی کہا جاتا ہے)، اس کی وضاحت tds0045 پریمیئر سینسر کمیونیکیشن پروٹوکول دستاویز میں کی گئی ہے۔ اس کی وجہ سے ریڈ لائیو ڈیٹا سادہ پیکٹ کبھی کبھار توقع سے بڑا ہوگا۔
اے این 0007
شمارہ 1.2
09/04/2025
نوٹ 805 کو تبدیل کریں۔
صفحہ 14 از 14
دستاویزات / وسائل
![]() |
DYNAMENT AN0007 Arduino سے پلاٹینم COMM [پی ڈی ایف] یوزر گائیڈ AN0007 Arduino سے پلاٹینم COMM، AN0007، Arduino سے پلاٹینم COMM، پلاٹینم COMM سے، پلاٹینم COMM |