DYNAMENT AN0007 Arduino から Platinum COMM へのユーザーガイド

AN0007 Arduino から Platinum COMM へ

製品情報

仕様

  • 製品名: ARDUINOからPLATINUM COMMSへのヘルプドキュメント
  • メーカー: Dynament Limited
  • 住所: ヘルミtageレーン工業団地、キングスミルウェイ、
    マンスフィールド、ノッティンガムシャー、NG18 5ER、英国
  • 連絡先: 電話: 44 (0)1623 663636、メール: sales@dynament.com、
    Webサイト: www.dynament.com
  • 発行: 1.2、日付: 09年04月2025日

製品使用説明書

センサーの接続

このデータシートではArduino Megaを例として使用していますample. として接続
以下の通りです:

  • 5V -> 5V Arduinoピン
  • 0V -> Arduino GND
  • 送信機 -> Arduino RX1
  • Rx -> 分圧器の出力に接続します。入力は
    Arduino Txへ

巻tage互換性

Arduinoは5Vロジックハイを使用しますが、Platinum Sensorは
3.3V。ボリュームを使用するtagR1とR2の推奨値が以下の分周器
センサーの損傷を防ぐ4K7。

ArduinoIDEのセットアップ

  1. Arduino IDEソフトウェアの最新バージョンを以下からダウンロードしてください。
    アルドゥイーノ webサイト。
  2. ツールでArduinoボード、プロセッサ、ポートを選択します
    ドロップダウンメニュー。

コードのアップロード

  1. 提供された例をコピーするampコードを Arduino IDE に読み込みます。
  2. 矢印をクリックして、コードを Arduino にアップロードします。
  3. シリアルモニターを開いて view データ送信。

よくある質問

Q: 通信モジュールが1つしかないArduino Unoを持っている場合はどうすればいいですか?
ポート?

A: プラチナセンサーをそのポートに接続してください。
シリアルモニターでは、送信された 16 進数も表示されます。

「`

アプリケーションノート AN0007
ARDUINOからPLATINUM COMMSへのヘルプドキュメント

ダイナメントリミテッド
ハーミtageレーン工業団地、キングス・ミル・ウェイ、マンスフィールド、ノッティンガムシャー、NG18 5ER、英国。電話:44 (0)1623 663636
メールアドレス: sales@dynament.com www.dynament.com

AN0007

第1.2号

09年04月2025日

変更ノート805

1/14ページ

コンテンツ
Dynament Limited ……………………………………………………………………………………………….1 センサーの接続……………………………………………………………………………………………………..3 Arduino IDE………………………………………………………………………………………………………………5 コードの説明………………………………………………………………………………………………..9 パケットの内訳…………………………………………………………………………………………………….11 Serial.read() の使用……………………………………………………………………………………………….13
高度な変換に関する注意事項…………………………………………………………………………………….14

AN0007

第1.2号

09年04月2025日

変更ノート805

2/14ページ

センサーの接続 このデータシートでは、Arduino Megaを例として使用します。ample. Ardunio Mega には複数の通信ポートが用意されているため、通信ポート 1 はセンサーとの通信に使用され、通信ポート 0 は PC への印刷に使用されます。
Arduinoは5Vロジックハイを使用しますが、プラチナセンサーは3.3Vを使用します。そのため、センサーへのダメージを防ぐために、tag分周器を使用する必要があります。R1とR2の推奨値は4K7です。

図1: ボリュームを下げるtag使用可能レベルまで
Arduino 受信部に接続するセンサー送信ラインには、3.3V が Arduino への許容入力であるため、分周器は必要ありません。
センサーに電源を供給するには、5Vと0Vに接続する必要があります。これにはArduinoのピンを使用します。
これが完了すると、センサーには次のピンが接続されるようになります。
5V -> 5V Arduinoピン
0V -> Arduino GND
送信機 -> Arduino RX1
Rx -> 分圧器の出力に接続します。入力はArduino Txに接続します。

AN0007

第1.2号

09年04月2025日

変更ノート805

3/14ページ

これが完了すると、Platinum Sensor は次のように接続されます。
図2: はんだ付けアダプターで逆さまに示されたセンサー
通信ポートが 1 つしかない Arduino (Arduino Uno など) を使用している場合は、そのポートに接続する必要がありますが、シリアル モニター (後述) を使用すると、送信される 16 進数も表示されます。

AN0007

第1.2号

09年04月2025日

変更ノート805

4/14ページ

Arduino IDE Arduinoへ webサイトにアクセスし、Arduino IDEソフトウェアの最新バージョンをダウンロードしてください。インストールが完了すると、次の画面が表示されます。
図3: Arduinoのホーム画面
ツールのドロップダウン メニューで、使用している Arduino ボード、プロセッサ、ポートを選択します。

図4: ボード、プロセッサ、ポートのオプションを選択

AN0007

第1.2号

09年04月2025日

変更ノート805

5/14ページ

この例にコピーampコード: 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(){ while (Serial1.available()) { Serial.print(Serial1.read(), HEX); Serial.print(“|”); } Serial.println();
}

AN0007

第1.2号

09年04月2025日

変更ノート805

6/14ページ

図5: アップロード準備完了のコード
矢印をクリックして、Arduinoにコードをアップロードします。Arduinoのプログラミングが完了したら、シリアルモニターを開きます。

AN0007

図6: シリアルモニターを開く

第1.2号

09年04月2025日

変更ノート805

7/14ページ

図7: シリアルモニタは受信したパケットを表示します

AN0007

第1.2号

09年04月2025日

変更ノート805

8/14ページ

コードの説明 Arduino IDE は C++ を使用して Arduino をプログラムします。
この行は前方宣言です。これは、プログラムのさらに後ろで「send_read_live_data_simple」関数と「receive_read_live_data_simple」関数が呼び出されることをマイクロコントローラに伝えるために使用されます。
次はセットアップ関数です。このコードは起動時に一度だけ実行されます。Serial0とSerial1ポートを起動します。Serial0はシリアルモニター画面に表示されるポートです。Serial1はセンサーと通信するためのポートです。
これはメインループで、このコードは繰り返しループされます。関数名を見ればわかるように、ライブデータ構造体の簡略版の読み取り要求を送信します。次に、受信ポートを読み取って応答を読み取ります。その後、マイクロコントローラは5000ミリ秒待機します。
この関数は、ライブデータを取得するためのシンプルな構造体のリクエストをシリアルポート1に書き込みます。前述のように、シリアルポートが1つしかない場合は、SerialXNUMXをSerialに変更する必要があります。コマンドの全リストについては、Premierセンサー通信プロトコルのドキュメントを参照してください。このコマンドの記述方法については、ドキュメントの以下の部分をご覧ください。

AN0007

第1.2号

09年04月2025日

変更ノート805

9/14ページ

この関数は、プラチナセンサーから受信するデータがまだある間、読み取り関数をループします。Serial1.read() は、センサーに接続された Serial1 からデータを読み取り、シリアルモニターで確認できるように Serial0 に出力します。その後、受信した各バイトを区切るために `|' 文字が出力され、シリアルモニター上でより見やすくなっています。
これが完了すると、シリアル モニターに新しい行が書き込まれます。

AN0007

第1.2号

09年04月2025日

変更ノート805

10/14ページ

パケットの内訳図 8 と 9 は、受信ラインと送信ラインに接続されたシリアル デコーダーの出力を示しています。
図8: 送信パケット
図9: 着信パケット
図 10 と 11 には、それぞれ送信される XNUMX 進数と受信される XNUMX 進数と、それがどのコマンドであるかを示す列が表示されています。

図10: 送信パケットの説明

AN0007

第1.2号

09年04月2025日

変更ノート805

11/14ページ

図11: 着信パケットの説明
ガスの値は整数ではなく小数点であることにご注意ください。この小数はIEEE-754形式です。オンラインコンバーターなどを使って変換できます。この場合、ガス値は-250(当時はエラーモードだったため)と表示されます。

AN0007

第1.2号

09年04月2025日

変更ノート805

12/14ページ

Serial.read() の使用
前のコードでは、受信したデータをシリアルモニターに出力するだけです。データを変数に保存したい場合は、さらに処理が必要です。受信したパケットはバイト単位に分割されるため、一部のデータを変数に連結する必要があります。Serial1.Read() は int 型(Arduino では16ビット)を返しますが、実際に使用されるのは最初の8ビットだけです。そのため、このデータを8ビットのより小さなデータ型にコピーすることができます。今回は char 型を使用します。
1 バイト長のパケットの場合、これは正常に機能します。
長さが 2 バイトまたは 4 バイトのパケットの場合は、データを連結する必要があります。

これにはさまざまな方法がありますが、ここではデータを左シフトしてから OR 演算を行います。

このコードを使用すると、readByte1 は 0x34、readByte2 は 0x12 になります。

(int)readByte2

// これは 0x12 を 0x0012 に変換します。

(int)readByte2 << 8

// これにより、ビットが 0 バイトシフトされ、1200xXNUMX になります。

(int)readByte2 << 8 | readByte1 // これは OR 演算され、0x34 は 0x1234 になります。

これを行う別の方法は、値を配列に入れてから、その配列を必要な型に変換することです。

AN0007

第1.2号

09年04月2025日

変更ノート805

13/14ページ

char型は4バイト長ですが、float型は4バイト長です。そのため、XNUMXつのchar型の配列を作成し、そこに値を格納してfloat型に変更します。
この場合、readArray は char 配列へのポインタです。 (float*)readArray この部分はそれを float へのポインタにキャストし、先頭に * を追加して float の値を取得します。
高度な変換に関する注意事項
1. Serial.read() は、エラーが発生すると負の値が返されるため、char ではなく int を返します。プログラムでこの点を確認する必要があります。
2. uint8_t と uint16_t は、それぞれ char と int の代わりに使用する必要があります。これらの型には標準サイズがないためです (私の PC では int は 32 ビットですが、Arduino では 16 ビットです)。
3. 通信プロトコルには、バイトスタッフィング文字(制御文字とも呼ばれます)が含まれます。これについては、tds0045 Premierセンサー通信プロトコルドキュメントで詳しく説明されています。そのため、ライブデータの読み取りシンプルパケットは、予想よりも大きくなる場合があります。

AN0007

第1.2号

09年04月2025日

変更ノート805

14/14ページ

ドキュメント / リソース

DYNAMENT AN0007 Arduino から Platinum COMM へ [pdf] ユーザーガイド
AN0007 Arduino から Platinum COMM、AN0007、Arduino から Platinum COMM、Platinum COMM から Platinum COMM、Platinum COMM

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *