DYNAMENT AN0007 Arduino to Platinum COMM Korisnički priručnik

AN0007 Arduino na Platinum COMM

Informacije o proizvodu

Tehnički podaci

  • Naziv proizvoda: ARDUINO u PLATINUM COMMS POMOĆNI DOKUMENT
  • Proizvođač: Dynament Limited
  • Adresa: HermitagIndustrijska zona e Lane, Kings Mill Way,
    Mansfield, Nottinghamshire, NG18 5ER, UK
  • Kontakt: Tel: 44 (0)1623 663636, E-pošta: sales@dynament.com,
    Webstranica: www.dynament.com
  • Broj: 1.2, Datum: 09.

Upute za uporabu proizvoda

Spajanje senzora

Ovaj podatkovni list koristi Arduino Mega kao primjerampPovežite se kao
slijedi:

  • 5v -> 5v Arduino pin
  • 0v -> Uzemljenje Arduina
  • Odašiljač -> Arduino RX1
  • Rx -> Ide na izlaz djelitelja napona. Ulaz
    ide na Arduino Tx

Voltage Kompatibilnost

Arduino koristi 5V logički visoki napon, dok Platinum Sensor koristi
3.3 V. Koristite voltagdjelitelj s predloženim vrijednostima za R1 i R2 kao
4K7 kako bi se spriječilo oštećenje senzora.

Arduino IDE postavljanje

  1. Preuzmite najnoviju verziju Arduino IDE softvera s
    Arduino webmjesto.
  2. Odaberite Arduino ploču, procesor i port u alatima
    padajući izbornik.

Prijenos koda

  1. Kopirajte priloženi primjerample kod u Arduino IDE.
  2. Prenesite kod na Arduino klikom na strelicu.
  3. Otvorite serijski monitor za view prijenos podataka.

FAQ

P: Što trebam učiniti ako imam Arduino Uno s samo jednom komunikacijskom karticom?
luka?

A: Spojite Platinum senzor na taj priključak. Prilikom korištenja
serijski monitor, također će prikazati poslani heksadecimalni kod.

“`

Napomena o aplikaciji AN0007
DOKUMENT POMOĆI ZA KOMUNIKACIJU S ARDUINO NA PLATINUM

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

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 1 od 14

Sadržaj
Dynament Limited ……………………………………………………………………………………………………….1 Spajanje senzora………………………………………………………………………………………..3 Arduino IDE …… ...5 Objašnjenje koda……………………………………………………………………………………………………..9 Raščlamba paketa ………………………………………………………………………………………………………….11 Korištenje Serial.read() ………………………………………………………………………………………………………….13
Napredne napomene o konverziji… ....14

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 2 od 14

Spajanje senzora Ovaj podatkovni list koristi Arduino Mega kao npr.ampArdunio Mega ima više od jednog komunikacijskog porta, stoga se komunikacijski port 1 koristi za komunikaciju sa senzorom, a komunikacijski port 0 za ispis na računalo.
Arduino koristi 5V logički visoki napon, dok Platinum senzor koristi 3.3V, pa kako bi se spriječilo oštećenje senzora, potreban je dodatni napon.tagMora se koristiti razdjelnik. Predložene vrijednosti za R1 i R2 su 4K7.

Slika 1: Smanjuje volumentagdo upotrebljive razine
Prijenosna linija senzora koja ide do prijemnog napona Arduina ne treba razdjelnik jer je 3.3 V prihvatljiv ulaz za Arduino.
Za napajanje senzora, mora biti spojen na 5 V i 0 V. Za to možete koristiti pinove na Arduinu.
Nakon što je ovo završeno, senzor bi sada trebao imati spojene sljedeće pinove:
5v -> 5v Arduino pin
0v -> Uzemljenje Arduina
Odašiljač -> Arduino RX1
Rx -> Ide na izlaz djelitelja napona. Ulaz ide na Arduino Tx.

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 3 od 14

Nakon što je ovo završeno, vaš Platinum senzor treba spojiti kao što je prikazano:
Slika 2: Senzor je prikazan naopako s adapterom za lemljenje
Ako koristite Arduino s samo jednim komunikacijskim portom (kao što je Arduino Uno), morat ćete ga spojiti na njega, međutim kada koristite serijski monitor (prikazan kasnije), on će također prikazivati ​​heksadecimalni broj koji se prenosi.

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 4 od 14

Arduino IDE Idi na Arduino webstranicu i preuzmite najnoviju verziju Arduino IDE softvera. Nakon instalacije trebali biste vidjeti sljedeći zaslon:
Slika 3: Početni zaslon Arduina
U padajućem izborniku alata odaberite Arduino ploču, procesor i port koji koristite:

Slika 4: Odabir opcija ploče, procesora i priključka

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 5 od 14

Kopiraj u ovom primjeruampkod: void send_read_live_data_simple(); void receive_read_live_data_simple();
void setup() { Serial.begin(38400); Serial1.begin(38400);
}
void petlja() { pošalji_čitanje_live_data_simple(); primi_čitanje_live_data_simple(); kašnjenje(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

Izdanje 1.2

09

Promjena bilješke 805

Stranica 6 od 14

Slika 5: Kod spreman za prijenos
Kliknite strelicu za prijenos koda na Arduino. Nakon što je Arduino programiran, otvorite serijski monitor.

AN0007

Slika 6: Otvorite serijski monitor

Izdanje 1.2

09

Promjena bilješke 805

Stranica 7 od 14

Slika 7: Serijski monitor prikazuje primljeni paket

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 8 od 14

Objašnjenje koda Arduino IDE koristi C++ za programiranje Arduina.
Ovaj redak je deklaracija unaprijed. Koristi se za obavještavanje mikrokontrolera da će se dalje u programu pozvati funkcije `send_read_live_data_simple' i `receive_read_live_data_simple'.
Sljedeća je funkcija postavljanja. Ovaj kod se izvršava samo jednom pri pokretanju. Pokreće portove Serial0 i Serial1. Serial0 je ono što se prikazuje na zaslonu serijskog monitora. Serial1 je port za komunikaciju sa senzorom.
Ovo je glavna petlja, ovaj se kod ponavljano ponavlja. Čitajući nazive funkcija možete vidjeti da šalje zahtjev za čitanje pojednostavljene verzije strukture podataka uživo. Zatim čita prijemni port kako bi pročitao odgovor. Nakon toga mikrokontroler čeka 5000 ms.
Ova funkcija zapisuje zahtjev za dobivanje jednostavne strukture podataka uživo na serijski port 1. Kao što je prethodno spomenuto, ako imate samo jedan serijski port, trebali biste promijeniti Serial1 u Serial. Za potpuni popis naredbi, pogledajte dokument Premier sensor Communications protocol. Evo dijela dokumenta koji vam govori što napisati za ovu naredbu:

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 9 od 14

Ova funkcija ponavlja funkciju čitanja dok još ima podataka koje treba primiti od Platinum senzora. Serial1.read() čita podatke iz Serial1 koji je spojen na senzor i ispisuje ih na Serial0 kako bi se mogli vidjeti na serijskom monitoru. Zatim se ispisuje znak `|' kako bi se svaki primljeni bajt razbio i bio jasniji na serijskom monitoru.
Nakon što je ovo završeno, zapisuje novu liniju u serijski monitor.

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 10 od 14

Raspodjela paketa Slike 8 i 9 prikazuju izlaz serijskog dekodera spojenog na prijemne i odašiljačke linije.
Slika 8: Odlazni paket
Slika 9: Dolazni paket
Slike 10 i 11 prikazuju odlazni i dolazni heksadecimalni kod sa stupcem koji pokazuje o kojoj se naredbi radi.

Slika 10: Opis odlaznog paketa

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 11 od 14

Slika 11: Opis dolaznog paketa
Imajte na umu da je očitanje plina decimalni, a ne cijeli broj. Ovaj decimalni broj je u IEEE-754 formatu, možete koristiti online pretvarač poput ovog za pretvorbu. Vrijednost plina u ovom slučaju pokazuje -250 (jer je u to vrijeme bila u načinu rada s greškom).

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 12 od 14

Korištenje Serial.read()
Prethodni kod je samo ispisao primljene podatke na serijski monitor, ako želite spremiti podatke u varijable, morat ćete izvršiti daljnju obradu. Paket koji primite podijeljen je na bajtove, zbog toga ćete morati spojiti neke od tih podataka u varijable. Serial1.Read() vraća cijeli broj (koji za Arduino ima 16 bitova), međutim, koristi se samo prvih 8 bitova. Zbog toga ga možemo kopirati u manji tip podataka koji ima samo 8 bitova, u ovom slučaju koristit ću char.
za pakete koji su dugi samo jedan bajt, ovo radi dobro:
Za pakete duljine 2 ili 4 bajta morat ćete spojiti podatke.

To možete učiniti na mnogo različitih načina, ovdje ću pomaknuti podatke ulijevo, a zatim ih izvesti operacijom ILI.

Koristeći ovaj kod, ako je readByte1 0x34, a readByte2 0x12.

(int)readByte2

// ovo pretvara 0x12 u 0x0012.

(int)readByte2 << 8

// ovo pomiče bitove za jedan bajt, čime dobivamo vrijednost 0x1200.

(int)readByte2 << 8 | readByte1 // ovo se zatim spaja ILI operatorom, gdje 0x34 daje 0x1234.

Drugi način da se to učini jest staviti vrijednosti u niz, a zatim pretvoriti niz u željeni tip:

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 13 od 14

Znakovi su dugi jedan bajt, dok je float dug 4 bajta. Zbog toga, ako napravimo niz od 4 znaka s našim vrijednostima u njemu i promijenimo tip u float.
U ovom slučaju readArray je pokazivač na niz znakova. (float*)readArray ovaj dio ga pretvara u pokazivač na broj s pomičnim zavojem, a zatim se na početak dodaje * kako bi se dobila vrijednost broja s pomičnim zavojem.
Napredne bilješke o konverziji
1. Serial.read() vraća int umjesto char jer će pogreške vratiti negativne vrijednosti. Vaš program bi to trebao provjeriti.
2. uint8_t i uint16_t trebaju se koristiti umjesto char i int, budući da ove vrste nemaju standardnu ​​veličinu (na mom računalu int je 32 bita, dok je na Arduinu 16 bita).
3. Komunikacijski protokol sadrži znakove punjene bajtovima (također poznate kao kontrolni znakovi), što je detaljnije objašnjeno u dokumentu tds0045 Premier sensor Communications protocol. Zbog toga će jednostavni paket podataka za čitanje uživo povremeno biti veći od očekivanog.

AN0007

Izdanje 1.2

09

Promjena bilješke 805

Stranica 14 od 14

Dokumenti / Resursi

DYNAMENT AN0007 Arduino na Platinum COMM [pdf] Korisnički priručnik
AN0007 Arduino na Platinum COMM, AN0007, Arduino na Platinum COMM, na Platinum COMM, Platinum COMM

Reference

Ostavite komentar

Vaša email adresa neće biti objavljena. Obavezna polja su označena *