DYNAMENT AN0007 Arduino-аас Platinum COMM хэрэглэгчийн гарын авлага

AN0007 Arduino-г Платинум COMM болгон

Бүтээгдэхүүний мэдээлэл

Үзүүлэлтүүд

  • Бүтээгдэхүүний нэр: ARDUINO-аас PLATINUM COMMS ТУСЛАМЖИЙН БАРИМТ БИЧИГ
  • Үйлдвэрлэгч: Dynament Limited
  • Хаяг: Хермиtage Lane Industrial Estate, Kings Mill Way,
    Мансфилд, Ноттингемшир, NG18 5ER, Их Британи
  • Холбоо барих: Утас: 44 (0)1623 663636, Имэйл: sales@dynament.com,
    Webсайт: www.dynament.com
  • Дугаар: 1.2, Огноо: 09-04-2025

Бүтээгдэхүүнийг ашиглах заавар

Мэдрэгчийг холбох

Энэхүү мэдээллийн хуудас нь Arduino Mega-г хуучин загвар болгон ашигладагample. байдлаар холбогдоно уу
дараах:

  • 5v -> 5v Arduino зүү
  • 0v -> Arduino GND
  • Tx -> Arduino RX1
  • Rx -> Боломжит хуваагчийн гаралт руу очно. оролт
    Arduino Tx руу очно

Ботьtagд нийцтэй байдал

Ардуино нь 5V өндөр логикийг ашигладаг бол Платинум мэдрэгч ашигладаг
3.3v. Боть ашиглахtagR1 ба R2-д санал болгож буй утгууд бүхий e хуваагч
Мэдрэгчийг гэмтээхээс сэргийлж 4K7.

Arduino IDE тохиргоо

  1. Arduino IDE програмын хамгийн сүүлийн хувилбарыг эндээс татаж авна уу
    Arduino webсайт.
  2. Хэрэгслүүд дотроос Arduino самбар, процессор, портыг сонгоно уу
    унадаг цэс.

Код байршуулах

  1. Өгөгдсөн эксийг хуулна ууampкодыг Arduino IDE-д оруулна.
  2. Сум дээр дарж кодыг Arduino руу оруулна уу.
  3. Цуваа дэлгэцийг нээнэ үү view өгөгдөл дамжуулах.

Түгээмэл асуултууд

Асуулт: Хэрэв надад зөвхөн нэг холбоо бүхий Arduino Uno байгаа бол би яах ёстой вэ?
порт?

Х: Платинум мэдрэгчийг тэр порт руу холбоно уу. -ийг ашиглах үед
цуваа монитор, энэ нь мөн дамжуулагдсан зургаан өнцөгтийг харуулах болно.

“`

Хэрэглээний тэмдэглэл AN0007
ARDUINO-оос PLATINUM COMMS ТУСЛАМЖИЙН БАРИМТ БИЧИГ

Dynament Limited
Гермиtage Lane Industrial Estate Kings Mill Way Mansfield Nottinghamshire NG18 5ER UK. Утас: 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() ашиглах
Нарийвчилсан хөрвүүлэлтийн тэмдэглэл……………………………………………………………………………….14

AN0007

1.2-р асуудал

09/04/2025

Тайлбар 805-г өөрчлөх

2 хуудасны 14-р хуудас

Мэдрэгчийг холбох Энэхүү мэдээллийн хуудас нь Arduino Mega-г жишээ болгон ашигладагample. Ardunio Mega нь нэгээс олон холбооны портоор хангадаг тул холбооны порт 1 нь мэдрэгчтэй холбогдоход, 0-р комм порт нь компьютерт хэвлэхэд ашиглагддаг.
Arduino нь 5V өндөр логикийг ашигладаг бол Платинум мэдрэгч нь 3.3V ашигладаг тул мэдрэгчийг гэмтээхгүйн тулд a vol.tage хуваагчийг ашиглах ёстой. R1 ба R2-д санал болгож буй утга нь 4K7 байна.

Зураг 1: Эзлэхүүнийг бууруулдагtage ашиглах боломжтой түвшинд
3.3v нь Arduino-д хүлээн зөвшөөрөгдсөн оролт учраас Arduino хүлээн авагч руу очих мэдрэгч дамжуулах шугамд хуваагч хэрэггүй.
Мэдрэгчийг тэжээхийн тулд 5V ба 0V-д холбогдсон байх ёстой. Үүнийг хийхийн тулд та 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-р хуудас

Энэ экс-д хуулахample код: хүчингүй илгээх_унших_шууд_өгөгдлийн_энгийн(); хүлээн авах_шууд_мэдэгдэл_энгийн_хүчингүй();
хүчингүй тохиргоо() { Serial.begin(38400); Serial1.begin(38400);
}
хүчингүй давталт() { send_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);
}
хүлээн авах_унших_амьд_өгөгдлийн_энгийн () хүчингүй бол (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 нь Arduino-г програмчлахдаа C++ хэлийг ашигладаг.
Энэ мөр нь урагшлах мэдэгдэл юм. Энэ нь микроконтроллерт программын доод хэсэгт `send_read_live_data_simple' функц болон 'receive_read_live_data_simple' функцийг дуудах болно гэдгийг хэлэхэд хэрэглэгддэг.
Дараагийнх нь тохиргооны функц юм. Энэ кодыг эхлүүлэх үед зөвхөн нэг удаа ажиллуулна. Энэ нь Serial0 болон Serial1 портуудыг эхлүүлнэ. Serial0 нь цуваа дэлгэцийн дэлгэц дээр харагдаж байгаа зүйл юм. Serial1 нь мэдрэгчтэй холбогдох порт юм.
Энэ бол гол гогцоо бөгөөд энэ код дахин давтагдах болно. Функцийн нэрийг уншаад шууд өгөгдлийн бүтцийн хялбаршуулсан хувилбарыг унших хүсэлт илгээж байгааг харж болно. Дараа нь хариуг уншихын тулд хүлээн авах портыг уншина. Үүний дараа микроконтроллер 5000 мС хүлээнэ.
Энэ функц нь шууд өгөгдлийн энгийн бүтцийг цуваа порт 1 рүү оруулах хүсэлтийг бичдэг. Өмнө дурьдсанчлан хэрэв танд зөвхөн нэг цуваа порт байгаа бол Serial1-ийг Цуврал болгон өөрчлөх хэрэгтэй. Командуудын бүрэн жагсаалтыг харахын тулд Premier sensor Communications протоколын баримт бичгийг үзнэ үү. Энэ тушаалд юу бичихийг зааж өгсөн баримт бичгийн хэсэг энд байна:

AN0007

1.2-р асуудал

09/04/2025

Тайлбар 805-г өөрчлөх

9 хуудасны 14-р хуудас

Энэ функц нь Платинум мэдрэгчээс хүлээн авах өгөгдөл хэвээр байх үед унших функцийг давтдаг. 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() нь int-г буцаана (энэ нь Arduino-д 16 бит), гэхдээ зөвхөн эхний 8 битийг ашигладаг. Үүний улмаас бид үүнийг ердөө 8 битийн жижиг өгөгдлийн төрөл болгон хуулж болно, энэ тохиолдолд би char ашиглах болно.
Зөвхөн нэг байт урттай пакетуудын хувьд энэ нь сайн ажилладаг:
2 байт эсвэл 4 байт урттай пакетуудын хувьд та өгөгдлийг нэгтгэх шаардлагатай болно.

Та үүнийг маш олон янзаар хийж болно, энд миний хийх зүйл бол өгөгдлийг зүүн тийш шилжүүлж, дараа нь ЭСВЭЛ.

Хэрэв readByte1 нь 0x34, readByte2 нь 0x12 бол энэ кодыг ашиглана.

(int)readByte2

// энэ нь 0x12-г 0x0012 болгон хувиргадаг.

(int)readByte2 << 8

// энэ нь битүүдийг байтаар шилжүүлж, 0x1200 болгоно.

(int)readByte2 << 8 | readByte1 // энэ нь дараа нь OR'ed болж, 0x34 нь 0x1234 болгодог.

Үүнийг хийх өөр нэг арга бол утгуудыг массив болгон оруулаад дараа нь массивыг хүссэн төрөл болгон хувиргах явдал юм.

AN0007

1.2-р асуудал

09/04/2025

Тайлбар 805-г өөрчлөх

13 хуудасны 14-р хуудас

тэмдэгтүүд нь байт, хөвөгч нь 4 байт урттай. Үүний улмаас бид 4 тэмдэгтээс бүрдэх массивыг өөрийн утгыг агуулсан массив хийж, төрлийг хөвөгч болгон өөрчилвөл.
Энэ тохиолдолд readArray нь тэмдэгт массивын заагч юм. (float*)readArray энэ хэсэг нь үүнийг хөвөгч рүү заагч руу шилжүүлж, дараа нь *-г урд талд нь нэмж, хөвөх утгыг авна.
Нарийвчилсан хөрвүүлэлтийн тэмдэглэл
1. Алдаа сөрөг утгыг буцаадаг тул Serial.read() char-ын оронд int-г буцаана. Таны програм үүнийг шалгах ёстой.
2. char болон int-ийн оронд uint8_t болон uint16_t-г тус тус ашиглах хэрэгтэй, учир нь эдгээр төрлүүд стандарт хэмжээтэй байдаггүй (миний компьютер дээр int нь 32 бит байхад Arduino дээр 16 бит байдаг).
3. Comms протокол нь байт чихмэл тэмдэгтүүдийг (мөн хяналтын тэмдэгт гэж нэрлэдэг) агуулдаг бөгөөд үүнийг tds0045 Premier sensor Communications протоколын баримт бичигт илүү дэлгэрэнгүй тайлбарласан болно. Ийм учраас уншдаг шууд өгөгдлийн энгийн багц нь заримдаа хүлээгдэж байснаас том байх болно.

AN0007

1.2-р асуудал

09/04/2025

Тайлбар 805-г өөрчлөх

14 хуудасны 14-р хуудас

Баримт бичиг / нөөц

DYNAMENT AN0007 Arduino-г Platinum COMM болгон [pdf] Хэрэглэгчийн гарын авлага
AN0007 Arduino-оос Платинум COMM, AN0007, Arduino-оос Платинум COMM, Platinum COMM, Platinum COMM

Лавлагаа

Сэтгэгдэл үлдээгээрэй

Таны имэйл хаягийг нийтлэхгүй. Шаардлагатай талбаруудыг тэмдэглэсэн *