AN0007 Arduino nei Platinum COMM
“
Produkt ynformaasje
Spesifikaasjes
- Produktnamme: ARDUINO nei PLATINUM COMMS HELPDOKUMENT
- Makker: Dynament Limited
- Adres: HermitagYndustryterrein e Lane, Kings Mill Way,
Mansfield, Nottinghamshire, NG18 5ER, Feriene Keninkryk - Kontakt: Tel: 44 (0)1623 663636, E-post: sales@dynamment.com,
Webside: www.dynament.com - Útjefte: 1.2, Datum: 09/04/2025
Produkt Usage Ynstruksjes
De sensor ferbine
Dit datasheet brûkt de Arduino Mega as in foarbyldample. Ferbine as
folget:
- 5v -> 5v Arduino-pin
- 0v -> Arduino GND
- Tx -> Arduino RX1
- Rx -> Giet nei de útfier fan 'e potinsjeeldieler. De ynfier
giet nei Arduino Tx
Voltage Kompatibiliteit
De Arduino brûkt 5v logika heech, wylst de Platinum Sensor brûkt
3.3v. Brûk in folumetage dieler mei suggestjes foar R1 en R2 as
4K7 om skea oan 'e sensor te foarkommen.
Arduino IDE opset
- Download de nijste ferzje fan 'e Arduino IDE-software fan
de Arduino website. - Selektearje it Arduino-boerd, prosessor en poarte yn 'e ark
útklapmenu.
Koade uploade
- Kopiearje de opjûne eks.ampde koade yn 'e Arduino IDE.
- Upload de koade nei de Arduino troch op de pylk te klikken.
- Iepenje de seriële monitor om view gegevens oerdracht.
FAQ
F: Wat moat ik dwaan as ik in Arduino Uno haw mei mar ien kommunikaasje?
haven?
A: Ferbine de Platinum Sensor mei dy poarte. By it brûken fan de
seriële monitor, it sil ek de oerdroegen heksadesimale sjen litte.
"`
Applikaasjenotysje AN0007
ARDUINO nei PLATINUM COMMS HELPDOKUMINT
Dynament Limited
HermitagYndustryterrein e Lane Kings Mill Way Mansfield Nottinghamshire NG18 5ER Feriene Keninkryk. Tel: 44 (0)1623 663636
e-post: sales@dynamant.com www.dynamant.com
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 1 fan 14
Ynhâld
Dynament Limited ………………………………………………………………………………………………………….1 De sensor ferbine………………………………………………………………………………………………..3 Arduino IDE ……………………………………………………………………………………………………………………5 Koade-útlis………………………………………………………………………………………………..9 Pakketôfbraak ………………………………………………………………………………………………….11 Serial.read() brûke ………………………………………………………………………………………………….13
Avansearre konverzje-notysjes………………………………………………………………………….14
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 2 fan 14
De sensor ferbine Dit gegevensblêd brûkt de Arduino Mega as in foarbyldampDe Ardunio Mega biedt mear as ien kommunikaasjepoarte, dêrom wurdt kommunikaasjepoarte 1 brûkt om te kommunisearjen mei de sensor en kommunikaasjepoarte 0 wurdt brûkt om nei de PC te printsjen.
De Arduino brûkt 5v logika heech, wylst de Platinum Sensor 3.3v brûkt, dus om skea oan 'e sensor te foarkommen, is in folume ...tagDe dieler moat brûkt wurde. De suggestjes foar R1 en R2 binne 4K7.
Figuer 1: Ferleget it folumetage nei brûkber nivo
De sensor-transmisjeline dy't nei de Arduino-ûntfangst giet, hat gjin dieler nedich, om't 3.3V in akseptabele ynfier is foar de Arduino.
Om de sensor fan stroom te foarsjen moat er ferbûn wêze mei 5v en 0v. Om dit te dwaan kinne jo de pinnen op 'e Arduino brûke.
Nei't dit foltôge is, moat de sensor no de folgjende pinnen ferbûn hawwe:
5v -> 5v Arduino-pin
0v -> Arduino GND
Tx -> Arduino RX1
Rx -> Giet nei de útfier fan 'e potinsjeeldieler. De ynfier giet nei Arduino Tx
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 3 fan 14
Nei't dit foltôge is, moat jo Platinum Sensor ferbûn wêze lykas werjûn:
Figuer 2: Sensor wurdt op 'e kop werjûn mei in soldeeradapter
As jo in Arduino brûke mei mar ien kommunikaasjepoarte (lykas de Arduino Uno), moatte jo it dêrmei ferbine, mar as jo de seriële monitor brûke (letter werjûn) sil it ek de heksadesimale poarte sjen litte dy't oerdroegen wurdt.
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 4 fan 14
Arduino IDE Gean nei de Arduino webside en download de nijste ferzje fan 'e Arduino IDE-software. Sadree't it ynstalleare is, moatte jo it folgjende skerm sjen:
Figuer 3: Arduino thússkerm
Selektearje yn it útklapmenu ark it Arduino-boerd, prosessor en poarte dy't jo brûke:
Figuer 4: Selektearje opsjes foar board, prosessor en poarte
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 5 fan 14
Kopiearje yn dizze eksampde koade: 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() { wylst (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print("|"); } Serial.println();
}
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 6 fan 14
Figuer 5: Koade klear om te uploaden
Klik op de pylk om de koade nei de Arduino te uploaden. Nei't de Arduino programmearre is, iepenje de seriële monitor.
AN0007
Figuer 6: Iepenje de seriële monitor
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 7 fan 14
Figuer 7: De Seriële Montor lit it pakket sjen dat ûntfongen is
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 8 fan 14
Koade-útlis De Arduino IDE brûkt C++ om de Arduino te programmearjen.
Dizze rigel is in foarútferklearring. Dit wurdt brûkt om de mikrokontroller te fertellen dat fierderop yn it programma de funksje `send_read_live_data_simple' en de funksje `receive_read_live_data_simple' oproppen wurde sille.
Folgjende is de ynstellingsfunksje. Dizze koade wurdt mar ien kear útfierd by it opstarten. It start de Serial0- en Serial1-poarten. Serial0 is wat werjûn wurdt op it seriële monitorskerm. Serial1 is de poarte om mei de sensor te kommunisearjen.
Dit is de haadlus, dizze koade wurdt werhelle kearen werhelle. Jo kinne sjen troch de funksjenammen te lêzen dat it in fersyk stjoert om in ferienfâldige ferzje fan 'e live datastruktuer te lêzen. Dan lêst it de ûntfangstpoarte om it antwurd te lêzen. Hjirnei wachtet de mikrokontroller 5000mS.
Dizze funksje skriuwt it fersyk om de ienfâldige struktuer fan live gegevens nei seriële poarte 1 te krijen. Lykas earder neamd, as jo mar ien seriële poarte hawwe, moatte jo Serial1 feroarje nei Serial. Om de folsleine list mei kommando's te sjen, sjoch it Premier sensor Communications protocol-dokumint. Hjir is it diel fan it dokumint dat jo fertelt wat jo foar dit kommando skriuwe moatte:
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 9 fan 14
Dizze funksje herhellet de lêsfunksje wylst der noch gegevens ûntfongen wurde moatte fan 'e Platinum Sensor. Serial1.read() lêst de gegevens fan Serial1 dy't ferbûn is mei de sensor en print it op Serial0 sadat it te sjen is op 'e seriële monitor. It karakter `|' wurdt dan printe om elke byte dy't ûntfongen wurdt op te dielen om it dúdliker te meitsjen op 'e seriële monitor.
Nei't dit klear is, skriuwt it in nije rigel nei de seriële monitor.
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 10 fan 14
Pakketferdieling Figuer 8 en 9 litte de útfier sjen fan in seriële dekoder dy't ferbûn is mei de ûntfangst- en stjoerlinen.
Figuer 8: Utgeande pakket
Figuer 9: Ynkommende pakket
Figuer 10 en 11 litte respektivelik de útgeande en ynkommende heksadesimale sjen mei in kolom dy't oanjout hokker kommando it is.
Figuer 10: Beskriuwing fan útgeande pakketten
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 11 fan 14
Figuer 11: Beskriuwing fan ynkommende pakketten
Tink derom dat de gaswearde in desimaal is, gjin hiel getal. Dizze desimaal is yn IEEE-754-formaat, jo kinne in online converter lykas dizze brûke om it te konvertearjen. De gaswearde yn dit gefal lit -250 sjen (om't it op dat stuit yn flatermodus wie).
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 12 fan 14
Mei help fan Serial.read()
De foarige koade printe allinich de ûntfongen gegevens nei de seriële monitor, as jo de gegevens yn fariabelen bewarje wolle, moatte jo fierdere ferwurking dwaan. It pakket dat jo ûntfange wurdt opdield yn bytes, dêrom moatte jo guon fan dizze gegevens yn fariabelen gearfoegje. Serial1.Read() jout in int werom (wat foar Arduino 16 bits is), mar allinich de earste 8 bits wurde brûkt. Hjirtroch kinne wy it kopiearje nei in lytser gegevenstype dat mar 8 bits is, yn dit gefal sil ik char brûke.
foar de pakketten dy't mar in byte lang binne, wurket dit prima:
Foar de pakketten dy't 2 bytes of 4 bytes lang binne, moatte jo de gegevens oaninoar keppele.
Jo kinne dit op in protte ferskillende manieren dwaan, hjir sil ik de gegevens nei lofts ferskowe en dan OF it.
Mei dizze koade, as readByte1 0x34 is en readByte2 0x12 is.
(int)lêsByte2
// dit konvertearret de 0x12 nei 0x0012.
(int)lêsByte2 << 8
// dit ferskowt de bits mei in byte, wêrtroch it 0x1200 wurdt.
(int)lêsByte2 << 8 | lêsByte1 // dit wurdt dan OF-bewurke, wêrby't 0x34 0x1234 makket.
In oare manier om dit te dwaan soe wêze om de wearden yn in array te setten en dan de array te konvertearjen nei it type dat jo wolle:
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 13 fan 14
Tekens binne in byte lang, wylst float 4 bytes lang is. Dêrom, as wy in array fan 4 tekens meitsje mei ús wearden dêryn en it type feroarje nei float.
Yn dit gefal is readArray in pointer nei in char array. (float*)readArray dit diel castet it nei in pointer nei in float en dan wurdt in * tafoege oan 'e foarkant om de wearde fan' e float te krijen.
Avansearre konverzje-notysjes
1. Serial.read() jout int werom ynstee fan char, om't flaters negative wearden weromjaan. Jo programma moat hjirfoar kontrolearje.
2. uint8_t en uint16_t moatte brûkt wurde yn plak fan respektivelik char en int, om't dizze typen gjin standertgrutte hawwe (op myn PC is int 32 bits, wylst it op 'e Arduino 16 bits is).
3. It kommunikaasjeprotokol befettet byte-gevulde tekens (ek wol kontrôletekens neamd), dit wurdt yn mear detail útlein yn it tds0045 Premier sensor Communications protocol-dokumint. Dêrtroch sil it ienfâldige pakket foar lêzen live gegevens soms grutter wêze as ferwachte.
AN0007
Útjefte 1.2
09/04/2025
Wizigingsnotysje 805
Side 14 fan 14
Dokuminten / Resources
![]() |
DYNAMENT AN0007 Arduino nei Platinum COMM [pdf] Brûkersgids AN0007 Arduino nei Platinum COMM, AN0007, Arduino nei Platinum COMM, nei Platinum COMM, Platinum COMM |