AN0007 Arduino à Platinum COMM
“
Informazione di u produttu
Specificazioni
- Nome di u produttu: ARDUINO à PLATINUM COMMS DOCUMENTU D'AIUTU
- Produttore: Dynament Limited
- Indirizzu: HermitagZona Industriale di e Lane, Kings Mill Way,
Mansfield, Nottinghamshire, NG18 5ER, Regnu Unitu - Cuntattu: Tel: 44 (0)1623 663636, Email: sales@dynament.com,
Websitu: www.dynament.com - Emissione: 1.2, Data: 09/04/2025
Istruzzioni per l'usu di u produttu
Cunnette u Sensore
Questa scheda tecnica usa l'Arduino Mega cum'è un ex.ampvale à dì. Cunnette cum'è
seguita:
- 5v -> pin Arduino 5v
- 0v -> Arduino GND
- Tx -> Arduino RX1
- Rx -> Va à l'uscita di u divisore di putenziale. L'entrata
va à Arduino Tx
Voltage Cumpatibilità
L'Arduino usa 5v logicu altu mentre chì u Sensore di Platinum usa
3.3 V. Aduprate un vulumetagdivisore e cù valori suggeriti per R1 è R2 cum'è
4K7 per impedisce danni à u Sensore.
Configurazione IDE Arduino
- Scaricate l'ultima versione di u software Arduino IDE da
l'Arduino websitu. - Selezziunate a scheda Arduino, u processore è u portu in l'arnesi
menu a discesa.
Caricamentu di codice
- Cupiate l'esempiu furnituampu codice in l'IDE di Arduino.
- Caricate u codice nant'à l'Arduino clicchendu nant'à a freccia.
- Apri u monitor seriale per view trasmissioni di dati.
FAQ
D: Chì devu fà s'ellu aghju un Arduino Uno cù una sola cumunicazione?
portu?
A: Cunnette u Sensore di Platinu à quellu portu. Quandu si usa u
monitor seriale, mostrerà ancu l'esagono trasmessu.
"'
Nota d'applicazione AN0007
DOCUMENTU D'AIUTU DI COMUNICAZIONE DA ARDUINO À PLATINUM
Dynament Limited
HermitagZona Industriale di e Lane Kings Mill Way Mansfield Nottinghamshire NG18 5ER Regnu Unitu. Tel: 44 (0)1623 663636
email: sales@dynament.com www.dynament.com
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 1 di 14
Cuntenuti
Dynament Limited …………………………………………………………………………………………………….1 Cunnessione di u Sensore……………………………………………………………………………………..3 Arduino IDE ………………………………………………………………………………………………5 Spiegazione di u Codice…………………………………………………………………………………………..9 Ripartizione di i Pacchetti ………………………………………………………………………………………….11 Utilizendu Serial.read() …………………………………………………………………………………….13
Note di cunversione avanzate………………………………………………………………………………….14
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 2 di 14
Cunnessione di u sensore Questa scheda tecnica usa l'Arduino Mega cum'è un ex.ampL'Ardunio Mega furnisce più di un portu di cumunicazione, dunque u portu di cumunicazione 1 hè adupratu per cumunicà cù u sensore è u portu di cumunicazione 0 hè adupratu per stampà à u PC.
L'Arduino usa 5v logicu altu mentre chì u Sensore di Platinum usa 3.3v, dunque per impedisce danni à u Sensore un vulume.tagDeve esse adupratu u divisore. I valori suggeriti per R1 è R2 sò 4K7.
Figura 1: Diminuisce u vulumetage à u livellu utilizabile
A linea di trasmissione di u sensore chì và à u ricevitore Arduino ùn hà micca bisognu di un divisore postu chì 3.3v hè un ingressu accettabile per l'Arduino.
Per alimentà u Sensore, deve esse cunnessu à 5v è 0v. Per fà questu pudete aduprà i pin di l'Arduino.
Dopu chì questu hè cumpletu, u sensore deve avà avè i seguenti pin cunnessi:
5v -> pin Arduino 5v
0v -> Arduino GND
Tx -> Arduino RX1
Rx -> Va à l'uscita di u divisore di putenziale. L'entrata và à Arduino Tx
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 3 di 14
Dopu chì questu hè cumpletu, u vostru Sensore di Platinu deve esse cunnessu cum'è mostratu:
Figura 2: U sensore hè mostratu à capu in giù cù un adattatore di saldatura
Sè vo aduprate un Arduino cù un solu portu di cumunicazione (cum'è l'Arduino Uno) duverete cunnettelu à quellu, ma quandu aduprate u monitor seriale (mustratu dopu) mostrerà ancu l'esadecimale chì hè trasmessu.
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 4 di 14
Andate à l'IDE Arduino websitu è scaricate a versione più recente di u software Arduino IDE. Una volta installatu, duvete vede a schermata seguente:
Figura 3: Schermata iniziale di Arduino
In u menù a tendina di l'arnesi, selezziunate a scheda Arduino, u processore è u portu chì utilizate:
Figura 4: Selezziunate l'opzioni di a scheda, di u processore è di u portu
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 5 di 14
Cupià in questu exampu codice: 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 riceve_lettura_data_live_simple(){ mentre (Serial1.available()) { Serial.print(Serial1.lettura(), HEX); Serial.print("|"); } Serial.println();
}
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 6 di 14
Figura 5: Codice prontu à esse caricatu
Cliccate nant'à a freccia per caricà u codice nant'à l'Arduino. Dopu chì l'Arduino hè statu prugrammatu, aprite u monitor seriale.
AN0007
Figura 6: Apertura di u Monitor Seriale
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 7 di 14
Figura 7: U Serial Montor mostra u pacchettu chì hè statu ricevutu
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 8 di 14
Spiegazione di u codice L'IDE Arduino usa C++ per programmà l'Arduino.
Questa linea hè una dichjarazione in avanti. Questu hè adupratu per dì à u Microcontrollore chì più in là in u prugramma saranu chjamate e funzioni `send_read_live_data_simple' è `receive_read_live_data_simple'.
Dopu vene a funzione di cunfigurazione. Stu codice hè eseguitu solu una volta à l'avviu. Avvia i porti Serial0 è Serial1. Serial0 hè ciò chì hè mostratu in u schermu di u monitor seriale. Serial1 hè u portu per cumunicà cù u sensore.
Questu hè u ciclu principale, stu codice hè ripetutu ripetutamente. Pudete vede leghjendu i nomi di e funzioni chì manda una dumanda per leghje una versione simplificata di a struttura di dati in diretta. Dopu legge u portu di ricezione per leghje a risposta. Dopu questu, u microcontrollore aspetta 5000 mS.
Sta funzione scrive a dumanda per ottene i dati in diretta in una struttura simplice à u portu seriale 1. Cum'è digià mintuvatu, sè avete solu un portu seriale, duvete cambià Serial1 in Serial. Per vede a lista cumpleta di cumandamenti, riferitevi à u documentu di u protocolu di cumunicazione di i sensori Premier. Eccu a parte di u documentu chì vi dice ciò chì scrive per questu cumandamentu:
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 9 di 14
Sta funzione esegue u ciclu di a funzione di lettura mentre ci sò sempre dati da riceve da u Sensore di Platinu. Serial1.read() legge i dati da Serial1 chì hè cunnessu à u sensore è li stampa nantu à Serial0 per pudè esse visti nantu à u monitor seriale. U caratteru `|` hè tandu stampatu per rompe ogni byte ricevutu per rende lu più chjaru nantu à u monitor seriale.
Dopu chì questu hè cumpletu, scrive una nova linea in u monitor seriale.
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 10 di 14
Ripartizione di i pacchetti E figure 8 è 9 mostranu l'output di un decodificatore seriale cunnessu à e linee di ricezione è trasmissione.
Figura 8: Pacchettu in uscita
Figura 9: Pacchettu entrante
E figure 10 è 11 mostranu rispettivamente l'esagono in uscita è in entrata cù una colonna chì mostra di quale cumandamentu si tratta.
Figura 10: Descrizzione di u pacchettu in uscita
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 11 di 14
Figura 11: Descrizzione di u pacchettu entrante
Attenti, a lettura di u gasu hè un decimale micca un numeru interu. Stu decimale hè in furmatu IEEE-754, pudete aduprà un cunvertitore in linea cum'è questu per cunvertiscelu. U valore di u gasu in questu casu mostra -250 (postu chì era in modu d'errore à quellu mumentu).
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 12 di 14
Utilizendu Serial.read()
U codice precedente stampava solu i dati ricevuti à u monitor seriale, sè vo vulete salvà i dati in variabili duverete fà qualchì elaborazione ulteriore. U pacchettu chì ricevete hè divisu in byte, per via di questu duverete concatenà alcuni di sti dati in variabili. Serial1.Read() restituisce un int (chì per Arduino hè di 16 bit), tuttavia, solu i primi 8 bit sò aduprati. Per via di questu pudemu copiallu in un tipu di dati più chjucu chì hè solu di 8 bit, in questu casu adupreraghju char.
per i pacchetti chì sò longhi solu un byte, questu funziona bè:
Per i pacchetti chì sò longhi 2 byte o 4 byte, duverete concatenà i dati.
Pudete fà questu in parechji modi diversi, quì ciò chì faraghju hè di spustà à manca i dati è dopu OR.
Aduprendu stu codice, se readByte1 hè 0x34 è readByte2 hè 0x12.
(int)leghjeByte2
// questu cunverte u 0x12 in 0x0012.
(int)leghjeByte2 << 8
// questu sposta i bit di un byte, dendu u valore 0x1200.
(int)readByte2 << 8 | readByte1 // questu hè tandu sottumessu à un OR, cù 0x34 chì dà 0x1234.
Un altru modu per fà questu seria di mette i valori in un array è poi cunvertisce l'array in u tipu desideratu:
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 13 di 14
I caratteri sò longhi un byte, mentre chì float hè longu 4 byte. Per via di questu, se facemu un array di 4 caratteri cù i nostri valori è cambiamu u tipu in float.
In questu casu, readArray hè un puntatore à un array di caratteri. (float*)readArray sta parte u cunverte in un puntatore à un float è dopu un * hè aghjuntu à u fronte per ottene u valore di u float.
Note di cunversione avanzate
1. Serial.read() restituisce int invece di char perchè l'errori restituiranu valori negativi. U vostru prugramma duveria verificà questu.
2. uint8_t è uint16_t devenu esse aduprati in locu di char è int rispettivamente, postu chì sti tipi ùn anu micca una dimensione standard (nantu à u mo PC int hè 32 bit mentre chì nantu à l'Arduino hè 16 bit).
3. U protocolu di cumunicazione cuntene caratteri riempiti di byte (cunnisciuti ancu cum'è caratteri di cuntrollu), questu hè spiegatu in più dettagliu in u documentu di u protocolu di cumunicazione di u sensore Premier tds0045. Per via di questu, u pacchettu simplice di dati in diretta letti serà à volte più grande di ciò chì era previstu.
AN0007
Emissione 1.2
09/04/2025
Nota di cambiamentu 805
Pagina 14 di 14
Documenti / Risorse
![]() |
DYNAMENT AN0007 Arduino à Platinum COMM [pdfGuida di l'utente AN0007 Arduino à Platinum COMM, AN0007, Arduino à Platinum COMM, à Platinum COMM, Platinum COMM |