AN0007 Arduino-დან Platinum COMM-მდე
“
პროდუქტის ინფორმაცია
სპეციფიკაციები
- პროდუქტის დასახელება: ARDUINO-დან PLATINUM-მდე კომუნიკაციების დახმარების დოკუმენტი
- მწარმოებელი: Dynament Limited
- მისამართი: ჰერმიtage Lane-ის სამრეწველო ზონა, კინგს მილ ვეი,
მენსფილდი, ნოტინგემშირი, NG18 5ER, დიდი ბრიტანეთი - საკონტაქტო ინფორმაცია: ტელ: 44 (0)1623 663636, ელ.ფოსტა: sales@dynament.com,
Webსაიტი: www.dynament.com - გამოცემა: 1.2, თარიღი: 09/04/2025
პროდუქტის გამოყენების ინსტრუქცია
სენსორის დაკავშირება
ეს მონაცემთა ფურცელი იყენებს Arduino Mega-ს, როგორც ყოფილს.ampლეგალურად დაკავშირება
შემდეგნაირად:
- 5v -> 5v Arduino პინი
- 0v -> Arduino GND
- Tx -> Arduino RX1
- Rx -> გადადის პოტენციური გამყოფის გამოსავალზე. შეყვანა
Arduino Tx-ზე გადადის
ტtage თავსებადობა
Arduino იყენებს 5 ვოლტიან ლოგიკურ მაღალ ძაბვას, ხოლო Platinum Sensor იყენებს
3.3 ვოლტი. გამოიყენეთ ძაბვაtage გამყოფი R1 და R2-ის შემოთავაზებული მნიშვნელობებით, როგორც
4K7 სენსორის დაზიანების თავიდან ასაცილებლად.
Arduino IDE დაყენება
- ჩამოტვირთეთ Arduino IDE პროგრამული უზრუნველყოფის უახლესი ვერსია ბმულიდან:
არდუინო webსაიტი. - ინსტრუმენტებში აირჩიეთ Arduino დაფა, პროცესორი და პორტი
ჩამოსაშლელი მენიუ.
კოდის ატვირთვა
- დააკოპირეთ მოწოდებული ექსampკოდი Arduino IDE-ში ჩასვით.
- კოდი Arduino-ზე ატვირთეთ ისარზე დაწკაპუნებით.
- გახსენით სერიული მონიტორი view მონაცემთა გადაცემა.
FAQ
კითხვა: რა უნდა გავაკეთო, თუ Arduino Uno-ს მხოლოდ ერთი კომუნიკაცია აქვს?
პორტი?
A: შეაერთეთ Platinum Sensor ამ პორტთან. გამოყენებისას
სერიული მონიტორი, ის ასევე აჩვენებს გადაცემულ ჰექსავალს.
„`
განაცხადის შენიშვნა AN0007
ARDUINO-დან PLATINUM-მდე კომუნიკაციების დახმარების დოკუმენტი
Dynament Limited
ჰერმიtagე ლეინის სამრეწველო ზონა, კინგს მილ ვეი, მენსფილდი, ნოტინჰემშირი, NG18 5ER, დიდი ბრიტანეთი. ტელ: 44 (0)1623 663636
ელ. ფოსტა: sales@dynament.com www.dynament.com
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 1 14-დან
შინაარსი
Dynament Limited …………………………………………………………………………………………………….1 სენსორის შეერთება…………………………………………………………………………………………..3 Arduino IDE …………………………………………………………………………………………………………………………………………5 კოდის ახსნა……………………………………………………………………………………………..9 პაკეტების დაყოფა ………………………………………………………………………………………………………………….11 Serial.read()-ის გამოყენება …… ....13
გაფართოებული კონვერტაციის შენიშვნები… ....14
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 2 14-დან
სენსორის შეერთება ეს მონაცემთა ფურცელი იყენებს Arduino Mega-ს, როგორც ყოფილს.ampმაგალითად, Ardunio Mega-ს ერთზე მეტი საკომუნიკაციო პორტი აქვს, ამიტომ სენსორთან კომუნიკაციისთვის გამოიყენება საკომუნიკაციო პორტი 1, ხოლო კომპიუტერზე დასაბეჭდად - საკომუნიკაციო პორტი 0.
Arduino იყენებს 5 ვოლტიან ლოგიკურ მაღალ ძაბვას, ხოლო Platinum Sensor-ი 3.3 ვოლტს, ამიტომ სენსორის დაზიანების თავიდან ასაცილებლად...tagაუცილებლად უნდა იქნას გამოყენებული e გამყოფი. R1-ისა და R2-ის რეკომენდებული მნიშვნელობებია 4K7.
სურათი 1: ამცირებს მოცულობასtage გამოყენებად დონემდე
სენსორის გადამცემ ხაზს, რომელიც Arduino-ს მიმღებამდე მიდის, გამყოფი არ სჭირდება, რადგან 3.3 ვოლტი Arduino-სთვის მისაღები შემავალი ძაბვაა.
სენსორის კვებისათვის ის უნდა იყოს მიერთებული 5 და 0 ვოლტ დენზე. ამისათვის შეგიძლიათ გამოიყენოთ Arduino-ზე არსებული პინები.
ამ ოპერაციის დასრულების შემდეგ, სენსორს უნდა ჰქონდეს შემდეგი კონექტორები დაკავშირებული:
5v -> 5v Arduino პინი
0v -> Arduino GND
Tx -> Arduino RX1
Rx -> გადადის პოტენციური გამყოფის გამოსავალზე. შემავალი სიგნალი გადადის Arduino Tx-ზე.
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 3 14-დან
ამის დასრულების შემდეგ, თქვენი პლატინის სენსორი უნდა იყოს დაკავშირებული, როგორც ნაჩვენებია:
სურათი 2: სენსორი გამოსახულია თავდაყირა შედუღების ადაპტერით.
თუ იყენებთ Arduino-ს მხოლოდ ერთი საკომუნიკაციო პორტით (მაგალითად, Arduino Uno), მოგიწევთ მისი მასთან დაკავშირება, თუმცა, როდესაც იყენებთ სერიულ მონიტორს (ნაჩვენებია მოგვიანებით), ის ასევე აჩვენებს გადაცემული ჰექსადეციალურ მნიშვნელობებს.
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 4 14-დან
Arduino IDE გადადით Arduino-ზე webსაიტზე და ჩამოტვირთეთ Arduino IDE პროგრამული უზრუნველყოფის უახლესი ვერსია. ინსტალაციის შემდეგ, თქვენ უნდა ნახოთ შემდეგი ეკრანი:
სურათი 3: Arduino-ს საწყისი ეკრანი
ხელსაწყოების ჩამოსაშლელ მენიუში აირჩიეთ Arduino დაფა, პროცესორი და პორტი, რომელსაც იყენებთ:
სურათი 4: დაფის, პროცესორის და პორტის პარამეტრების არჩევა
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 5 14-დან
კოპირება ამ ყოფილშიampკოდი: void send_read_live_data_simple(); void receive_read_live_data_simple();
void setup() { Serial.begin(38400); Serial1.begin(38400);}}}
}
void loop() { send_read_live_data_simple(); receive_read_live_data_simple(); delay(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(){ while (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print(“|”); } Serial.println();
}
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 6 14-დან
სურათი 5: კოდი მზადაა ასატვირთად
კოდის Arduino-ზე ასატვირთად დააწკაპუნეთ ისარზე. Arduino-ს დაპროგრამების შემდეგ გახსენით სერიული მონიტორი.
AN0007
სურათი 6: გახსენით სერიული მონიტორი
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 7 14-დან
სურათი 7: სერიული მონიტორი აჩვენებს მიღებულ პაკეტს.
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 8 14-დან
კოდის განმარტება Arduino IDE იყენებს C++-ს Arduino-ს პროგრამირებისთვის.
ეს ხაზი წარმოადგენს პირდაპირ დეკლარაციას. ეს გამოიყენება მიკროკონტროლერისთვის იმის სათქმელად, რომ პროგრამის უფრო ქვემოთ გამოძახებული იქნება `send_read_live_data_simple' და `receive_read_live_data_simple' ფუნქციები.
შემდეგი არის დაყენების ფუნქცია. ეს კოდი გაშვებისას მხოლოდ ერთხელ სრულდება. ის იწყებს Serial0 და Serial1 პორტებს. Serial0 არის ის, რაც ნაჩვენებია სერიული მონიტორის ეკრანზე. Serial1 არის პორტი, რომელიც სენსორთან კომუნიკაციისთვისაა განკუთვნილი.
ეს არის მთავარი ციკლი, ეს კოდი განმეორებით მეორდება. ფუნქციების სახელწოდების წაკითხვით შეგიძლიათ ნახოთ, რომ ის აგზავნის მოთხოვნას ცოცხალი მონაცემების სტრუქტურის გამარტივებული ვერსიის წასაკითხად. შემდეგ ის კითხულობს მიმღებ პორტს პასუხის წასაკითხად. ამის შემდეგ მიკროკონტროლერი ელოდება 5000 მილიწამს.
ეს ფუნქცია წერს მოთხოვნას პირდაპირი მონაცემების მარტივი სტრუქტურის მისაღებად სერიულ პორტ 1-ში. როგორც ადრე აღვნიშნეთ, თუ მხოლოდ ერთი სერიული პორტი გაქვთ, Serial1 უნდა შეცვალოთ Serial-ით. ბრძანებების სრული სიის სანახავად იხილეთ Premier sensor Communications protocol დოკუმენტი. აქ არის დოკუმენტის ის ნაწილი, რომელიც გეუბნებათ, თუ რა უნდა დაწეროთ ამ ბრძანებისთვის:
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 9 14-დან
ეს ფუნქცია აგრძელებს წაკითხვის ფუნქციის ციკლს, სანამ Platinum Sensor-დან ჯერ კიდევ არის მონაცემების მიღება. Serial1.read() კითხულობს მონაცემებს Serial1-დან, რომელიც დაკავშირებულია სენსორთან და ბეჭდავს მათ Serial0-ზე, რათა ისინი ხილული იყოს სერიულ მონიტორზე. შემდეგ იბეჭდება სიმბოლო `|', რათა დაყოს მიღებული თითოეული ბაიტი, რათა ის უფრო მკაფიო გახდეს სერიულ მონიტორზე.
ამის დასრულების შემდეგ, ის სერიულ მონიტორზე ახალ სტრიქონს წერს.
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 10 14-დან
პაკეტების დაშლა ნახაზი 8 და 9 გვიჩვენებს მიმღებ და გადამცემ ხაზებთან დაკავშირებული სერიული დეკოდერის გამომავალს.
სურათი 8: გამავალი პაკეტი
სურათი 9: შემომავალი პაკეტი
ნახაზი 10 და 11 ასახავს შესაბამისად გამავალ და შემომავალ ექვსკუთხედებს სვეტით, რომელიც აჩვენებს, თუ რომელ ბრძანებას ეხება ეს.
სურათი 10: გამავალი პაკეტის აღწერა
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 11 14-დან
სურათი 11: შემომავალი პაკეტის აღწერა
გთხოვთ გაითვალისწინოთ, რომ გაზის ჩვენება არის ათწილადი და არა მთელი რიცხვი. ეს ათწილადი არის IEEE-754 ფორმატში, მის გადასაყვანად შეგიძლიათ გამოიყენოთ ონლაინ გადამყვანი, როგორიცაა ეს. ამ შემთხვევაში გაზის მნიშვნელობა აჩვენებს -250-ს (რადგან იმ დროს ის შეცდომის რეჟიმში იყო).
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 12 14-დან
Serial.read()-ის გამოყენებით
წინა კოდი მხოლოდ მიღებულ მონაცემებს ბეჭდავდა სერიულ მონიტორზე, თუ გსურთ მონაცემების ცვლადებში შენახვა, დამატებითი დამუშავება დაგჭირდებათ. მიღებული პაკეტი დაყოფილია ბაიტებად, ამის გამო თქვენ დაგჭირდებათ ამ მონაცემების ნაწილის ცვლადებად გაერთიანება. Serial1.Read() აბრუნებს მთელ რიცხვს (რომელიც Arduino-სთვის 16 ბიტია), თუმცა, გამოიყენება მხოლოდ პირველი 8 ბიტი. ამის გამო ჩვენ შეგვიძლია მისი კოპირება უფრო მცირე მონაცემთა ტიპში, რომელიც მხოლოდ 8 ბიტია, ამ შემთხვევაში მე გამოვიყენებ char-ს.
მხოლოდ ერთი ბაიტის სიგრძის პაკეტებისთვის, ეს კარგად მუშაობს:
2 ან 4 ბაიტის სიგრძის პაკეტებისთვის, მონაცემების გაერთიანება დაგჭირდებათ.
ამის გაკეთება მრავალი განსხვავებული გზით შეგიძლიათ, აქ მე ვაპირებ მონაცემების მარცხნივ გადატანას და შემდეგ ან მის.
ამ კოდის გამოყენებით, თუ readByte1 არის 0x34 და readByte2 არის 0x12.
(int)readByte2
// ეს 0x12-ს 0x0012-ად გარდაქმნის.
(int)readByte2 << 8
// ეს ბიტებს ერთი ბაიტით გადააქვს და 0x1200-ს ხდის.
(int)readByte2 << 8 | readByte1 // შემდეგ ეს ხდება OR, 0x34-ით 0x1234-ის შედეგი.
ამის გაკეთების კიდევ ერთი გზა იქნებოდა მნიშვნელობების მასივში მოთავსება და შემდეგ მასივის სასურველ ტიპად გადაყვანა:
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 13 14-დან
სიმბოლოები ერთი ბაიტის სიგრძისაა, ხოლო float სიმბოლო 4 ბაიტის სიგრძისაა. ამის გამო, თუ 4 სიმბოლოსგან შემდგარ მასივს შევქმნით ჩვენი მნიშვნელობებით და ტიპს float-ით შევცვლით.
ამ შემთხვევაში readArray არის char მასივის მაჩვენებელი. (float*)readArray ეს ნაწილი მას float მასივზე გადაჰყავს და შემდეგ წინ ემატება * სიმბოლო float მასივის მნიშვნელობის მისაღებად.
გაფართოებული კონვერტაციის შენიშვნები
1. Serial.read() char-ის ნაცვლად აბრუნებს int-ს, რადგან შეცდომები უარყოფით მნიშვნელობებს დააბრუნებს. თქვენმა პროგრამამ ეს უნდა შეამოწმოს.
2. char-ისა და int-ის ნაცვლად უნდა იქნას გამოყენებული uint8_t და uint16_t, შესაბამისად, რადგან ამ ტიპებს არ აქვთ სტანდარტული ზომა (ჩემს კომპიუტერზე int არის 32 ბიტი, ხოლო Arduino-ზე - 16 ბიტი).
3. საკომუნიკაციო პროტოკოლი შეიცავს ბაიტებით შევსებულ სიმბოლოებს (ასევე ცნობილს, როგორც საკონტროლო სიმბოლოებს), ეს უფრო დეტალურად არის ახსნილი tds0045 Premier სენსორის საკომუნიკაციო პროტოკოლის დოკუმენტში. ამის გამო, წაკითხული მონაცემების მარტივი პაკეტი ზოგჯერ მოსალოდნელზე დიდი იქნება.
AN0007
საკითხი 1.2
09/04/2025
შენიშვნა 805-ის შეცვლა
გვერდი 14 14-დან
დოკუმენტები / რესურსები
![]() |
DYNAMENT AN0007 Arduino-დან Platinum COMM-მდე [pdf] მომხმარებლის სახელმძღვანელო AN0007 Arduino-დან Platinum COMM-მდე, AN0007, Arduino-დან Platinum COMM-მდე, Platinum COMM-მდე, Platinum COMM |