DYNAMENT AN0007 Arduino-Platinum COMM felhasználói kézikönyv

AN0007 Arduino-Platinum COMM

Termékinformáció

Műszaki adatok

  • Terméknév: ARDUINO - PLATINUM KOMMUNIKÁCIÓS SÚGÓDOKUMENTUM
  • Gyártó: Dynament Limited
  • Cím: Hermitage Lane Ipari Park, Kings Mill Way,
    Mansfield, Nottinghamshire, NG18 5ER, Egyesült Királyság
  • Kapcsolat: Tel.: +44 (0)1623 663636, E-mail: sales@dynament.com,
    Webweboldal: www.dynament.com
  • Kiadás: 1.2, Dátum: 09.

A termék használati útmutatója

Az érzékelő csatlakoztatása

Ez az adatlap az Arduino Megát használja példakéntample. Csatlakozás mint
következik:

  • 5v -> 5v Arduino csatlakozó
  • 0v -> Arduino földelés
  • Adás -> Arduino RX1
  • Rx -> A feszültségosztó kimenetére megy. A bemenet
    Arduino adóra megy

Voltage Kompatibilitás

Az Arduino 5V-os logikát használ magas feszültségen, míg a Platinum Sensor
3.3 V. Használjon volume-mérőttagaz osztó javasolt R1 és R2 értékeivel, mint
4K7 az érzékelő károsodásának elkerülése érdekében.

Arduino IDE beállítás

  1. Töltsd le az Arduino IDE szoftver legújabb verzióját innen:
    az Arduino webtelek.
  2. Válaszd ki az Arduino kártyát, a processzort és a portot az eszközökben.
    legördülő menüből.

Kódfeltöltés

  1. Másolja ki a megadott ex-etample kódot az Arduino IDE-be.
  2. Töltsd fel a kódot az Arduino-ra a nyílra kattintva.
  3. Nyissa meg a soros monitort view adatátvitel.

GYIK

K: Mit tegyek, ha csak egy kommunikációs porttal rendelkező Arduino Unóm van?
kikötő?

A: Csatlakoztassa a Platinum Sensort ehhez a porthoz. Használat közben a
soros monitoron, akkor az átvitt hexadecimális értéket is mutatja.

"`

Alkalmazási megjegyzés AN0007
ARDUINO-ról PLATINUM-ra KOMMUNIKÁCIÓS SEGÍTSÉGDOKUMENTUM

Dynament Limited
Hermitage Lane Ipari Park, Kings Mill Way, Mansfield, Nottinghamshire, NG18 5ER, Egyesült Királyság. Tel.: +44 (0)1623 663636
email: sales@dynament.com www.dynament.com

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

1/14. oldal

Tartalom
Dynament Limited ………………………………………………………………………………………………….1 Az érzékelő csatlakoztatása……………………………………………………………………………………..3 Arduino IDE ………………………………………………………………………………………………………………5 Kód magyarázata…………………………………………………………………………………………………………..9 Csomagok lebontása ………………………………………………………………………………………………….11 A Serial.read() használata ………………………………………………………………………………………………….13
Speciális konverziós megjegyzések………………………………………………………………………….14

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

2/14. oldal

Az érzékelő csatlakoztatása Ez az adatlap az Arduino Megát használja példakéntampPéldául az Ardunio Mega egynél több kommunikációs porttal rendelkezik, ezért az 1-es kommunikációs portot használják az érzékelővel való kommunikációra, a 0-s kommunikációs portot pedig a PC-re történő nyomtatásra.
Az Arduino 5 V-os logikai feszültséget használ, míg a Platinum Sensor 3.3 V-ot, így az érzékelő károsodásának elkerülése érdekében a feszültséget csökkenteni kell.tagAz osztót kell használni. Az R1 és R2 javasolt értéke 4K7.

1. ábra: Csökkenti a hangerőttaghasználható szintre
Az Arduino vételéhez menő érzékelő adóvezetékének nincs szüksége elválasztóra, mivel a 3.3 V elfogadható bemenete az Arduinonak.
A szenzor tápellátásához 5V-ra és 0V-ra kell csatlakoztatni. Ehhez használhatod az Arduino csatlakozóit.
Miután ez megtörtént, az érzékelőnek a következő csatlakozókkal kell rendelkeznie:
5v -> 5v Arduino csatlakozó
0v -> Arduino földelés
Adás -> Arduino RX1
Rx -> A feszültségosztó kimenetére megy. A bemenet az Arduino adóra megy.

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

3/14. oldal

Miután ez megtörtént, a Platinum Sensort az ábrán látható módon kell csatlakoztatni:
2. ábra: Az érzékelő fejjel lefelé, forrasztóadapterrel látható
Ha csak egy kommunikációs porttal rendelkező Arduino-t használsz (mint például az Arduino Uno), akkor ahhoz kell csatlakoztatnod, azonban ha a soros monitort használod (lásd később), az is mutatja az átvitt hexadecimális portot.

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

4/14. oldal

Arduino IDE Menj az Arduino oldalra webweboldalt, és töltse le az Arduino IDE szoftver legújabb verzióját. A telepítés után a következő képernyőt kell látnia:
3. ábra: Arduino kezdőképernyője
Az eszközök legördülő menüben válaszd ki a használt Arduino kártyát, processzort és portot:

4. ábra: Alaplap, processzor és portbeállítások kiválasztása

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

5/14. oldal

Másolás ebben az ex-benample kód: void send_read_live_data_simple(); void receive_read_live_data_simple();
void setup() { Sorozat38400.begin(1);
}
void ciklus() { 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(){ while (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print(“|”); } Serial.println(); } `While (SerialXNUMX.available())` `Or: Serial.print` `Serial.println();` `While (SerialXNUMX.available())` `While (Serial.println();` `While (SerialXNUMX.read(); `HEX
}

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

6/14. oldal

5. ábra: Feltöltésre kész kód
Kattints a nyílra a kód Arduinoba való feltöltéséhez. Miután az Arduino programozása befejeződött, nyisd meg a soros monitort.

AN0007

6. ábra: Nyissa meg a soros monitort

1.2. szám

09/04/2025

805. módosítási megjegyzés

7/14. oldal

7. ábra: A soros monitor mutatja a fogadott csomagot

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

8/14. oldal

Kód Magyarázat Az Arduino IDE C++-t használ az Arduino programozásához.
Ez a sor egy előre deklarált sor. Ezzel közöljük a mikrokontrollerrel, hogy a programban később a `send_read_live_data_simple' és a `receive_read_live_data_simple' függvények is meghívódnak.
Következő a beállító függvény. Ez a kód csak egyszer fut le indításkor. Elindítja a Serial0 és Serial1 portokat. A Serial0 az, ami a soros monitor képernyőjén látható. A Serial1 az érzékelővel való kommunikációhoz használt port.
Ez a fő ciklus, a kód ismételten ciklusba kerül. A függvénynevek kiolvasásával látható, hogy egy kérést küld az élő adatstruktúra egy egyszerűsített verziójának beolvasására. Ezután beolvassa a fogadó portot a válasz beolvasásához. Ezután a mikrokontroller 5000 ms-t vár.
Ez a függvény az élő adatok egyszerű struktúrájának lekérésére vonatkozó kérést az 1-es soros portra írja. Ahogy korábban említettük, ha csak egy soros portod van, akkor a Serial1-et Serial-ra kell cserélned. A parancsok teljes listájának megtekintéséhez lásd a Premier sensor Communications protocol dokumentumot. A dokumentumnak itt a része, amely leírja, hogy mit kell írni ehhez a parancshoz:

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

9/14. oldal

Ez a függvény végigjátssza az olvasási függvényt, amíg még várunk adatot a Platinum Sensor felől. A Serial1.read() beolvassa az adatokat a szenzorhoz csatlakoztatott Serial1 portról, és kinyomtatja azokat a Serial0 portra, hogy látható legyen a soros monitoron. Ezután a `|' karakter kerül kinyomtatásra, hogy minden fogadott bájtot felbontson, és ezáltal tisztábban látható legyen a soros monitoron.
Miután ez befejeződött, új sort ír a soros monitorra.

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

10/14. oldal

Csomagbontás A 8. és 9. ábra a vételi és adási vonalakhoz csatlakoztatott soros dekóder kimenetét mutatja.
8. ábra: Kimenő csomag
9. ábra: Bejövő csomag
A 10. és 11. ábra a kimenő és bejövő hexadecimális értékeket mutatja, egy oszlopban jelezve, hogy melyik parancsról van szó.

10. ábra: Kimenő csomag leírása

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

11/14. oldal

11. ábra: Bejövő csomag leírása
Felhívjuk figyelmét, hogy a gázérték decimális, nem egész szám. Ez a decimális érték IEEE-754 formátumú, egy online konverterrel átváltható. A gáz értéke ebben az esetben -250-et mutat (mivel akkoriban hiba üzemmódban volt).

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

12/14. oldal

A Serial.read() használata
Az előző kód csak a fogadott adatokat nyomtatta ki a soros monitorra, ha változókba szeretnéd menteni az adatokat, akkor további feldolgozásra lesz szükséged. A fogadott csomag bájtokra van osztva, emiatt az adatok egy részét változókba kell összefűznöd. A Serial1.Read() egy int értéket ad vissza (ami Arduino esetén 16 bites), azonban csak az első 8 bitet használja fel. Emiatt egy kisebb, csak 8 bites adattípusba másolhatjuk, ebben az esetben char-t fogok használni.
Az egy bájt hosszú csomagok esetében ez jól működik:
A 2 vagy 4 bájt hosszú csomagok esetében össze kell fűzni az adatokat.

Ezt sokféleképpen megteheted, én itt az adat balra eltolását, majd VAGY műveletet alkalmazok rá.

Ezzel a kóddal, ha a readByte1 értéke 0x34 és a readByte2 értéke 0x12.

(int)olvasottBájt2

// ez a 0x12-t 0x0012-vé alakítja.

(int)olvashatóBájt2 << 8

// ez egy bájttal eltolja a biteket, így 0x1200 lesz az érték.

(int)readByte2 << 8 | readByte1 // ez ezután VAGY műveletet kap, 0x34-gyel, ami 0x1234-et eredményez.

Egy másik módja ennek az, hogy az értékeket egy tömbbe helyezzük, majd a tömböt a kívánt típusra konvertáljuk:

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

13/14. oldal

A karakterek egy bájt hosszúak, míg a float 4 bájt hosszú. Emiatt, ha létrehozunk egy 4 karakterből álló tömböt az értékeinkkel, és a típust float-ra változtatjuk.
Ebben az esetben a readArray egy char tömbre mutató mutató. (float*)readArray Ez a rész egy float tömbre mutató mutatóvá konvertálja azt, majd egy * karaktert adunk az elejéhez, hogy megkapjuk a float tömb értékét.
Speciális konverziós megjegyzések
1. A Serial.read() függvény int értéket ad vissza char helyett, mivel a hibák negatív értékeket adnak vissza. A programodnak ezt ellenőriznie kell.
2. Az uint8_t és uint16_t típusokat kell használni a char és int helyett, mivel ezeknek a típusoknak nincs szabványos mérete (a PC-men az int 32 bit, míg az Arduinón 16 bit).
3. A kommunikációs protokoll bájtokkal kitöltött karaktereket (más néven vezérlőkaraktereket) tartalmaz, ezt részletesebben a tds0045 Premier érzékelő kommunikációs protokoll dokumentuma ismerteti. Emiatt a beolvasott élő adatcsomagok időnként nagyobbak lehetnek a vártnál.

AN0007

1.2. szám

09/04/2025

805. módosítási megjegyzés

14/14. oldal

Dokumentumok / Források

DYNAMENT AN0007 Arduino-Platinum COMM [pdf] Felhasználói útmutató
AN0007 Arduino - Platinum COMM, AN0007, Arduino - Platinum COMM, - Platinum COMM, Platinum COMM

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *