環境設定:Arduino IDE クイックスタートを参照し、IDE をインストールしてください。使用する開発ボードに応じたボードマネージャと必要なドライバライブラリをインストールします。
使用するドライバライブラリ:
使用するハードウェア製品:



1. 核心定義:
2. 主な特性:
3. 動作原理:
1. 核心定義:
2. 主な特性:
3. 動作原理:
本チュートリアルでは、AtomS3R と Atomic RS485/232 Base を組み合わせて使用します。本モジュールは UART シリアル通信方式を採用しており、実際の回路接続に応じてプログラム内のピン定義を修正してください。接続後の UART ピンは G5 (RX)、G6 (TX) です。
Atomic RS485 Base には内部に 120Ω の終端抵抗が統合されていません。下図の位置を参考に、A/B 線間に 120Ω の抵抗を追加してください。
#include <M5Unified.h>
#include <M5GFX.h>
static int cnt = 0; // Counter for RS485 sent messages (increments per transmission)
String recvBuffer; // Buffer to store received RS485 data
void setup() {
M5.begin();
M5.Display.clear();
M5.Display.setFont(&fonts::FreeMonoBold9pt7b);
M5.Display.drawString("Send :", 0, 5);
M5.Display.drawString("Receive :", 0, 50);
Serial.begin(115200);
// Parameters: baud rate=115200, config=8N1 (8 data bits, 1 stop bit, no parity), RX pin=27, TX pin=19
Serial2.begin(115200, SERIAL_8N1, 5, 6);
}
void loop() {
M5.update();
// --- Send Data ---
String msg = "RS485 #" + String(++cnt);
Serial2.println(msg);
Serial.printf("Send: %s\n", msg.c_str());
// Display sent message on screen
M5.Display.fillRect(0, 25, 128, 20, TFT_BLACK);
M5.Display.setTextColor(GREEN);
M5.Display.setCursor(0, 25);
M5.Display.printf("%s\n", msg.c_str());
// --- Receive Data ---
recvBuffer = "";
while (Serial2.available()) {
char ch = Serial2.read();
recvBuffer += ch;
}
// If valid data is received
if (recvBuffer.length() > 0) {
Serial.print("Recv: ");
Serial.print(recvBuffer);
Serial2.flush();
// Display received message on screen
M5.Display.setTextColor(YELLOW);
M5.Display.fillRect(0, 70, 128, 20, TFT_BLACK);
M5.Display.setCursor(0, 70);
M5.Display.printf("%s", recvBuffer.c_str());
}
delay(2000);
}1. ダウンロードモード:異なるデバイスでプログラムを書き込む前にダウンロードモードに入る必要があります。主制御デバイスごとに手順が異なる可能性があります。詳しくはArduino IDE クイックスタートページ下部のデバイス別プログラムダウンロード手順一覧を参照し、具体的な操作方法を確認してください。
AtomS3R のリセットボタンを長押し(約 2 秒)し、内部の緑色 LED が点灯したらボタンを離してください。この時点でデバイスはダウンロードモードに入り、書き込みを待機します。
