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
- ទាញយកកំណែថ្មីបំផុតនៃកម្មវិធី Arduino IDE ពី
Arduino webគេហទំព័រ។ - ជ្រើសរើស Arduino board, processor និង port នៅក្នុងឧបករណ៍
ម៉ឺនុយទម្លាក់ចុះ។
ការបង្ហោះកូដ
- ចម្លងឧampលេខកូដចូលទៅក្នុង Arduino IDE ។
- ផ្ទុកឡើងកូដទៅ Arduino ដោយចុចព្រួញ។
- បើកម៉ូនីទ័រសៀរៀលទៅ 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 |