简体中文
English
简体中文
日本語

Arduino 上手教程

2. 设备开发 & 案例程序

5. 扩展模块

6. 应用案例

Module13.2 AIN4-20mA Arduino 使用教程

1. 准备工作

注意
需要在 GitHub 上下载最新的库版本,库地址: M5Module-4-20mA - M5Stack GitHub,请勿在 Arduino Library 中下载。(如有疑问,请参考此教程

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