DYNAMENT AN0007 Arduino থেকে Platinum COMM ব্যবহারকারী নির্দেশিকা

AN0007 Arduino থেকে Platinum COMM

পণ্য তথ্য

স্পেসিফিকেশন

  • পণ্যের নাম: ARDUINO থেকে PLATINUM COMMS সাহায্য ডকুমেন্ট
  • প্রস্তুতকারক: ডায়নামেন্ট লিমিটেড
  • ঠিকানা: হার্মিtagই লেন ইন্ডাস্ট্রিয়াল এস্টেট, কিংস মিল ওয়ে,
    ম্যানসফিল্ড, নটিংহ্যামশায়ার, NG18 5ER, যুক্তরাজ্য
  • যোগাযোগ: টেলিফোন: ৪৪ (০)১৬২৩ ৬৬৩৬৩৬, ইমেল: sales@dynament.com,
    Webসাইট: www.dynament.com
  • ইস্যু: ১.২, তারিখ: ০৯/০৪/২০২৫

পণ্য ব্যবহারের নির্দেশাবলী

সেন্সরটি সংযুক্ত করা হচ্ছে

এই ডেটা শিটটি Arduino Mega কে একটি প্রাক্তন হিসেবে ব্যবহার করেample. এইভাবে সংযোগ করুন
অনুসরণ করে:

  • 5v -> 5v Arduino পিন
  • 0v -> Arduino GND
  • Tx -> Arduino RX1
  • Rx -> সম্ভাব্য বিভাজকের আউটপুটে যায়। ইনপুট
    Arduino Tx-এ যায়

ভলিউমtage সামঞ্জস্য

Arduino 5v লজিক হাই ব্যবহার করে যখন প্ল্যাটিনাম সেন্সর ব্যবহার করে
৩.৩ ভোল্ট। একটি ভলিউম ব্যবহার করুনtagR1 এবং R2 এর জন্য প্রস্তাবিত মান সহ e বিভাজক
সেন্সরের ক্ষতি রোধ করতে 4K7।

আরডুইনো আইডিই সেটআপ

  1. Arduino IDE সফটওয়্যারের সর্বশেষ সংস্করণটি ডাউনলোড করুন এখান থেকে
    আরডুইনো webসাইট
  2. টুলগুলিতে Arduino বোর্ড, প্রসেসর এবং পোর্ট নির্বাচন করুন
    ড্রপ-ডাউন মেনু।

কোড আপলোড

  1. প্রদত্ত প্রাক্তন কপি করুনampArduino IDE-তে কোড।
  2. তীরচিহ্নে ক্লিক করে Arduino-তে কোডটি আপলোড করুন।
  3. সিরিয়াল মনিটরটি খুলুন যাতে view ডেটা ট্রান্সমিশন।

FAQ

প্রশ্ন: যদি আমার কাছে শুধুমাত্র একটি কম্যান্ড সহ একটি Arduino Uno থাকে তবে আমার কী করা উচিত?
বন্দর?

A: প্ল্যাটিনাম সেন্সরটিকে সেই পোর্টের সাথে সংযুক্ত করুন। ব্যবহার করার সময়
সিরিয়াল মনিটর, এটি ট্রান্সমিটেড হেক্সও দেখাবে।

"`

অ্যাপ্লিকেশন নোট AN0007
আরডুইনো থেকে প্ল্যাটিনাম কমস সহায়তা ডকুমেন্ট

ডায়নামেন্ট লিমিটেড
হারমিtagই লেন ইন্ডাস্ট্রিয়াল এস্টেট কিংস মিল ওয়ে ম্যানসফিল্ড নটিংহ্যামশায়ার NG18 5ER ইউকে। টেলিফোন: 44 (0)1623 663636
ইমেইল: sales@dynament.com www.dynament.com

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

1-এর মধ্যে পৃষ্ঠা 14

বিষয়বস্তু
ডাইনামেন্ট লিমিটেড ………………………………………………………………………………………………….১ সেন্সর সংযোগ করা …………………………………………………………………………………………………..৩ Arduino IDE ……………………………………………………………………………………………………………৫ কোড ব্যাখ্যা …………………………………………………………………………………………………..৯ প্যাকেট ভাঙ্গন ………………………………………………………………………………………………….১১ Serial.read() ব্যবহার করে …………………………………………………………………………………………………………….১৩
উন্নত রূপান্তর নোট………………………………………………………………………….১৪

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

2-এর মধ্যে পৃষ্ঠা 14

সেন্সর সংযোগ করা এই ডেটা শিটটি Arduino Mega কে একটি প্রাক্তন হিসাবে ব্যবহার করেample. Ardunio Mega একাধিক কমিউনিকেশন পোর্ট প্রদান করে, তাই কমিউনিকেশন পোর্ট 1 সেন্সরের সাথে যোগাযোগের জন্য এবং কমিউনিকেশন পোর্ট 0 পিসিতে প্রিন্ট করার জন্য ব্যবহৃত হয়।
Arduino 5v লজিক হাই ব্যবহার করে যেখানে প্ল্যাটিনাম সেন্সর 3.3v ব্যবহার করে, তাই সেন্সরের ক্ষতি রোধ করার জন্য একটি ভলিউমtage ডিভাইডার ব্যবহার করতে হবে। R1 এবং R2 এর জন্য প্রস্তাবিত মান হল 4K7।

চিত্র ১: ভলিউম কমিয়ে দেয়tagব্যবহারযোগ্য স্তরে e
Arduino রিসিভারে যাওয়া সেন্সর ট্রান্সমিট লাইনের জন্য ডিভাইডারের প্রয়োজন হয় না কারণ 3.3v Arduino-এর জন্য একটি গ্রহণযোগ্য ইনপুট।
সেন্সরটি পাওয়ার জন্য এটি 5v এবং 0v এর সাথে সংযুক্ত থাকতে হবে। এটি করার জন্য আপনি Arduino এর পিনগুলি ব্যবহার করতে পারেন।
এটি সম্পন্ন হওয়ার পরে, সেন্সরে এখন নিম্নলিখিত পিনগুলি সংযুক্ত থাকা উচিত:
5v -> 5v Arduino পিন
0v -> Arduino GND
Tx -> Arduino RX1
Rx -> পটেনশিয়াল ডিভাইডারের আউটপুটে যায়। ইনপুট Arduino Tx-এ যায়

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

3-এর মধ্যে পৃষ্ঠা 14

এটি সম্পন্ন হওয়ার পরে আপনার প্ল্যাটিনাম সেন্সরটি প্রদর্শিত হিসাবে সংযুক্ত হওয়া উচিত:
চিত্র ২: সেন্সরটি একটি সোল্ডার অ্যাডাপ্টারের সাহায্যে উল্টো করে দেখানো হয়েছে
যদি আপনি একটি মাত্র কমিউনিটি পোর্ট (যেমন Arduino Uno) সহ Arduino ব্যবহার করেন, তাহলে আপনাকে এটিকে তার সাথে সংযুক্ত করতে হবে, তবে যখন আপনি সিরিয়াল মনিটর ব্যবহার করবেন (পরে দেখানো হবে) তখন এটি ট্রান্সমিট করা হেক্সটিও দেখাবে।

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

4-এর মধ্যে পৃষ্ঠা 14

Arduino IDE Arduino তে যান webসাইটে যান এবং Arduino IDE সফটওয়্যারের নতুন সংস্করণটি ডাউনলোড করুন। ইনস্টল করার পরে আপনি নিম্নলিখিত স্ক্রিনটি দেখতে পাবেন:
চিত্র ৩: আরডুইনো হোম স্ক্রিন
টুলস ড্রপ ডাউন মেনুতে আপনার ব্যবহৃত Arduino বোর্ড, প্রসেসর এবং পোর্ট নির্বাচন করুন:

চিত্র ৪: বোর্ড, প্রসেসর এবং পোর্ট বিকল্প নির্বাচন করুন

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

5-এর মধ্যে পৃষ্ঠা 14

এই প্রাক্তনে কপি করুনampকোড: অকার্যকর সেন্ড_রিড_লাইভ_ডেটা_সিম্পল(); অকার্যকর রিসিভ_রিড_লাইভ_ডেটা_সিম্পল();
অকার্যকর সেটআপ() { সিরিয়াল.বিগিন(৩৮৪০০); সিরিয়াল১.বিগিন(৩৮৪০০);
}
অকার্যকর লুপ() { পাঠান_পড়া_লাইভ_ডেটা_সিম্পল(); রিসিভ_পড়া_লাইভ_ডেটা_সিম্পল(); বিলম্ব(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);
}
অকার্যকর রিসিভ_রিড_লাইভ_ডেটা_সিম্পল(){ while (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print(“|”); } Serial.println();
}

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

6-এর মধ্যে পৃষ্ঠা 14

চিত্র ৫: আপলোডের জন্য কোড প্রস্তুত
Arduino-তে কোড আপলোড করতে তীর চিহ্নে ক্লিক করুন। Arduino প্রোগ্রাম করার পর সিরিয়াল মনিটরটি খুলুন।

AN0007

চিত্র ৬: সিরিয়াল মনিটর খুলুন

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

7-এর মধ্যে পৃষ্ঠা 14

চিত্র ৭: সিরিয়াল মন্টরটি প্রাপ্ত প্যাকেটটি দেখায়

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

8-এর মধ্যে পৃষ্ঠা 14

কোড ব্যাখ্যা Arduino IDE Arduino প্রোগ্রাম করার জন্য C++ ব্যবহার করে।
এই লাইনটি একটি ফরোয়ার্ড ডিক্লেয়ারেশন। এটি মাইক্রোকন্ট্রোলারকে জানাতে ব্যবহৃত হয় যে প্রোগ্রামের আরও নীচে `send_read_live_data_simple' ফাংশন এবং `receive_read_live_data_simple' ফাংশনটি ডাকা হবে।
এরপরে সেটআপ ফাংশন। এই কোডটি স্টার্টআপে শুধুমাত্র একবার চালানো হয়। এটি Serial0 এবং Serial1 পোর্টগুলি চালু করে। Serial0 হল সিরিয়াল মনিটরের স্ক্রিনে দেখানো পোর্ট। Serial1 হল সেন্সরের সাথে যোগাযোগের জন্য পোর্ট।
এটি হল প্রধান লুপ, এই কোডটি বারবার লুপ করা হয়। ফাংশনের নামগুলি পড়ে আপনি দেখতে পাবেন যে এটি লাইভ ডেটা স্ট্রাক্টের একটি সরলীকৃত সংস্করণ পড়ার জন্য একটি অনুরোধ পাঠায়। তারপর এটি উত্তরটি পড়ার জন্য রিসিভ পোর্টটি পড়ে। এর পরে মাইক্রোকন্ট্রোলার 5000mS অপেক্ষা করে।
এই ফাংশনটি সিরিয়াল পোর্ট ১-এ লাইভ ডেটা সিম্পল স্ট্রাক্ট পাওয়ার অনুরোধ লিখে। যেমনটি আগে উল্লেখ করা হয়েছে যদি আপনার কেবল একটি সিরিয়াল পোর্ট থাকে তবে আপনাকে Serial1 কে Serial এ পরিবর্তন করতে হবে। কমান্ডের সম্পূর্ণ তালিকা দেখতে, প্রিমিয়ার সেন্সর কমিউনিকেশনস প্রোটোকল ডকুমেন্টটি দেখুন। ডকুমেন্টের সেই অংশটি এখানে দেওয়া হল যা আপনাকে এই কমান্ডের জন্য কী লিখতে হবে তা বলে:

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

9-এর মধ্যে পৃষ্ঠা 14

এই ফাংশনটি প্ল্যাটিনাম সেন্সর থেকে তথ্য গ্রহণের সময় রিড ফাংশনটিকে লুপ করে। Serial1.read() সেন্সরের সাথে সংযুক্ত Serial1 থেকে তথ্য পড়ে এবং Serial0 এ প্রিন্ট করে যাতে এটি সিরিয়াল মনিটরে দেখা যায়। এরপর `|' অক্ষরটি প্রিন্ট করা হয় যাতে প্রতিটি প্রাপ্ত বাইট ভেঙে সিরিয়াল মনিটরে স্পষ্ট হয়।
এটি সম্পন্ন হওয়ার পর এটি সিরিয়াল মনিটরে একটি নতুন লাইন লেখে।

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

10-এর মধ্যে পৃষ্ঠা 14

প্যাকেট ব্রেকডাউন চিত্র ৮ এবং ৯-এ রিসিভ এবং ট্রান্সমিট লাইনের সাথে সংযুক্ত একটি সিরিয়াল ডিকোডারের আউটপুট দেখানো হয়েছে।
চিত্র ৮: বহির্গামী প্যাকেট
চিত্র ৯: আগত প্যাকেট
চিত্র ১০ এবং ১১ যথাক্রমে বহির্গামী এবং আগত হেক্স দেখায় যেখানে একটি কলাম দেখানো হয়েছে যে এটি কোন কমান্ড।

চিত্র ১০: বহির্গামী প্যাকেটের বর্ণনা

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

11-এর মধ্যে পৃষ্ঠা 14

চিত্র ১১: আগত প্যাকেটের বর্ণনা
দয়া করে মনে রাখবেন গ্যাস রিডিং একটি দশমিক, পূর্ণসংখ্যা নয়। এই দশমিকটি IEEE-754 ফর্ম্যাটে, আপনি এটি রূপান্তর করতে এই জাতীয় একটি অনলাইন কনভার্টার ব্যবহার করতে পারেন। এই ক্ষেত্রে গ্যাসের মান -250 দেখায় (যেমনটি তখন ত্রুটি মোডে ছিল)।

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

12-এর মধ্যে পৃষ্ঠা 14

Serial.read() ব্যবহার করে
পূর্ববর্তী কোডটি কেবল সিরিয়াল মনিটরে প্রাপ্ত ডেটা প্রিন্ট করত, যদি আপনি ভেরিয়েবলে ডেটা সংরক্ষণ করতে চান তবে আপনাকে আরও কিছু প্রক্রিয়াকরণ করতে হবে। আপনি যে প্যাকেটটি পাবেন তা বাইটে বিভক্ত, এর ফলে আপনাকে এই ডেটার কিছু ভেরিয়েবলে সংযুক্ত করতে হবে। Serial1.Read() একটি int প্রদান করে (যা Arduino-এর জন্য 16 বিট), তবে, শুধুমাত্র প্রথম 8 বিট ব্যবহার করা হয়। এই কারণে আমরা এটিকে একটি ছোট ডেটা টাইপে অনুলিপি করতে পারি যা মাত্র 8 বিট, এই ক্ষেত্রে আমি char ব্যবহার করব।
যে প্যাকেটগুলি মাত্র এক বাইট লম্বা, তাদের জন্য এটি ঠিকঠাক কাজ করে:
২ বাইট বা ৪ বাইট লম্বা প্যাকেটের জন্য আপনাকে ডেটা একত্রিত করতে হবে।

আপনি এটি অনেক ভিন্ন উপায়ে করতে পারেন, এখানে আমি যা করতে যাচ্ছি তা হল ডেটা বাম দিকে স্থানান্তর করা এবং তারপর OR করা।

এই কোডটি ব্যবহার করে, যদি readByte1 0x34 হয় এবং readByte2 0x12 হয়।

(int)readByte2

// এটি 0x12 কে 0x0012 তে রূপান্তরিত করে।

(int)readByte2 << 8

// এটি বিটগুলিকে একটি বাইট দ্বারা স্থানান্তর করে 0x1200 করে তোলে।

(int)readByte2 << 8 | readByte1 // এটি তারপর OR'ed হবে, 0x34 দিয়ে 0x1234 হবে।

এটি করার আরেকটি উপায় হল মানগুলিকে একটি অ্যারেতে রাখা এবং তারপর অ্যারেটিকে আপনার পছন্দসই ধরণের মধ্যে রূপান্তর করা:

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

13-এর মধ্যে পৃষ্ঠা 14

অক্ষরগুলি একটি বাইট লম্বা, যেখানে float 4 বাইট লম্বা। এই কারণে যদি আমরা আমাদের মান সহ 4 টি অক্ষরের একটি অ্যারে তৈরি করি এবং টাইপটি float এ পরিবর্তন করি।
এই ক্ষেত্রে readArray হল একটি char অ্যারের পয়েন্টার। (float*)readArray এই অংশটি এটিকে একটি float-এর পয়েন্টারে কাস্ট করে এবং তারপর float-এর মান পেতে সামনে একটি * যোগ করা হয়।
উন্নত রূপান্তর নোট
১. Serial.read() char এর পরিবর্তে int রিটার্ন করে কারণ এরর নেগেটিভ ভ্যালু রিটার্ন করবে। আপনার প্রোগ্রামের এটি পরীক্ষা করা উচিত।
২. char এবং int এর পরিবর্তে যথাক্রমে uint2_t এবং uint8_t ব্যবহার করা উচিত, কারণ এই ধরণেরগুলির কোনও স্ট্যান্ডার্ড আকার নেই (আমার পিসিতে int 16 বিট যেখানে Arduino তে এটি 32 বিট)।
৩. কমস প্রোটোকলে বাইট স্টাফড ক্যারেক্টার থাকে (যা কন্ট্রোল ক্যারেক্টার নামেও পরিচিত), এটি tds3 প্রিমিয়ার সেন্সর কমিউনিকেশনস প্রোটোকল ডকুমেন্টে আরও বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে। এই কারণে রিড লাইভ ডেটা সিম্পল প্যাকেট মাঝে মাঝে প্রত্যাশার চেয়ে বড় হবে।

AN0007

ইস্যু 1.2

09/04/2025

নোট 805 পরিবর্তন করুন

14-এর মধ্যে পৃষ্ঠা 14

দলিল/সম্পদ

DYNAMENT AN0007 Arduino থেকে Platinum COMM [পিডিএফ] ব্যবহারকারীর নির্দেশিকা
AN0007 Arduino থেকে Platinum COMM, AN0007, Arduino থেকে Platinum COMM, থেকে Platinum COMM, Platinum COMM

তথ্যসূত্র

একটি মন্তব্য করুন

আপনার ইমেল ঠিকানা প্রকাশ করা হবে না. প্রয়োজনীয় ক্ষেত্রগুলি চিহ্নিত করা হয়েছে *