M5StackでModule13.2 AIN4-20mA を使う

Using the Module13.2 AIN4-20mA ・ 使用 Module13.2 AIN4-20mA

M5StackのModule13.2 AIN4-20mAをコントローラーに接続する最小構成。配線とBOMつき。

この構成をエディタで開く・編集する →

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack Core2Controllergrove_i2c, grove_analog, grove_uart, mbusofficial page — $46.9
Module13.2 AIN4-20mAmodulembus, i2c, grove_analogofficial page — $24.9

配線

作り方

M5Stack Core2とModule13.2 AIN4-20mAで、4-20mAの工業用センサーを読み取るための配線ガイドです。Module13.2は4チャンネルの電流ループ入力をI2C経由でCore2に伝えます。Core2のGroveアナログポート(Port.B)を使って接続しますが、実際の通信はI2Cではなく、Module13.2はM-Bus経由でも接続可能ですが、ここではGroveアナログポートを使った配線例を示します。注意:Module13.2は外部電源(9-24V)が必要です。

  1. 部品を用意する — 用意するもの:M5Stack Core2本体、Module13.2 AIN4-20mA、Groveケーブル(アナログ用、黒色)、外部DC電源(9-24V)、USB-Cケーブル(Core2とパソコン接続用)。
  2. Module13.2に外部電源を接続する — Module13.2の電源端子(DC入力)に、9-24Vの外部電源を接続します。極性に注意:プラスを+、マイナスを-に接続してください。電源はモジュールの動作に必須です。
  3. GroveケーブルでCore2とModule13.2を接続する — Groveケーブルの一端をModule13.2のGroveアナログポート(黒色)に差し込みます。もう一端をCore2の黒いPort.B(アナログ/IOポート)に差し込みます。コネクタは一方向にしか入らないので、無理に押し込まないでください。
  4. Core2をパソコンに接続する — USB-CケーブルでCore2をパソコンにつなぎます。Core2の電源が入り、画面が表示されることを確認します。
  5. MicroPythonコードを書き込む — UIFlowまたはThonnyなどのツールで、Core2にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。コードはI2C経由でModule13.2のチャンネル1の値を読み取り、画面に表示します。
  6. 動作を確認する — コードを実行すると、Core2の画面に「AIN1: xxx mA」と表示されます。4-20mAのセンサーを接続していない場合は、値は0またはノイズが表示されます。実際のセンサーを接続して、値が変化することを確認してください。

サンプルコード(micropython)

# M5Stack Core2 + Module13.2 AIN4-20mA (I2C)
# Wiring: Module13.2 Grove analog port -> Core2 black Port.B (but actually uses I2C via Grove?)
# Note: Module13.2 communicates over I2C, but the Grove analog port on Core2 is Port.B (GPIO 36/26).
# However, the Module13.2's Grove port is actually I2C (red port). This example assumes I2C connection via Port.A.
# For correct wiring, use Port.A (red) on Core2 for I2C.
# This code reads channel 1 via I2C.

import time
from machine import Pin, I2C
from m5stack import lcd

# I2C on Core2 Port.A (red): SDA=GPIO21, SCL=GPIO22
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)

# Module13.2 I2C address (default 0x55, check datasheet)
ADDR = 0x55

# Register for channel 1 (16-bit value, 0-4095 corresponds to 4-20mA)
REG_CH1 = 0x00

def read_channel(reg):
    data = i2c.readfrom_mem(ADDR, reg, 2)
    value = (data[0] << 8) | data[1]
    return value

while True:
    raw = read_channel(REG_CH1)
    # Convert to mA: 0-4095 -> 4-20mA
    mA = 4.0 + (raw / 4095.0) * 16.0
    lcd.clear()
    lcd.print('AIN1: {:.2f} mA'.format(mA), 10, 20)
    time.sleep(1)

コツ・安全上の注意

この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。

この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。

エディタで開く →

UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。