Skip to main content

XIAO用RS485拡張ボード

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Seeed Studio XIAO-RS485-Expansion-Boardの使い方

ハードウェア概要

必要な材料

Seeed Studio XIAO RS485拡張ボードSeeed Studio XIAO ESP32-C3

ピン配置図

XIAO RS485拡張ボードの説明図
  • 5V OUT/INスイッチ:5Vポートの入力および出力を切り替えます。スレーブがINに設定されている場合は入力として機能し、ホストがOUTに設定されている場合は外部に放電されます。このポートはセンサーに接続してセンサーの電源供給に使用できます。

  • 120Rスイッチ:120Rスイッチは、120オームの抵抗が接続可能かどうかを決定します。485通信では、長い配線環境の始端と終端に120オームの抵抗を追加してマッチングを行い、通信を確保する必要があります。

  • INT:予約された割り込みポート。

tip

入力モードとして使用する場合はスイッチをINに切り替え、出力モードとして使用する場合はスイッチをOUTに切り替えて、焼損を防止してください。

接続回路図

2つのRS485拡張ボードの接続

ソフトウェア概要

送信側コード

#include <HardwareSerial.h>

HardwareSerial mySerial(1);


#define enable_pin D2 // enable ピンを D2 として定義

void setup() {
Serial.begin(115200); // ハードウェアシリアルを 115200 のボーレートで初期化
mySerial.begin(115200, SERIAL_8N1, 7, 6); // RX=D4(GPIO4), TX=D5(GPIO5)


// ハードウェアシリアルが準備完了するまで待機
while(!mySerial);
// ハードウェアシリアルが準備完了するまで待機
while(!Serial);

pinMode(enable_pin, OUTPUT); // enable ピンを出力として設定
digitalWrite(enable_pin, HIGH); // enable ピンを HIGH に設定
}

void loop() {
if (Serial.available()) {
String receivedData = Serial.readStringUntil('\n'); // ハードウェアシリアルからデータを改行文字まで読み取る

// 受信データが空でない場合
if (receivedData.length() > 0) {
Serial.println("送信成功"); // 成功メッセージを表示
mySerial.print("マスターが送信した情報: "); // ハードウェアシリアルにプロンプトメッセージを送信
mySerial.println(receivedData); // 受信データをハードウェアシリアルに送信
}
}
}

  • HardwareSerial ライブラリ: ESP32 上で追加のシリアルポートを作成するために使用され、通常はデバイス(センサーやモジュールなど)との通信に使用されます。

  • HardwareSerial mySerial(1); : D5 と D4 を受信および送信ピンとして使用する HardwareSerial オブジェクト mySerial を定義します。

  • #define enable_pin D2: RS485 モジュールの送信および受信状態を制御するための enable ピンを定義します。

  • setup():

    • Serial.begin(115200: ハードウェアシリアルポートを 115200 のボーレートで初期化します。
    • mySerial.begin(115200, SERIAL_8N1, 7, 6);: RX=D4(GPIO4), TX=D5(GPIO5)。
    • while(!mySerial): ハードウェアシリアルが通信準備完了するまで待機します。
    • while(!Serial): ハードウェアシリアルが通信準備完了するまで待機します。
    • pinMode(enable_pin, OUTPUT): enable_pin を出力ピンとして設定し、RS485 モジュールを制御します。
    • digitalWrite(enable_pin, HIGH): enable_pin を HIGH に設定し、RS485 モジュールを送信モードに設定します。
  • loop():

    • if (receivedData.length() > 0): ハードウェアシリアルポートから読み取れるデータがあるか確認します。
    • String receivedData = Serial.readStringUntil('\n'); : ハードウェアシリアルから改行文字までデータを読み取ります。
    • Serial.println("送信成功"): 成功メッセージを表示します。
    • mySerial.print("マスターが送信した情報: "): ハードウェアシリアルにプロンプトメッセージを送信します。
    • mySerial.println(receivedData) : 必要なデータを RS485 拡張ボードに送信します。

受信側コード

#include <HardwareSerial.h>

HardwareSerial mySerial(1); // UART2 を使用
#define enable_pin D2 // enable ピンを D2 として定義

void setup() {
Serial.begin(115200); // ハードウェアシリアルを 115200 のボーレートで初期化
mySerial.begin(115200, SERIAL_8N1, 7, 6); // RX=D4(GPIO4), TX=D5(GPIO5)

// ハードウェアシリアルが準備完了するまで待機
while(!Serial);
// ハードウェアシリアルが準備完了するまで待機
while(!mySerial);

pinMode(enable_pin, OUTPUT); // enable ピンを出力として設定
digitalWrite(enable_pin, LOW); // enable ピンを LOW に設定
}

void loop() {
// ハードウェアシリアルからデータが利用可能か確認
if (mySerial.available()) {
String receivedData = mySerial.readStringUntil('\n'); // 改行文字に基づいて文字列を読み取る
Serial.print("受信データ: ");
Serial.println(receivedData); // 受信データを直接表示
}
}

  • HardwareSerial ライブラリ: ESP32 上で追加のシリアルポートを作成するために使用され、通常はデバイス(センサーやモジュールなど)との通信に使用されます。

  • HardwareSerial mySerial(1);: D5 を RX、D4 を TX として使用する HardwareSerial オブジェクト mySerial を定義します。

  • define enable_pin D2: RS485 モジュールの送信および受信状態を制御するための enable ピンを定義します。

  • setup():

    • Serial.begin(115200: ハードウェアシリアルポートを 115200 のボーレートで初期化します。
    • mySerial.begin(115200, SERIAL_8N1, 7, 6);RX=D4(GPIO4), TX=D5(GPIO5)。
    • while(!Serial): ハードウェアシリアルポートが通信準備完了するまで待機します。
    • while(!mySerial): ハードウェアシリアルポートが通信準備完了するまで待機します。
    • pinMode(enable_pin, OUTPUT): enable_pin を出力ピンとして設定し、RS485 モジュールを制御します。
    • digitalWrite(enable_pin, LOW): enable_pin を LOW に設定し、RS485 モジュールを受信モードに設定します。
  • loop():

    • if (mySerial.available()): ハードウェアシリアルポートから読み取れるデータがあるか確認します。
    • String receivedData = mySerial.readStringUntil('\n');: 改行文字に基づいて文字列を読み取ります。
    • Serial.print("受信データ: ");: データが受信されたことを示すメッセージをハードウェアシリアルに表示します。
    • Serial.println(receivedData);: 受信したデータを表示します。

RS485 送信結果

リソース

技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご提供しております。お客様のご希望やニーズに応じた複数のコミュニケーションチャネルをご用意しています。

Loading Comments...