មគ្គុទ្ទេសក៍អ្នកប្រើប្រាស់ DYNAMENT AN0007 Arduino ទៅ Platinum COMM

AN0007 Arduino ទៅ Platinum COMM

ព័ត៌មានអំពីផលិតផល

លក្ខណៈបច្ចេកទេស

  • ឈ្មោះផលិតផល៖ ឯកសារជំនួយ ARDUINO ទៅ PLATINUM COMMS
  • ក្រុមហ៊ុនផលិត:Dynament Limited
  • អាស័យដ្ឋាន៖ Hermitage Lane Industrial Estate, Kings Mill Way,
    Mansfield, Nottinghamshire, NG18 5ER, ចក្រភពអង់គ្លេស
  • ទំនាក់ទំនង៖ Tel: 44 (0)1623 663636, Email: sales@dynament.com,
    Webគេហទំព័រ៖ www.dynament.com
  • លេខ៖ ១.២ កាលបរិច្ឆេទ៖ ០៩/០៤/២០២៥

ការណែនាំអំពីការប្រើប្រាស់ផលិតផល

ភ្ជាប់ឧបករណ៍ចាប់សញ្ញា

សន្លឹកទិន្នន័យនេះប្រើ Arduino Mega ជាអតីតampលេ ភ្ជាប់ជា
ដូចខាងក្រោម៖

  • 5v -> 5v ម្ជុល Arduino
  • 0v -> Arduino GND
  • Tx -> Arduino RX1
  • Rx -> ទៅលទ្ធផលនៃការបែងចែកសក្តានុពល។ ការបញ្ចូល
    ទៅ Arduino Tx

វ៉ុលtagអ៊ីភាពឆបគ្នា

Arduino ប្រើតក្កវិជ្ជា 5v ខ្ពស់ខណៈពេលដែល Platinum Sensor ប្រើ
៣.៣ វ. ប្រើវ៉ុលtage ការបែងចែកជាមួយតម្លៃដែលបានស្នើសម្រាប់ R1 និង R2 ជា
4K7 ដើម្បីការពារការខូចខាតដល់ឧបករណ៍ចាប់សញ្ញា។

ការដំឡើង Arduino IDE

  1. ទាញយកកំណែថ្មីបំផុតនៃកម្មវិធី Arduino IDE ពី
    Arduino webគេហទំព័រ។
  2. ជ្រើសរើស Arduino board, processor និង port នៅក្នុងឧបករណ៍
    ម៉ឺនុយទម្លាក់ចុះ។

ការបង្ហោះកូដ

  1. ចម្លង​ឧampលេខកូដចូលទៅក្នុង Arduino IDE ។
  2. ផ្ទុកឡើងកូដទៅ Arduino ដោយចុចព្រួញ។
  3. បើកម៉ូនីទ័រសៀរៀលទៅ view ការបញ្ជូនទិន្នន័យ។

សំណួរគេសួរញឹកញាប់

សំណួរ៖ តើខ្ញុំគួរធ្វើដូចម្តេចប្រសិនបើខ្ញុំមាន Arduino Uno ដែលមាន comm តែមួយ
ច្រក?

ចម្លើយ៖ ភ្ជាប់ឧបករណ៍ចាប់សញ្ញាប្លាទីនទៅនឹងច្រកនោះ។ នៅពេលប្រើ
ម៉ូនីទ័រសៀរៀល វាក៏នឹងបង្ហាញ hex ដែលបានបញ្ជូនផងដែរ។

“`

ចំណាំកម្មវិធី AN0007
ឯកសារជំនួយ ARDUINO ទៅ PLATINUM COMMS

ឌីណាមេន លីមីតធីត
ហឺមីtage Lane Industrial Estate Kings Mill Way Mansfield Nottinghamshire NG18 5ER ចក្រភពអង់គ្លេស។ ទូរស័ព្ទ៖ 44 (0)1623 663636
អ៊ីមែល: sales@dynament.com www.dynament.com

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 1 នៃ 14

មាតិកា
Dynament Limited ………………………………………………………………………………………………………….1 ការភ្ជាប់ឧបករណ៍ចាប់សញ្ញា……………………………………………………………………………………………..3 Arduino IDE ……………………………………………………………………………………………………………………… 5 Code ការពន្យល់…………………………………………………………………………………………………………..9 ការបំបែកកញ្ចប់ព័ត៌មាន ………………………………………………………………………………………………………….11 ការប្រើប្រាស់ Serial.read() …………………………………………………………………………………………….13
កំណត់ចំណាំការបំប្លែងកម្រិតខ្ពស់……………………………………………………………………………….14

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 2 នៃ 14

ការភ្ជាប់ Sensor សន្លឹកទិន្នន័យនេះប្រើ Arduino Mega ជាអតីតampលេ Ardunio Mega ផ្តល់ច្រក comm ច្រើនជាងមួយ ដូច្នេះច្រក comm 1 ត្រូវបានប្រើដើម្បីទំនាក់ទំនងជាមួយឧបករណ៍ចាប់សញ្ញា ហើយច្រក comm 0 ត្រូវបានប្រើដើម្បីបោះពុម្ពទៅកុំព្យូទ័រ។
Arduino ប្រើ 5v logic high ចំណែក Platinum Sensor ប្រើ 3.3v ដូច្នេះដើម្បីការពារការខូចខាតដល់ Sensor មួយវ៉ុល។tagការបែងចែក e ត្រូវតែប្រើ។ តម្លៃដែលបានណែនាំសម្រាប់ R1 និង R2 គឺ 4K7 ។

រូបភាពទី 1: បន្ថយវ៉ុលtagអ៊ី ដល់កម្រិតដែលអាចប្រើបាន
ខ្សែបញ្ជូន Sensor ទៅកាន់ Arduino receive មិនត្រូវការការបែងចែកទេ ព្រោះថា 3.3v គឺជាការបញ្ចូលដែលអាចទទួលយកបានទៅកាន់ Arduino ។
ដើម្បីផ្តល់ថាមពលដល់ Sensor វាត្រូវតែភ្ជាប់ទៅ 5v និង 0v។ ដើម្បីធ្វើដូចនេះអ្នកអាចប្រើម្ជុលនៅលើ Arduino ។
បន្ទាប់​ពី​វា​បាន​បញ្ចប់​ហើយ ឥឡូវ​នេះ ឧបករណ៍​ចាប់​សញ្ញា​គួរ​តែ​មាន​ម្ជុល​ដូច​ខាង​ក្រោម​ដែល​បាន​តភ្ជាប់៖
5v -> 5v ម្ជុល Arduino
0v -> Arduino GND
Tx -> Arduino RX1
Rx -> ទៅលទ្ធផលនៃការបែងចែកសក្តានុពល។ ការបញ្ចូលទៅ Arduino Tx

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 3 នៃ 14

បន្ទាប់ពីនេះត្រូវបានបញ្ចប់ឧបករណ៍ចាប់សញ្ញាផ្លាទីនរបស់អ្នកគួរតែត្រូវបានភ្ជាប់ដូចដែលបានបង្ហាញ:
រូបភាពទី 2: ឧបករណ៍ចាប់សញ្ញាត្រូវបានបង្ហាញដោយចិត្តសប្បុរសដោយអាស្រ័យជាមួយអាដាប់ទ័រ solder
ប្រសិនបើអ្នកកំពុងប្រើ Arduino ដែលមានច្រក comm តែមួយ (ដូចជា Arduino Uno) អ្នកនឹងត្រូវភ្ជាប់វាទៅវា ប៉ុន្តែនៅពេលដែលអ្នកប្រើ serial monitor (បង្ហាញនៅពេលក្រោយ) វាក៏នឹងបង្ហាញ hex ដែលត្រូវបានបញ្ជូនផងដែរ។

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 4 នៃ 14

Arduino IDE ចូលទៅកាន់ Arduino webគេហទំព័រ និងទាញយកកំណែថ្មីបំផុតនៃកម្មវិធី Arduino IDE ។ ពេលដំឡើងរួច អ្នកនឹងឃើញអេក្រង់ខាងក្រោម៖
រូបភាពទី 3៖ អេក្រង់ដើម Arduino
នៅក្នុងម៉ឺនុយទម្លាក់ចុះ ឧបករណ៍ ជ្រើសរើសបន្ទះ Arduino ខួរក្បាល និងច្រកដែលអ្នកកំពុងប្រើ៖

រូបភាពទី 4៖ ជ្រើសរើសជម្រើស Board, Processor និង Port

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 5 នៃ 14

ចម្លងនៅក្នុងនេះ ឧampលេខកូដ៖ ទុកជាមោឃៈ send_read_live_data_simple(); ចាត់ទុកជាមោឃៈ receive_read_live_data_simple();
ការដំឡើងចាត់ទុកជាមោឃៈ () { Serial.begin(38400); សៀរៀល1.begin(38400);
}
void loop() { send_read_live_data_simple(); receive_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);
}
ទុកជាមោឃៈ receive_read_live_data_simple(){ while (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print(“|”); } Serial.println();
}

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 6 នៃ 14

រូបភាពទី 5: កូដរួចរាល់ដើម្បីផ្ទុកឡើង
ចុចលើសញ្ញាព្រួញដើម្បីបង្ហោះកូដទៅកាន់ Arduino ។ បន្ទាប់ពី Arduino ត្រូវបានកម្មវិធីបើកម៉ូនីទ័រសៀរៀល។

AN0007

រូបភាពទី 6: បើក Serial Monitor

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 7 នៃ 14

រូបភាពទី 7៖ Serial Montor បង្ហាញកញ្ចប់ព័ត៌មានដែលបានទទួល

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 8 នៃ 14

ការពន្យល់កូដ Arduino IDE ប្រើ C++ ដើម្បីសរសេរកម្មវិធី Arduino ។
បន្ទាត់នេះគឺជាការប្រកាសទៅមុខ។ វាត្រូវបានប្រើដើម្បីប្រាប់ Microcontroller ថាចុះក្រោមនៅក្នុងកម្មវិធីមុខងារ `send_read_live_data_simple' និងមុខងារ `receive_read_live_data_simple' នឹងត្រូវបានហៅ។
បន្ទាប់គឺមុខងារដំឡើង។ លេខកូដនេះដំណើរការតែម្តងគត់នៅពេលចាប់ផ្តើម។ វាចាប់ផ្តើមច្រក Serial0 និង Serial1។ ស៊េរី 0 គឺជាអ្វីដែលត្រូវបានបង្ហាញនៅក្នុងអេក្រង់ម៉ូនីទ័រសៀរៀល។ Serial1 គឺជាច្រកសម្រាប់ទំនាក់ទំនងជាមួយឧបករណ៍ចាប់សញ្ញា។
នេះគឺជារង្វិលជុំសំខាន់ កូដនេះទទួលបានរង្វិលជុំម្តងហើយម្តងទៀត។ អ្នកអាចមើលឃើញដោយការអានឈ្មោះមុខងារដែលវាផ្ញើសំណើដើម្បីអានកំណែសាមញ្ញនៃរចនាសម្ព័ន្ធទិន្នន័យផ្ទាល់។ បន្ទាប់មកវាអានច្រកទទួល ដើម្បីអានការឆ្លើយតប។ បន្ទាប់ពីនេះ Microcontroller រង់ចាំ 5000mS ។
មុខងារនេះសរសេរសំណើដើម្បីទទួលបានទិន្នន័យបន្តផ្ទាល់ រចនាសម្ព័ន្ធសាមញ្ញទៅច្រកសៀរៀល 1. ដូចដែលបានរៀបរាប់ពីមុន ប្រសិនបើអ្នកមានច្រកសៀរៀលតែមួយ អ្នកគួរតែប្តូរ Serial1 ទៅ Serial។ ដើម្បីមើលបញ្ជីពេញលេញនៃពាក្យបញ្ជា សូមមើលឯកសារពិធីការទំនាក់ទំនងឧបករណ៍ចាប់សញ្ញា Premier ។ នេះគឺជាផ្នែកនៃឯកសារដែលប្រាប់អ្នកពីអ្វីដែលត្រូវសរសេរសម្រាប់ពាក្យបញ្ជានេះ៖

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 9 នៃ 14

មុខងារនេះរង្វិលជុំមុខងារអានខណៈពេលដែលនៅតែមានទិន្នន័យដែលត្រូវទទួលពីឧបករណ៍ចាប់សញ្ញាផ្លាទីន។ Serial1.read() អានទិន្នន័យពី Serial1 ដែលភ្ជាប់ទៅឧបករណ៍ចាប់សញ្ញា ហើយបោះពុម្ពវានៅលើ Serial0 ដូច្នេះវាអាចត្រូវបានគេមើលឃើញនៅលើម៉ូនីទ័រសៀរៀល។ តួ `|' បន្ទាប់​មក​ត្រូវ​បាន​បោះពុម្ព​ដើម្បី​បំបែក​បៃ​នីមួយៗ​ដែល​ត្រូវ​បាន​ទទួល​ដើម្បី​ធ្វើ​ឱ្យ​វា​កាន់​តែ​ច្បាស់​នៅ​លើ​ម៉ូនីទ័រ​សៀរៀល។
បន្ទាប់ពីបញ្ចប់វាសរសេរបន្ទាត់ថ្មីទៅម៉ូនីទ័រសៀរៀល។

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 10 នៃ 14

ការបំបែកកញ្ចប់រូបភាពទី 8 និងទី 9 បង្ហាញលទ្ធផលនៃឧបករណ៍ឌិកូដសៀរៀលដែលភ្ជាប់ទៅខ្សែទទួល និងបញ្ជូន។
រូបភាពទី 8: កញ្ចប់ចេញ
រូបភាពទី 9៖ កញ្ចប់ព័ត៌មានចូល
រូបភាពទី 10 និង 11 បង្ហាញ hex ចេញនិងចូលរៀងគ្នាជាមួយនឹងជួរឈរដែលបង្ហាញថាវាជាពាក្យបញ្ជាមួយ។

រូបភាពទី 10៖ ការពិពណ៌នាកញ្ចប់ចេញ

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 11 នៃ 14

រូបភាពទី 11៖ ការពិពណ៌នាកញ្ចប់ព័ត៌មានចូល
សូមចំណាំថាការអានឧស្ម័នគឺជាទសភាគមិនមែនជាចំនួនគត់ទេ។ ទសភាគនេះគឺនៅក្នុងទម្រង់ IEEE-754 អ្នកអាចប្រើកម្មវិធីបំប្លែងតាមអ៊ីនធឺណិតដូចនេះដើម្បីបំប្លែងវាបាន។ តម្លៃឧស្ម័នក្នុងករណីនេះបង្ហាញ -250 (ដូចដែលវាស្ថិតនៅក្នុងរបៀបកំហុសនៅពេលនោះ) ។

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 12 នៃ 14

ការប្រើប្រាស់ Serial.read()
លេខកូដពីមុនបានបោះពុម្ពតែទិន្នន័យដែលទទួលបានទៅម៉ូនីទ័រសៀរៀលប៉ុណ្ណោះ ប្រសិនបើអ្នកចង់រក្សាទុកទិន្នន័យក្នុងអថេរ អ្នកនឹងត្រូវដំណើរការបន្ថែមទៀត។ កញ្ចប់ព័ត៌មានដែលអ្នកទទួលបានត្រូវបានបំបែកជាបៃ ដោយសារតែនេះ អ្នកនឹងត្រូវភ្ជាប់ទិន្នន័យមួយចំនួនទៅជាអថេរ។ Serial1.Read() ត្រឡប់ int (ដែលសម្រាប់ Arduino គឺ 16 ប៊ីត) ទោះយ៉ាងណាក៏ដោយ មានតែ 8 ប៊ីតដំបូងប៉ុណ្ណោះដែលត្រូវបានប្រើប្រាស់។ ដោយសារតែនេះយើងអាចចម្លងវាទៅជាប្រភេទទិន្នន័យតូចជាងដែលមានត្រឹមតែ 8 ប៊ីត ក្នុងករណីនេះខ្ញុំនឹងប្រើ char ។
សម្រាប់កញ្ចប់ដែលមានប្រវែងត្រឹមតែមួយបៃ វាដំណើរការល្អ៖
សម្រាប់កញ្ចប់ព័ត៌មានដែលមានប្រវែង 2 បៃ ឬ 4 បៃ អ្នកនឹងត្រូវភ្ជាប់ទិន្នន័យ។

អ្នក​អាច​ធ្វើ​វា​តាម​វិធី​ផ្សេង​គ្នា​ជា​ច្រើន ​នៅ​ទីនេះ​អ្វី​ដែល​ខ្ញុំ​នឹង​ធ្វើ​គឺ​ទុក​ការ​ផ្លាស់​ប្តូរ​ទិន្នន័យ​ហើយ​បន្ទាប់​មក​ឬ​វា​។

ការប្រើប្រាស់កូដនេះ ប្រសិនបើ readByte1 គឺ 0x34 ហើយ readByte2 គឺ 0x12។

(int)readByte2

// វាបំប្លែង 0x12 ទៅជា 0x0012។

(int)readByte2 << ៨

// វាផ្លាស់ប្តូរប៊ីតដោយបៃដែលធ្វើឱ្យវា 0x1200 ។

(int)readByte2 << 8 | readByte1 // បន្ទាប់មកទទួលបាន OR'ed ដោយ 0x34 បង្កើត 0x1234 ។

វិធីមួយទៀតដើម្បីធ្វើដូច្នេះគឺដាក់តម្លៃទៅក្នុងអារេមួយ ហើយបន្ទាប់មកបំប្លែងអារេទៅជាប្រភេទដែលអ្នកចង់បាន៖

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 13 នៃ 14

តួអក្សរគឺវែងមួយបៃ ចំណែកឯអណ្តែតគឺវែង 4 បៃ។ ដោយសារតែនេះប្រសិនបើយើងបង្កើតអារេនៃ 4 តួអក្សរជាមួយនឹងតម្លៃរបស់យើងនៅក្នុងវាហើយផ្លាស់ប្តូរប្រភេទទៅជាអណ្តែត។
នៅ​ក្នុង​ករណី​នេះ readArray គឺ​ជា​ទ្រនិច​ទៅ​កាន់ char array ។ (float*)readArray ផ្នែកនេះបោះវាទៅទ្រនិចទៅអណ្តែត ហើយបន្ទាប់មក a * ត្រូវបានបន្ថែមទៅខាងមុខ ដើម្បីទទួលបានតម្លៃនៃ float ។
កំណត់ចំណាំការបំប្លែងកម្រិតខ្ពស់
1. Serial.read() ត្រឡប់ int ជំនួសឱ្យ char ព្រោះកំហុសនឹងត្រឡប់តម្លៃអវិជ្ជមាន។ កម្មវិធីរបស់អ្នកគួរតែពិនិត្យមើលវា។
2. uint8_t និង uint16_t គួរតែត្រូវបានប្រើជំនួស char និង int រៀងគ្នា ព្រោះប្រភេទទាំងនេះមិនមានទំហំស្តង់ដារ (នៅលើកុំព្យូទ័ររបស់ខ្ញុំ int គឺ 32 ប៊ីត ចំណែកនៅលើ Arduino វាមាន 16 ប៊ីត)។
3. ពិធីការ comms មានតួអក្សរដែលផ្ទុកដោយបៃ (ត្រូវបានគេស្គាល់ថាជាតួអក្សរបញ្ជា) វាត្រូវបានពន្យល់យ៉ាងលម្អិតនៅក្នុងឯកសារពិធីការទំនាក់ទំនងឧបករណ៍ចាប់សញ្ញា Premier tds0045 ។ ដោយសារតែនេះ កញ្ចប់ទិន្នន័យសាមញ្ញដែលអានផ្ទាល់នឹងម្តងម្កាលមានទំហំធំជាងការរំពឹងទុក។

AN0007

លេខ០៦

១០/១០/២០២៣

ផ្លាស់ប្តូរចំណាំ 805

ទំព័រទី 14 នៃ 14

ឯកសារ/ធនធាន

DYNAMENT AN0007 Arduino ទៅ Platinum COMM [pdf] ការណែនាំអ្នកប្រើប្រាស់
AN0007 Arduino ទៅ Platinum COMM, AN0007, Arduino ទៅ Platinum COMM, ទៅ Platinum COMM, Platinum COMM

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *