Кіраўніцтва карыстальніка DYNAMENT AN0007 для пераходу паміж Arduino і Platinum COMM

AN0007 Arduino - Platinum COMM

Інфармацыя аб прадукце

Тэхнічныя характарыстыкі

  • Назва прадукту: ДАПАМОЖНЫ ДАКУМЕНТ ПА СУВЯЗІ ARDUINO з 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ле. Падключыцеся як
вынікае:

  • 5 В -> 5 В кантакт Arduino
  • 0 В -> Зазямленне Arduino
  • Перадача -> Arduino RX1
  • Rx -> Падаецца на выхад дзельніка напружання. Уваход
    ідзе ў Arduino Tx

тtage Сумяшчальнасць

Arduino выкарыстоўвае лагічны ўзровень 5 В, а Platinum Sensor...
3.3 В. Выкарыстоўвайце аб'ёмtagдзельнік з прапанаванымі значэннямі для R1 і R2, як
4K7, каб прадухіліць пашкоджанне датчыка.

Налада Arduino IDE

  1. Спампуйце найноўшую версію праграмнага забеспячэння Arduino IDE з
    Ардуіна webсайт.
  2. Выберыце плату Arduino, працэсар і порт у інструментах
    выпадальнае меню.

Загрузка кода

  1. Скапіюйце прадстаўлены прыкладampувядзіце код у IDE Arduino.
  2. Загрузіце код у Arduino, націснуўшы на стрэлку.
  3. Адкрыйце манітор паслядоўнага порта, каб view перадача даных.

FAQ

Пытанне: Што рабіць, калі ў мяне ёсць Arduino Uno толькі з адным камунікацыйным модулем?
порт?

A: Падключыце плацінавы датчык да гэтага порта. Пры выкарыстанні
манітор серыйнага порта, ён таксама пакажа перададзены шаснаццатковы код.

“`

Заўвага па ўжыванні AN0007
ДАПАМОЖНЫ ДАКУМЕНТ ПА ПЕРАХОДЗЕ З ARDUINO Ў PLATINUM

Dynament Limited
ЭрміtagПрамысловая зона «e Lane», Кінгс-Міл-Уэй, Мэнсфілд, Нотынгемшыр, 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 Megaampг.зн. Ardunio Mega мае больш за адзін камунікацыйны порт, таму камунікацыйны порт 1 выкарыстоўваецца для сувязі з датчыкам, а камунікацыйны порт 0 — для друку на ПК.
Arduino выкарыстоўвае лагічнае напружанне 5 В, у той час як Platinum Sensor выкарыстоўвае 3.3 В, таму, каб прадухіліць пашкоджанне датчыка, неабходна...tagНеабходна выкарыстоўваць электронны дзельнік. Рэкамендаваныя значэнні для R1 і R2 — 4K7.

Малюнак 1: Зніжае аб'ёмtagда ўзроўню, прыдатнага для выкарыстання
Лінія перадачы датчыка, якая ідзе на прыёмнік Arduino, не патрабуе дзельніка, бо 3.3 В з'яўляецца прымальным уваходным напружаннем для Arduino.
Каб падключыць датчык да сілкавання, ён павінен быць падключаны да 5 В і 0 В. Для гэтага можна выкарыстоўваць кантакты на Arduino.
Пасля завяршэння гэтага датчык павінен мець падключаныя наступныя кантакты:
5 В -> 5 В кантакт Arduino
0 В -> Зазямленне Arduino
Перадача -> Arduino RX1
Rx -> Падаецца на выхад дзельніка напружання. Уваход падаецца на перадатчык Arduino.

AN0007

Выпуск 1.2

09г

Зменная заўвага 805

Старонка 3 з 14

Пасля гэтага ваш датчык Platinum Sensor павінен быць падключаны, як паказана на малюнку:
Малюнак 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();
несапраўдная ўстаноўка() { Serial.begin(38400); Serial1.begin(38400);
}
несапраўдны цыкл() { 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);
}
void receive_read_live_data_simple(){ while (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 — гэта порт для сувязі з датчыкам.
Гэта асноўны цыкл, гэты код паўтараецца паўторна. Чытаючы назвы функцый, вы можаце бачыць, што ён адпраўляе запыт на чытанне спрошчанай версіі структуры жывых даных. Затым ён чытае порт прыёму, каб прачытаць адказ. Пасля гэтага мікракантролер чакае 5000 мс.
Гэтая функцыя запісвае запыт на атрыманне просты структуры жывых дадзеных у паслядоўны порт 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 байты вам трэба будзе аб'яднаць дадзеныя.

Вы можаце зрабіць гэта рознымі спосабамі, тут я зрушу дадзеныя налева, а потым зраблю OR.

Выкарыстоўваючы гэты код, калі readByte1 роўны 0x34, а readByte2 роўны 0x12.

(цэлае)чытаннеБайта2

// гэта пераўтварае 0x12 у 0x0012.

(цэлае)чытаннеБайта2 << 8

// гэта зрушвае біты на адзін байт, робячы яго 0x1200.

(int)readByte2 << 8 | readByte1 // гэта аб'ядноўваецца з дапамогай аперацыі "АБО", дзе 0x34 пераўтворыцца ў 0x1234.

Іншы спосаб зрабіць гэта — змясціць значэнні ў масіў, а затым пераўтварыць масіў у патрэбны тып:

AN0007

Выпуск 1.2

09г

Зменная заўвага 805

Старонка 13 з 14

Значэнні тыпу char маюць даўжыню адзін байт, а тып float — 4 байты. Таму, калі мы ствараем масіў з 4 сімвалаў з нашымі значэннямі і змяняем тып на тып float.
У гэтым выпадку readArray — гэта ўказальнік на масіў сімвалаў. (float*)readArray гэтая частка пераўтварае яго ў ўказальнік на лік з плаваючай кропкай, а затым да пачатку дадаецца *, каб атрымаць значэнне ліку з плаваючай кропкай.
Пашыраныя заўвагі па пераўтварэнні
1. Serial.read() вяртае цэлы лік замест char, бо памылкі будуць вяртаць адмоўныя значэнні. Ваша праграма павінна гэта праверыць.
2. Замест тыпаў char і int варта выкарыстоўваць uint8_t і uint16_t адпаведна, бо гэтыя тыпы не маюць стандартнага памеру (на маім ПК int мае 32 біты, а на Arduino — 16 бітаў).
3. Пратакол сувязі ўтрымлівае сімвалы, запоўненыя байтамі (таксама вядомыя як кіруючыя сімвалы). Больш падрабязна гэта тлумачыцца ў дакуменце па пратаколе сувязі датчыка Premier tds0045. З-за гэтага просты пакет дадзеных для чытання ў рэжыме рэальнага часу часам будзе большым за чаканы.

AN0007

Выпуск 1.2

09г

Зменная заўвага 805

Старонка 14 з 14

Дакументы / Рэсурсы

DYNAMENT AN0007 Пераходнік паміж Arduino і Platinum [pdfКіраўніцтва карыстальніка
AN0007 Arduino ў Platinum COMM, AN0007, Arduino ў Platinum COMM, да Platinum COMM, Platinum COMM

Спасылкі

Пакінуць каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаны *