DYNAMENT AN0007 Arduino မှ Platinum COMM အသုံးပြုသူလမ်းညွှန်

AN0007 Arduino မှ Platinum COMM

ထုတ်ကုန်အချက်အလက်

သတ်မှတ်ချက်များ

  • ထုတ်ကုန်အမည်- ARDUINO မှ PLATINUM COMMS အကူအညီစာရွက်စာတမ်း
  • ထုတ်လုပ်သူ- Dynament Limited
  • လိပ်စာ- Hermitage Lane စက်မှုဇုန်၊ Kings Mill Way၊
    Mansfield၊ Nottinghamshire၊ NG18 5ER၊ UK
  • ဆက်သွယ်ရန်: Tel: 44 (0)1623 663636, Email: sales@dynament.com ၊
    Website: www.dynament.com
  • ထုတ်ဝေမှု- 1.2၊ ရက်စွဲ- 09/04/2025

ထုတ်ကုန်အသုံးပြုမှု ညွှန်ကြားချက်များ

အာရုံခံကိရိယာကိုဆက်သွယ်ခြင်း

ဤဒေတာစာရွက်တွင် Arduino Mega ကို ယခင်အဖြစ်အသုံးပြုသည်။ampလဲ့ အဖြစ်ချိတ်ဆက်ပါ။
အောက်ပါအတိုင်း-

  • 5v -> 5v Arduino pin
  • 0v -> Arduino GND
  • Tx -> Arduino RX1
  • Rx -> ဖြစ်နိုင်ချေရှိသော ပိုင်းခြားမှု၏ အထွက်သို့ သွားပါသည်။ ထည့်သွင်းမှု
    Arduino Tx သို့သွားပါ။

ထယ်၊tage Compatibility ကို

ပလက်တီနမ်အာရုံခံကိရိယာကိုအသုံးပြုနေစဉ် Arduino သည် 5v logic မြင့်မားသည်။
3.3v Vol ကိုသုံးပါ။tagR1 နှင့် R2 အတွက် အကြံပြုထားသော တန်ဖိုးများပါရှိသော e ပိုင်းခြားခြင်း။
4K7 သည် Sensor များ ပျက်စီးခြင်းမှ ကာကွယ်ရန်။

Arduino IDE စနစ်ထည့်သွင်းခြင်း။

  1. Arduino IDE ဆော့ဖ်ဝဲလ်၏ နောက်ဆုံးဗားရှင်းကို ဒေါင်းလုဒ်လုပ်ပါ။
    Arduino website.
  2. ကိရိယာများရှိ Arduino board၊ ပရိုဆက်ဆာနှင့် port ကို ရွေးပါ။
    drop-down menu ကို။

ကုဒ်တင်ခြင်း။

  1. ပေးထားသော ex ကို ကူးယူပါ။ampArduino IDE ထဲကို ကုဒ်တွေထည့်လိုက်ပါ။
  2. မြှားကိုနှိပ်ခြင်းဖြင့် ကုဒ်ကို Arduino သို့ အပ်လုဒ်လုပ်ပါ။
  3. Serial Monitor ကိုဖွင့်လိုက်ပါ။ view ဒေတာပေးပို့မှု။

အမြဲမေးလေ့ရှိသောမေးခွန်းများ

မေး- ကွန်မင့်တစ်ခုသာပါတဲ့ Arduino Uno ရှိရင် ဘာလုပ်ရမလဲ
ဆိပ်ကမ်း?

A- ပလက်တီနမ်အာရုံခံကိရိယာကို ထိုဆိပ်ကမ်းသို့ ချိတ်ဆက်ပါ။ အသုံးပြုသောအခါ
အမှတ်စဉ်မော်နီတာ၊ ၎င်းသည် transmitted hex ကိုပြသလိမ့်မည်။

“`

လျှောက်လွှာမှတ်စု AN0007
ARDUINO မှ PLATINUM COMMS အကူအညီစာရွက်စာတမ်း

Dynament Limited
Hermitage Lane စက်မှုဇုန် Kings Mill Way Mansfield Nottinghamshire NG18 5ER UK။ Tel: 44 (0)1623 663636
အီးမေးလ်: sales@dynament.com www.dynament.com

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

မာတိကာ
Dynament Limited ………………………………………………………………………………………………………….1 အာရုံခံကိရိယာကိုချိတ်ဆက်ခြင်း……………………………………………………………………………………………..3 Arduino IDE ……………………………………………………………………………………………………………………….5 ကုဒ်ရှင်းလင်းချက်…………………………………………………………………………………………………………..9 Packet ခွဲခြမ်းစိတ်ဖြာခြင်း ………………………………………………………………………………………………………….11 Serial.read() ကိုအသုံးပြုခြင်း …………………………………………………………………………………………….13
အဆင့်မြင့်ကူးပြောင်းခြင်းမှတ်စုများ……………………………………………………………………………….၁၄

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

အာရုံခံကိရိယာကို ချိတ်ဆက်ခြင်း ဤဒေတာစာရွက်သည် Arduino Mega ကို ယခင်အဖြစ် အသုံးပြုသည်။ampလဲ့ Ardunio Mega သည် comm port တစ်ခုထက်ပို၍ ပံ့ပိုးပေးသောကြောင့် comm port 1 ကို sensor နှင့် ဆက်သွယ်ရန်အတွက် အသုံးပြုပြီး comm port 0 ကို PC သို့ print ထုတ်ရန်အတွက် အသုံးပြုပါသည်။
Arduino သည် 5v logic မြင့်မားစွာအသုံးပြုထားသော်လည်း Platinum Sensor သည် 3.3v ကိုအသုံးပြုထားသောကြောင့် Sensor ကို vol တစ်ခုမပျက်စီးစေရန်ကာကွယ်ရန်၊tage ပိုင်းခြားခြင်းကို အသုံးပြုရပါမည်။ R1 နှင့် R2 အတွက် အကြံပြုထားသော တန်ဖိုးများသည် 4K7 ဖြစ်သည်။

ပုံ 1- vol ကို လျှော့ပါ။tage သုံးနိုင်သောအဆင့်အထိ
3.3v သည် Arduino အတွက် လက်ခံနိုင်သော input တစ်ခုဖြစ်သောကြောင့် Arduino လက်ခံသို့သွားသော Sensor transmit line သည် divider မလိုအပ်ပါ။
အာရုံခံကိရိယာအား ပါဝါရရှိရန်အတွက် 5v နှင့် 0v တို့နှင့် ချိတ်ဆက်ရပါမည်။ ဒီလိုလုပ်ဖို့သင် Arduino ပေါ်ရှိ pins ကိုသုံးနိုင်သည်။
၎င်းကိုပြီးပါက၊ ယခုအခါ အာရုံခံကိရိယာတွင် အောက်ပါ pin များကို ချိတ်ဆက်ထားသင့်သည်-
5v -> 5v Arduino pin
0v -> Arduino GND
Tx -> Arduino RX1
Rx -> ဖြစ်နိုင်ချေရှိသော ပိုင်းခြားမှု၏ အထွက်သို့ သွားပါသည်။ ထည့်သွင်းမှုသည် Arduino Tx သို့သွားပါသည်။

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

ဤအရာပြီးပါက သင်၏ Platinum Sensor ကို ပုံတွင်ပြထားသည့်အတိုင်း ချိတ်ဆက်ထားသင့်သည်-
ပုံ 2- အာရုံခံကိရိယာကို ဂဟေဒက်တာဖြင့် ဇောက်ထိုးပြထားသည်။
အကယ်၍ သင်သည် comm port တစ်ခု (Arduino Uno ကဲ့သို့) တစ်ခုတည်းဖြင့် Arduino ကိုအသုံးပြုနေပါက ၎င်းနှင့်ချိတ်ဆက်ရန် လိုအပ်သော်လည်း၊ သင်သည် အမှတ်စဉ်မော်နီတာ (နောက်ပိုင်းတွင်ပြသထားသည်) ကိုအသုံးပြုသည့်အခါ ၎င်းသည် ထုတ်လွှင့်သော hex ကိုပြသမည်ဖြစ်သည်။

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

Arduino IDE ကို Arduino သို့သွားပါ။ webဆိုက်နှင့် Arduino IDE ဆော့ဖ်ဝဲလ်၏ နောက်ဆုံးဗားရှင်းကို ဒေါင်းလုဒ်လုပ်ပါ။ ထည့်သွင်းပြီးသည်နှင့် သင်သည် အောက်ပါစခရင်ကို မြင်ရပါမည်။
ပုံ 3- Arduino ပင်မစခရင်
ကိရိယာများ drop down menu တွင် သင်အသုံးပြုနေသော Arduino board၊ processor နှင့် port ကို ရွေးပါ။

ပုံ 4- ဘုတ်အဖွဲ့၊ ပရိုဆက်ဆာနှင့် ဆိပ်ကမ်းရွေးချယ်စရာများကို ရွေးပါ။

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

ဤ ex တွင်ကူးယူပါ။ample ကုဒ်- send_read_live_data_simple(); လက်ခံ_read_live_data_simple();
void setup() { Serial.begin(38400); Serial1.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(){ ပျက်ပြယ်နေချိန်တွင် (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print(“|”); } Serial.println();
}

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

ပုံ 5- ကုဒ်ကို အပ်လုဒ်လုပ်ရန် အသင့်ဖြစ်ပါပြီ။
ကုဒ်ကို Arduino သို့ အပ်လုဒ်လုပ်ရန် မြှားကို နှိပ်ပါ။ Arduino ကို ပရိုဂရမ်ပြုလုပ်ပြီးနောက် serial monitor ကိုဖွင့်ပါ။

AN0007

ပုံ 6- Serial Monitor ကိုဖွင့်ပါ။

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

ပုံ 7- Serial Montor သည် လက်ခံရရှိထားသော packet ကိုပြသသည်။

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

ကုဒ်ရှင်းပြချက် Arduino IDE သည် Arduino ကို ပရိုဂရမ်ပြုလုပ်ရန် C++ ကိုအသုံးပြုသည်။
ဤစာကြောင်းသည် ရှေ့သို့ ကြေငြာချက်ဖြစ်သည်။ ၎င်းကို ပရိုဂရမ်တွင် 'send_read_live_data_simple' လုပ်ဆောင်ချက်နှင့် `receive_read_live_data_simple' လုပ်ဆောင်ချက်ဟု ခေါ်တွင်ကြောင်း Microcontroller အား ပြောပြရန် အသုံးပြုသည်။
နောက်တစ်ခုကတော့ setup function ပါ။ ဤကုဒ်သည် စတင်ချိန်တွင် တစ်ကြိမ်သာ အလုပ်လုပ်ပါသည်။ ၎င်းသည် Serial0 နှင့် Serial1 အပေါက်များကို စတင်သည်။ Serial0 သည် အမှတ်စဉ်မော်နီတာစခရင်တွင်ပြသထားသည့်အရာဖြစ်သည်။ Serial1 သည် sensor နှင့် ဆက်သွယ်ရန် port ဖြစ်သည်။
ဤသည်မှာ ပင်မကွင်းဆက်ဖြစ်ပြီး၊ ဤကုဒ်သည် ထပ်ခါတလဲလဲ လှည့်ပတ်နေပါသည်။ တိုက်ရိုက်ဒေတာတည်ဆောက်ပုံ၏ ရိုးရှင်းသောဗားရှင်းကို ဖတ်ရန် တောင်းဆိုချက်ပေးပို့သည့် လုပ်ဆောင်ချက်အမည်များကို ဖတ်ခြင်းဖြင့် သင်တွေ့မြင်နိုင်ပါသည်။ ထို့နောက် reply ကိုဖတ်ရန် လက်ခံ port ကိုဖတ်သည်။ ထို့နောက်တွင် Microcontroller သည် 5000mS ကို စောင့်သည်။
ဤလုပ်ဆောင်ချက်သည် တိုက်ရိုက်ဒေတာရိုးရှင်းသော struct ကို serial port 1 သို့ရယူရန် တောင်းဆိုချက်ကိုရေးသည်။ ယခင်ဖော်ပြခဲ့သည့်အတိုင်း သင့်တွင် serial port တစ်ခုသာရှိပါက Serial1 သို့ Serial သို့ပြောင်းသင့်သည်။ ညွှန်ကြားချက်များစာရင်းအပြည့်အစုံကိုကြည့်ရှုရန် Premier sensor Communications protocol စာရွက်စာတမ်းကို ကိုးကားပါ။ ဤသည်မှာ ဤ command အတွက် ဘာရေးရမည်ကို ပြောပြသော စာရွက်စာတမ်း၏ အစိတ်အပိုင်းဖြစ်သည်-

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

ဤလုပ်ဆောင်ချက်သည် ပလက်တီနမ်အာရုံခံကိရိယာမှ လက်ခံရရှိရမည့် ဒေတာများရှိနေသေးသော်လည်း ဖတ်သည့်လုပ်ဆောင်ချက်ကို လှည့်ပတ်စေသည်။ Serial1.read() သည် အာရုံခံကိရိယာနှင့်ချိတ်ဆက်ထားသည့် Serial1 မှဒေတာကိုဖတ်ပြီး Serial0 တွင် ပရင့်ထုတ်သောကြောင့် ၎င်းကို အမှတ်စဉ်မော်နီတာတွင်တွေ့မြင်နိုင်သည်။ ဇာတ်ကောင် `|´ ထို့နောက် အမှတ်စဉ်မော်နီတာတွင် ပိုမိုရှင်းလင်းစေရန် လက်ခံရရှိသည့် byte တစ်ခုစီကို ခွဲထုတ်ရန် ပုံနှိပ်သည်။
၎င်းသည် ပြီးပါက အမှတ်စဉ် မော်နီတာတွင် စာကြောင်းအသစ် ရေးသည်။

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

Packet ခွဲခြမ်းစိတ်ဖြာပုံ 8 နှင့် 9 သည် လက်ခံခြင်းနှင့် ပို့လွှတ်သည့်လိုင်းများနှင့် ချိတ်ဆက်ထားသော အမှတ်စဉ် ဒီကုဒ်ဒါတစ်ခု၏ အထွက်ကို ပြသသည်။
ပုံ 8- အထွက်အထုပ်
ပုံ 9- အဝင်အထုပ်
ပုံ 10 နှင့် 11 သည် မည်သည့် command ဖြစ်သည်ကိုပြသသော ကော်လံတစ်ခုဖြင့် အထွက်နှင့် အဝင် hex ကို အသီးသီးပြသထားသည်။

ပုံ 10- အထွက် Packet ဖော်ပြချက်

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

ပုံ 11- Incoming Packet ဖော်ပြချက်
ဂတ်စ်ဖတ်ခြင်းသည် ဒဿမ ကိန်းပြည့်မဟုတ်ကြောင်း သတိပြုပါ။ ဤဒဿမသည် IEEE-754 ဖော်မတ်ဖြစ်ပြီး၊ ၎င်းကိုပြောင်းရန် ဤကဲ့သို့သော အွန်လိုင်းပြောင်းစက်ကို သင်အသုံးပြုနိုင်သည်။ ဤကိစ္စတွင်ရှိဓာတ်ငွေ့တန်ဖိုးသည် -250 (ထိုအချိန်ကအမှားမုဒ်တွင်ရှိသကဲ့သို့) ကိုပြသသည်။

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

Serial.read() ကိုအသုံးပြုခြင်း
ယခင်ကုဒ်သည် လက်ခံရရှိသည့်ဒေတာကို အမှတ်စဉ်မော်နီတာတွင်သာ ရိုက်နှိပ်ထားပြီး၊ ဒေတာကို ကိန်းရှင်များအဖြစ် သိမ်းဆည်းလိုပါက နောက်ထပ်လုပ်ဆောင်မှုအချို့ကို လုပ်ဆောင်ရန် လိုအပ်မည်ဖြစ်သည်။ သင်လက်ခံရရှိသော ပက်ကတ်ကို ဘိုက်များအဖြစ် ပိုင်းခြားထားသောကြောင့် ဤဒေတာအချို့ကို ကိန်းရှင်များအဖြစ် ပေါင်းစပ်ရန် လိုအပ်မည်ဖြစ်သည်။ Serial1.Read() သည် int တစ်ခု (Arduino အတွက် 16 bits) ကို ပြန်ပေးသည် သို့သော်၊ ပထမ 8 bits ကိုသာ အသုံးပြုပါသည်။ ထို့အတွက်ကြောင့် ၎င်းကို 8 bits သာရှိသော သေးငယ်သောဒေတာအမျိုးအစားသို့ ကူးယူနိုင်သည်၊ ဤကိစ္စတွင် ကျွန်ုပ်သည် char ကိုသုံးပါမည်။
တစ်ဘိုက်မျှသာ ရှည်လျားသော ပက်ကတ်များအတွက်၊ ၎င်းသည် ကောင်းမွန်စွာ အလုပ်လုပ်သည်-
2 bytes သို့မဟုတ် 4 bytes ရှည်သော ပက်ကေ့ခ်ျများအတွက် သင်သည် ဒေတာကို ပေါင်းစပ်ရန် လိုအပ်မည်ဖြစ်သည်။

ဒါကို မတူညီတဲ့နည်းလမ်းများစွာနဲ့ သင်လုပ်နိုင်တယ်၊ ဒီနေရာမှာ ကျွန်တော်လုပ်မယ့်အရာက ဒေတာဘက်ကို ချန်ထားပြီး ဒါမှမဟုတ် အဲဒါကို လုပ်ပါ။

readByte1 သည် 0x34 ဖြစ်ပြီး readByte2 သည် 0x12 ဖြစ်ပါက ဤကုဒ်ကို အသုံးပြုပါ။

(int)readByte2

// ၎င်းသည် 0x12 ကို 0x0012 သို့ ပြောင်းပေးသည်။

(int)readByte2 << ၈

// ၎င်းသည် 0x1200 ကို byte တစ်ခုဖြင့် ပြောင်းပေးသည်။

(int)readByte2 << 8 | readByte1 // ၎င်းကို 0x34 ဖြင့် 0x1234 ဖြင့် OR'ed ရရှိသည်။

၎င်းကိုလုပ်ဆောင်ရန် နောက်တစ်နည်းမှာ တန်ဖိုးများကို array တွင်ထည့်ပြီးနောက် array ကို သင်လိုချင်သည့်အမျိုးအစားသို့ ပြောင်းရန်ဖြစ်သည်-

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

chars များသည် byte ရှည်ကြပြီး float သည် 4 bytes ရှည်သည်။ ထို့အတွက်ကြောင့် ကျွန်ုပ်တို့သည် ၎င်းတွင် ကျွန်ုပ်တို့၏တန်ဖိုးများနှင့်အတူ စာလုံးလေးလုံးပါသော array တစ်ခုပြုလုပ်ပြီး အမျိုးအစားကို float သို့ပြောင်းပါက၊
ဤအခြေအနေတွင် readArray သည် char array တစ်ခုဆီသို့ pointer တစ်ခုဖြစ်သည်။ (float*)readArray သည် ဤအပိုင်းကို float တစ်ခုဆီသို့ pointer တစ်ခုသို့ ချလိုက်ပြီးနောက် float ၏တန်ဖိုးကိုရရှိရန် ရှေ့သို့ * ကို ပေါင်းထည့်သည်။
အဆင့်မြင့် ကူးပြောင်းခြင်း မှတ်စုများ
1. Serial.read() သည် char အစား int ပြန်ပေးသည် အဘယ်ကြောင့်ဆိုသော် အမှားများသည် အနုတ်တန်ဖိုးများကို ပြန်ပေးလိမ့်မည်။ သင့်ပရိုဂရမ်သည် ၎င်းကို စစ်ဆေးသင့်သည်။
2. uint8_t နှင့် uint16_t တို့ကို char နှင့် int နေရာတွင် အသီးသီး အသုံးပြုသင့်သည်၊ အကြောင်းမှာ ဤအမျိုးအစားများသည် စံအရွယ်အစားမရှိသောကြောင့် (ကျွန်ုပ်၏ PC တွင် int သည် 32 bits ဖြစ်ပြီး Arduino တွင် 16 bits ဖြစ်သည်)။
3. comms ပရိုတိုကောတွင် ဘိုက်အက္ခရာများပါရှိသည် (ထိန်းချုပ်မှုအက္ခရာများဟုလည်း ခေါ်သည်)၊ ၎င်းကို tds0045 Premier sensor Communications protocol စာရွက်စာတမ်းတွင် အသေးစိတ်ရှင်းပြထားသည်။ ထို့အတွက်ကြောင့် တိုက်ရိုက်ဖတ်နိုင်သော ဒေတာရိုးရှင်းသော ပက်ကေ့ခ်ျသည် မျှော်လင့်ထားသည်ထက် ရံဖန်ရံခါ ပိုကြီးလိမ့်မည်။

AN0007

စာစောင် ၁.၀၁

၁၂/၂၄/၃၆

Note 805 ကိုပြောင်းပါ။

စာမျက်နှာ ၃ မှ ၃

စာရွက်စာတမ်းများ / အရင်းအမြစ်များ

DYNAMENT AN0007 Arduino မှ Platinum COMM [pdf] အသုံးပြုသူလမ်းညွှန်
AN0007 Arduino မှ Platinum COMM၊ AN0007၊ Arduino မှ Platinum COMM၊ ပလက်တီနမ် COMM၊ ပလက်တီနမ် COMM

ကိုးကား

မှတ်ချက်တစ်ခုချန်ထားပါ။

သင့်အီးမေးလ်လိပ်စာကို ထုတ်ပြန်မည်မဟုတ်ပါ။ လိုအပ်သောအကွက်များကို အမှတ်အသားပြုထားသည်။ *