AN0007 Arduino до Platinum COMM
“
Информации за производот
Спецификации
- Име на производ: Документ за помош за комуникација од ARDUINO to PLATINUM
- Производител: Dynament Limited
- Адреса: ХермиtagИндустриска зона „Е Лејн“, Кингс Мил Веј,
Менсфилд, Нотингемшир, 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
Voltagд Компатибилност
Arduino користи 5V логички напон на високо ниво, додека Platinum Sensor користи
3.3V. Користете вол.tage делител со предложени вредности за R1 и R2 како
4K7 за да се спречи оштетување на сензорот.
Поставување Arduino IDE
- Преземете ја најновата верзија на софтверот Arduino IDE од
Ардуино webсајт. - Изберете ја плочката Arduino, процесорот и портот во алатките
паѓачкото мени.
Код за прикачување
- Копирајте го дадениот примерокampвнесете го кодот во Arduino IDE.
- Поставете го кодот на Arduino со кликнување на стрелката.
- Отворете го серискиот монитор за да view пренос на податоци.
Најчесто поставувани прашања
П: Што треба да направам ако имам Arduino Uno со само една комуникација?
пристаниште?
A: Поврзете го Платинум сензорот на тој порт. Кога го користите
сериски монитор, тој исто така ќе го прикаже пренесениот хексадецимален број.
„`
Забелешка за апликација AN0007
Документ за помош за комуникација од ARDUINO до PLATINUM
Dynament Limited
ХермиtagИндустриска зона „Е Лејн“, Кингс Мил Веј, Менсфилд, Нотингемшир, NG18 5ER, Велика Британија. Тел: 44 (0)1623 663636
е-пошта: sales@dynament.com www.dynament.com
AN0007
Број 1.2
09
Промена на белешка 805
Страна 1 од 14
Содржини
Dynament Limited ………………………………………………………………………………………………………….1 Поврзување на сензорот …………………………………………………………………………………………..3 Arduino IDE …… ...5 Објаснување на кодот…………………………………………………………………………………………..9 Поделба на пакети ……………………………………………………………………………………………………………….11 Користење на Serial.read() ………………………………………………………………………………………………………………………….13
Напредни белешки за конверзија… ....14
AN0007
Број 1.2
09
Промена на белешка 805
Страна 2 од 14
Поврзување на сензорот Овој лист со податоци го користи Arduino Mega како претходникampт.е. Ardunio Mega обезбедува повеќе од еден комуникациски порт, затоа комуникацискиот порт 1 се користи за комуникација со сензорот, а комуникацискиот порт 0 се користи за печатење на компјутерот.
Arduino користи 5V логички напон на високо ниво, додека Platinum Sensor користи 3.3V, па за да се спречи оштетување на сензорот, се користи волтаичен напон.tagМора да се користи делител. Предложените вредности за R1 и R2 се 4K7.
Слика 1: Го намалува волуменотtage до ниво на употребливост
Линијата за пренос на сензорот што оди до приемникот на Arduino не бара делител бидејќи 3.3V е прифатлив влез за Arduino.
За да се напојува сензорот, тој мора да биде поврзан на 5V и 0V. За да го направите ова, можете да ги користите пиновите на Arduino.
Откако ќе заврши ова, сензорот сега треба да ги има следниве пинови поврзани:
5v -> 5v Arduino пин
0v -> Arduino GND
Tx -> Arduino RX1
Rx -> Оди на излезот од делител на потенцијал. Влезот оди на Arduino Tx
AN0007
Број 1.2
09
Промена на белешка 805
Страна 3 од 14
Откако ќе заврши ова, вашиот Платинум сензор треба да биде поврзан како што е прикажано:
Слика 2: Сензорот е прикажан наопаку со адаптер за лемење
Ако користите Arduino со само еден комуникациски порт (како Arduino Uno), ќе мора да го поврзете со него, меѓутоа кога го користите серискиот монитор (прикажан подоцна), тој исто така ќе го прикаже хексадецималниот број што се пренесува.
AN0007
Број 1.2
09
Промена на белешка 805
Страна 4 од 14
Arduino IDE Одете на Arduino webстраницата и преземете ја најновата верзија на софтверот Arduino IDE. Откако ќе се инсталира, треба да го видите следниов екран:
Слика 3: Почетен екран на Arduino
Во паѓачкото мени со алатки изберете ја Arduino плочата, процесорот и портот што ги користите:
Слика 4: Изберете опции за плоча, процесор и порт
AN0007
Број 1.2
09
Промена на белешка 805
Страна 5 од 14
Копирај во овој примерокampкодот: void send_read_live_data_simple(); void receive_read_live_data_simple();
void setup() { Serial.begin(38400); Serial1.begin(38400);}}}
}
празнина јамка() { 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(){ додека (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print("|"); } Serial.println();
}
AN0007
Број 1.2
09
Промена на белешка 805
Страна 6 од 14
Слика 5: Код подготвен за прикачување
Кликнете на стрелката за да го прикачите кодот на Arduino. Откако Arduino ќе биде програмиран, отворете го серискиот монитор.
AN0007
Слика 6: Отворете го серискиот монитор
Број 1.2
09
Промена на белешка 805
Страна 7 од 14
Слика 7: Серискиот монитор го прикажува примениот пакет
AN0007
Број 1.2
09
Промена на белешка 805
Страна 8 од 14
Објаснување на кодот Arduino IDE користи C++ за програмирање на Arduino.
Оваа линија е декларација за напред. Ова се користи за да му се каже на микроконтролерот дека подолу во програмата ќе бидат повикани функциите `send_read_live_data_simple' и `receive_read_live_data_simple'.
Следна е функцијата за поставување. Овој код се извршува само еднаш при стартување. Ги стартува портите Serial0 и Serial1. Serial0 е она што се прикажува на екранот за сериски монитор. Serial1 е портата за комуникација со сензорот.
Ова е главната јамка, овој код се повторува повеќе пати. Читајќи ги имињата на функциите, можете да видите дека испраќа барање за читање на поедноставена верзија на структурата со податоци во живо. Потоа го чита приемниот порт за да го прочита одговорот. После ова, микроконтролерот чека 5000mS.
Оваа функција го запишува барањето за добивање на едноставна структура на податоци во живо во сериски порт 1. Како што претходно споменавме, ако имате само еден сериски порт, треба да го промените Serial1 во Serial. За да го видите целиот список на команди, погледнете го документот за протоколот за комуникации на Premier sensor. Еве го делот од документот што ви кажува што да напишете за оваа команда:
AN0007
Број 1.2
09
Промена на белешка 805
Страна 9 од 14
Оваа функција ја повторува функцијата за читање додека сè уште има податоци што треба да се примат од Platinum Sensor. Serial1.read() ги чита податоците од Serial1 кој е поврзан со сензорот и ги печати на Serial0 за да можат да се видат на серискиот монитор. Потоа се печати знакот `|' за да се раздели секој бајт што е примен за да биде појасен на серискиот монитор.
Откако ова ќе заврши, се запишува нова линија на серискиот монитор.
AN0007
Број 1.2
09
Промена на белешка 805
Страна 10 од 14
Преглед на пакети Сликите 8 и 9 го прикажуваат излезот на сериски декодер поврзан со линиите за прием и пренос.
Слика 8: Појдовен пакет
Слика 9: Дојдовен пакет
На сликите 10 и 11 се прикажани излезниот и влезниот хексадецимален број, соодветно, со колона што покажува за која команда станува збор.
Слика 10: Опис на излезниот пакет
AN0007
Број 1.2
09
Промена на белешка 805
Страна 11 од 14
Слика 11: Опис на дојдовниот пакет
Ве молиме имајте предвид дека отчитувањето на гасот е децимален број, а не цел број. Овој децимален број е во IEEE-754 формат, можете да користите онлајн конвертор како овој за да го конвертирате. Вредноста на гасот во овој случај покажува -250 (бидејќи во тој момент беше во режим на грешка).
AN0007
Број 1.2
09
Промена на белешка 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 // ова потоа добива ИЛИ, при што 0x34 прави 0x1234.
Друг начин да го направите ова е да ги ставите вредностите во низа, а потоа да ја конвертирате низата во саканиот тип:
AN0007
Број 1.2
09
Промена на белешка 805
Страна 13 од 14
карактерите се долги еден бајт, додека float е долг 4 бајти. Поради ова, ако направиме низа од 4 карактери со нашите вредности во неа и го промениме типот во float.
Во овој случај, readArray е покажувач кон char низа. (float*)readArray овој дел го претвора во покажувач кон float низа, а потоа се додава * на почетокот за да се добие вредноста на float низата.
Напредни белешки за конверзија
1. Serial.read() враќа int наместо char бидејќи грешките ќе вратат негативни вредности. Вашата програма треба да го провери ова.
2. uint8_t и uint16_t треба да се користат наместо char и int, соодветно, бидејќи овие типови немаат стандардна големина (на мојот компјутер int е 32 бита, додека на Arduino е 16 бита).
3. Комуникацискиот протокол содржи карактери исполнети со бајти (исто така познати како контролни карактери), ова е подетално објаснето во документот tds0045 Premier sensor Communications Protocol. Поради ова, прочитаниот едноставен пакет со податоци во живо повремено ќе биде поголем од очекуваното.
AN0007
Број 1.2
09
Промена на белешка 805
Страна 14 од 14
Документи / ресурси
![]() |
DYNAMENT AN0007 Arduino во Platinum COMM [pdf] Упатство за корисникот AN0007 Arduino до Platinum COMM, AN0007, Arduino до Platinum COMM, до Platinum COMM, Platinum COMM |