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のセットアップ
- Arduino IDEソフトウェアの最新バージョンを以下からダウンロードしてください。
アルドゥイーノ webサイト。 - ツールでArduinoボード、プロセッサ、ポートを選択します
ドロップダウンメニュー。
コードのアップロード
- 提供された例をコピーするampコードを Arduino IDE に読み込みます。
- 矢印をクリックして、コードを Arduino にアップロードします。
- シリアルモニターを開いて 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 |