Arduino入門

2. デバイス&サンプル

5. 拡張モジュール&サンプル

アクセサリー

6. アプリケーション

Module13.2 AIN4-20mA Arduino 使用手順

1. 準備作業

注意
GitHub から最新のライブラリバージョンをダウンロードする必要があります: M5Module-4-20mA - M5Stack GitHub。Arduino ライブラリからダウンロードしないでください(質問がある場合はこのチュートリアルを参照)。

2. 注意事項

ジャンパーキャップの接続説明
製品パッケージには 12 個のジャンパーキャップが付属しており、電流型センサーの有源/無源状態に応じて切り替えが可能です。
  • 無源電流型センサーを使用する場合は、DC 24V 電源入力に接続し、センサー信号を IN+ 、IN- に接続し、ジャンパーキャップを下図のように調整してください(信号の極性に注意):
  • 有源電流型センサーを使用する場合は、センサー信号を IN+ 、IN- に接続し、ジャンパーキャップを下図のように調整してください(信号の極性に注意):
ピン互換性
各ホストデバイスのピン構成が異なるため、使用前に製品ドキュメントのピン互換性表を参照し、実際のピン接続状況に応じてサンプルプログラムを修正してください。

3. サンプルプログラム

  • 本チュートリアルで使用するメインコントローラは CoreS3 と Module13.2 AIN4-20mA の組み合わせです。この電流型アナログ入力モジュールは I2C 通信方式を採用しています。実際の回路接続に応じてプログラム内のピン定義を修正してください。デバイス接続後、対応するシリアル IO ピンは G11 (SCL) 、G12 (SDA) です。
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
#include <M5Unified.h>
#include <M5GFX.h>
#include "MODULE_4_20MA.h"

#define channel 3

M5GFX display;
MODULE_4_20MA meter;

void show_current_value(void) {
    M5.Display.fillScreen(WHITE);
    M5.Display.setCursor(0, 0);
    M5.Display.println("Module 4-20mA Demo");
    M5.Display.setCursor(0, 50);
    M5.Display.printf("CH%d Current:%.2fmA\r\n", channel,
                  (float)(meter.getCurrentValue(channel - 1)) / 100.0);
    Serial.printf("CH%d ADC_12Bits_Value:%d\r\n", channel, meter.getADC12BitsValue(channel - 1));
    M5.Display.printf("CH%d ADC_12Bits_Value:%d\r\n", channel, meter.getADC12BitsValue(channel - 1));
    M5.Display.printf("CH%d Cal_Current:%d\r\n", channel, meter.getCurrentValue(channel - 1));
}

void setup() {
    M5.begin();
    Serial.begin(115200);
    M5.Display.fillScreen(WHITE);
    M5.Display.setTextColor(BLACK);
    M5.Display.setFont(&fonts::FreeMonoBold9pt7b);
    M5.Display.setCursor(0, 0);
    M5.Display.println("Module 4-20mA Demo");
    while (!(meter.begin(&Wire, MODULE_4_20MA_ADDR, 12, 11, 100000UL))) {
        M5.Display.fillScreen(WHITE);
        M5.Display.setCursor(0, 0);
        M5.Display.println("No Module!");
    }
    Serial.printf("Firmware Version:%d.%d.%d\r\n", meter.getFirmwareVersion(),
                      meter.getI2CAddress(), meter.getFirmwareVersion());
    Serial.printf("I2C Address:%02X\r\n", meter.getI2CAddress());
    delay(500);
}

void loop() {
    show_current_value();
    delay(1000);
}

4. コンパイルとアップロード

  • ダウンロードモード:プログラムを書き込む前に、デバイスによってダウンロードモードに入る必要があります。メインコントロールデバイスによってこの手順が異なる場合があります。詳細はArduino IDE入門チュートリアルページ下部のデバイスプログラムダウンロードチュートリアルリストを参照し、具体的な操作方法を確認してください。

  • CoreS3 の場合、リセットボタンを長押し(約 2 秒)、内部の緑色 LED が点灯するまで押し続けてから離します。これでデバイスはダウンロードモードに入り、書き込みを待機します。 ボタンを離すと緑色 LEDが消灯し、デバイスがダウンロードモードに入ったことを確認できます。

  • デバイスポートを選択し、Arduino IDE の左上にあるコンパイル&アップロードボタンをクリックします。プログラムのコンパイルが完了し、デバイスにアップロードされるのを待ちます。

5. 電流測定

  • 本実験では、PT100 熱電対温度センサーと無源電流型センサーを組み合わせて使用し、信号線を 3 つのチャンネルに接続します。ハードウェア配線が完了したら、コードを書き込むと収集された電流アナログデータを確認できます。
  • センサー温度が上昇すると、電流センサーが取得する電流値も上昇します。
Page Tools
PDF
On This Page