Uporabniški priročnik za DYNAMENT AN0007 Arduino v Platinum COMM

AN0007 Arduino v Platinum COMM

Informacije o izdelku

Specifikacije

  • Ime izdelka: ARDUINO v PLATINUM COMMS POMOČNI DOKUMENT
  • Proizvajalec: Dynament Limited
  • Naslov: HermitagIndustrijska cona e Lane, Kings Mill Way,
    Mansfield, Nottinghamshire, NG18 5ER, Združeno kraljestvo
  • Kontakt: Tel.: 44 (0)1623 663636, E-pošta: sales@dynament.com,
    Webspletna stran: www.dynament.com
  • Izdaja: 1.2, Datum: 09

Navodila za uporabo izdelka

Priključitev senzorja

Ta podatkovni list uporablja Arduino Mega kot primerampPovežite se kot
sledi:

  • 5v -> 5v Arduino pin
  • 0v -> Arduino GND
  • Oddajnik -> Arduino RX1
  • Rx -> Gre na izhod delilnika napetosti. Vhod
    gre na Arduino v Teksasu

voltage Združljivost

Arduino uporablja 5V logično visoko napetost, medtem ko Platinum Sensor uporablja
3.3 V. Uporabite vol.tagdelilnik s predlaganimi vrednostmi za R1 in R2 kot
4K7, da preprečite poškodbe senzorja.

Nastavitev Arduino IDE

  1. Prenesite najnovejšo različico programske opreme Arduino IDE z
    Arduino webmesto.
  2. V orodjih izberite ploščo Arduino, procesor in vrata
    spustni meni.

Nalaganje kode

  1. Kopirajte priloženo datoteko exampvnesite kodo v Arduino IDE.
  2. Kodo naložite na Arduino s klikom na puščico.
  3. Odprite serijski monitor za view prenos podatkov.

pogosta vprašanja

V: Kaj naj storim, če imam Arduino Uno samo z eno komunikacijsko kartico?
pristanišče?

A: Priključite platinasti senzor na ta vrata. Pri uporabi
serijski monitor, bo prikazal tudi poslano šestnajstiško kodo.

“`

Opomba o uporabi AN0007
DOKUMENT POMOČI ZA KOMUNIKACIJO ARDUINO V PLATINUM

Dynament Limited
HermitagIndustrijska cona e Lane, Kings Mill Way, Mansfield, Nottinghamshire, NG18 5ER, Združeno kraljestvo. Tel.: +44 (0)1623 663636
e-pošta: sales@dynament.com www.dynament.com

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 1 od 14

Vsebina
Dynament Limited …………………………………………………………………………………………………….1 Priključitev senzorja……………………………………………………………………………………..3 Arduino IDE …… ...5 Razlaga kode……………………………………………………………………………………………………..9 Razčlenitev paketov ……………………………………………………………………………………………………………….11 Uporaba Serial.read() ……………………………………………………………………………………………………….13
Napredne opombe o pretvorbi… ....14

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 2 od 14

Priključitev senzorja Ta podatkovni list uporablja Arduino Mega kot npr.ampArdunio Mega ponuja več kot en komunikacijski vhod, zato se komunikacijski vhod 1 uporablja za komunikacijo s senzorjem, komunikacijski vhod 0 pa za tiskanje na računalnik.
Arduino uporablja 5V logično visoko napetost, medtem ko Platinum senzor uporablja 3.3V, zato da preprečite poškodbe senzorja, je potrebna napetost.tagUporabiti je treba delilnik. Predlagane vrednosti za R1 in R2 so 4K7.

Slika 1: Znižuje volumentagdo uporabne ravni
Oddajna linija senzorja, ki gre do sprejemnika Arduino, ne potrebuje delilnika, saj je 3.3 V sprejemljiv vhod za Arduino.
Za napajanje senzorja mora biti priključen na 5 V in 0 V. Za to lahko uporabite pine na Arduinu.
Ko je to končano, bi moral imeti senzor priključene naslednje pine:
5v -> 5v Arduino pin
0v -> Arduino GND
Oddajnik -> Arduino RX1
Rx -> Gre na izhod delilnika napetosti. Vhod gre na Arduino Tx.

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 3 od 14

Ko je to končano, je treba vaš Platinum Sensor priključiti, kot je prikazano:
Slika 2: Senzor je prikazan obrnjen navzdol z adapterjem za spajkanje
Če uporabljate Arduino samo z enim komunikacijskim vhodom (kot je Arduino Uno), ga boste morali povezati z njim, ko pa uporabite serijski monitor (prikazan kasneje), bo prikazal tudi poslano šestnajstiško kodo.

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 4 od 14

Arduino IDE Pojdite na Arduino webin prenesite najnovejšo različico programske opreme Arduino IDE. Ko je nameščena, bi morali videti naslednji zaslon:
Slika 3: Začetni zaslon Arduina
V spustnem meniju orodij izberite ploščo Arduino, procesor in vrata, ki jih uporabljate:

Slika 4: Izbira možnosti plošče, procesorja in vrat

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 5 od 14

Kopiraj v tem primeruampkoda: void send_read_live_data_simple(); void receive_read_live_data_simple();
void setup() { Serial.begin(38400); Serial1.begin(38400);
}
void loop() { pošlji_preberi_v živo_data_simple(); prejmi_preberi_v živo_data_simple(); zakasnitev(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() { medtem ko (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print(“|”); } Serial.println();
}

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 6 od 14

Slika 5: Koda je pripravljena za nalaganje
Kliknite puščico, da naložite kodo v Arduino. Ko je Arduino programiran, odprite serijski monitor.

AN0007

Slika 6: Odprite serijski monitor

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 7 od 14

Slika 7: Serijski monitor prikazuje prejeti paket

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 8 od 14

Razlaga kode Arduino IDE uporablja C++ za programiranje Arduina.
Ta vrstica je deklaracija naprej. Uporablja se za sporočanje mikrokrmilniku, da se bosta v nadaljevanju programa poklicali funkciji `send_read_live_data_simple' in `receive_read_live_data_simple'.
Sledi funkcija za nastavitev. Ta koda se zažene samo enkrat ob zagonu. Zažene vrata Serial0 in Serial1. Serial0 je tisto, kar je prikazano na zaslonu serijskega monitorja. Serial1 so vrata za komunikacijo s senzorjem.
To je glavna zanka, ta koda se ponavlja. Iz imen funkcij lahko vidite, da pošlje zahtevo za branje poenostavljene različice strukture živih podatkov. Nato prebere sprejemna vrata, da prebere odgovor. Po tem mikrokrmilnik čaka 5000 ms.
Ta funkcija zapiše zahtevo za pridobitev preproste strukture podatkov v živo na serijska vrata 1. Kot smo že omenili, če imate samo ena serijska vrata, morate spremeniti Serial1 v Serial. Celoten seznam ukazov si oglejte v dokumentu o komunikacijskem protokolu Premier sensor. Tukaj je del dokumenta, ki vam pove, kaj morate napisati za ta ukaz:

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 9 od 14

Ta funkcija ponovi funkcijo branja, medtem ko so še podatki, ki jih je treba prejeti iz Platinum senzorja. Serial1.read() prebere podatke iz Serial1, ki je priključen na senzor, in jih izpiše na Serial0, tako da jih je mogoče videti na serijskem monitorju. Nato se izpiše znak `|', ki razdeli vsak prejeti bajt, da bo bolj jasen na serijskem monitorju.
Ko je to končano, zapiše novo vrstico v serijski monitor.

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 10 od 14

Razčlenitev paketov Sliki 8 in 9 prikazujeta izhod serijskega dekoderja, priključenega na sprejemno in oddajno linijo.
Slika 8: Odhodni paket
Slika 9: Dohodni paket
Slika 10 in 11 prikazujeta odhodno in vhodno šestnajstiško kodo s stolpcem, ki prikazuje, za kateri ukaz gre.

Slika 10: Opis odhodnega paketa

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 11 od 14

Slika 11: Opis dohodnega paketa
Upoštevajte, da je odčitek plina decimalno število, ne celo število. To decimalno število je v formatu IEEE-754, za pretvorbo pa lahko uporabite spletni pretvornik, kot je ta. Vrednost plina v tem primeru kaže -250 (saj je bila takrat v načinu napake).

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 12 od 14

Uporaba funkcije Serial.read()
Prejšnja koda je prejete podatke samo izpisala na serijski monitor. Če želite podatke shraniti v spremenljivke, boste morali izvesti nadaljnjo obdelavo. Prejeti paket je razdeljen na bajte, zato boste morali nekatere od teh podatkov združiti v spremenljivke. Serial1.Read() vrne celo število (ki je za Arduino 16-bitno), vendar se uporabi le prvih 8 bitov. Zaradi tega ga lahko kopiramo v manjši podatkovni tip, ki ima le 8 bitov, v tem primeru bom uporabil char.
Za pakete, ki so dolgi le en bajt, to deluje brezhibno:
Za pakete, ki so dolgi 2 ali 4 bajte, boste morali podatke združiti.

To lahko storite na veliko različnih načinov, tukaj bom podatke premaknil v levo in jih nato uporabil z operacijo ALI.

Z uporabo te kode, če je readByte1 0x34 in readByte2 0x12.

(int)readByte2

// to pretvori 0x12 v 0x0012.

(int)readByte2 << 8

// to premakne bite za en bajt, tako da bo vrednost 0x1200.

(int)readByte2 << 8 | readByte1 // to se nato obdela z operacijo ALI, pri čemer 0x34 naredi 0x1234.

Drug način za to bi bil, da vrednosti vnesete v tabelo in nato tabelo pretvorite v želeni tip:

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 13 od 14

Znaki (chars) so dolgi en bajt, medtem ko je float dolg 4 bajte. Zaradi tega, če ustvarimo polje s 4 znaki z našimi vrednostmi v njem in spremenimo tip v float.
V tem primeru je readArray kazalec na polje znakov. (float*)readArray ga pretvori v kazalec na število s plavajočo vejo, nato pa se na začetek doda *, da se dobi vrednost števila s plavajočo vejo.
Napredne opombe o pretvorbi
1. Serial.read() vrne celo število namesto znaka, ker bodo napake vrnile negativne vrednosti. Vaš program bi moral to preveriti.
2. Namesto char in int je treba uporabiti uint8_t in uint16_t, saj ti dve vrsti nimata standardne velikosti (na mojem računalniku je int 32 bitov, medtem ko je na Arduinu 16 bitov).
3. Komunikacijski protokol vsebuje znake, polnjene z bajti (znane tudi kot kontrolni znaki), kar je podrobneje pojasnjeno v dokumentu o komunikacijskem protokolu Premier sensor tds0045. Zaradi tega bo preprost paket prebranih podatkov v živo občasno večji od pričakovanega.

AN0007

Številka 1.2

09/04/2025

Sprememba opombe 805

Stran 14 od 14

Dokumenti / Viri

DYNAMENT AN0007 Arduino v Platinum COMM [pdf] Uporabniški priročnik
AN0007 Arduino v Platinum COMM, AN0007, Arduino v Platinum COMM, v Platinum COMM, Platinum COMM

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *