pdf-icon

Arduino 上手教程

2. 设备开发 & 案例程序

6. 应用案例

StamPLC AC Arduino 使用教程

1. 准备工作

2. 案例程序

  • 本教程中使用的主控设备为 StamPLC,搭配 StamPLC AC。StamPLC AC 通过 I2C 的方式与主机通讯,集成的 RGB LED 和继电器开关由 IO 扩展芯片控制,请根据实际的电路连接修改程序中的引脚定义,设备连接后对应的 I2C IO 为 G15 (SCL)G13 (SDA),RGB LED IO 为 P5 (SYS_LEDR)P6 (SYS_LEDG)P7 (SYS_LEDB),继电器开关 IO 为 P2 (REL_EN)

实物连接组装如下图所示:

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
#include "M5StamPLC.h"

M5StamPLC_AC stamplc_ac;

void setup()
{
    /* Init M5StamPLC */
    M5StamPLC.begin();
    M5StamPLC.Display.setFont(&fonts::FreeMonoBold12pt7b);
    M5StamPLC.Display.drawCenterString("StamPLC AC", 120, 60);
    /* Init M5StamPLC-AC */
    while (!stamplc_ac.begin()) {
        printf("M5StamPLC-AC init failed, retry in 1s...\n");
        delay(1000);
    }
}

void loop()
{
    static bool relay_state = false;

    /* Toggle M5StamPLC-AC relay state */
    relay_state = !relay_state;
    stamplc_ac.writeRelay(relay_state);
    printf("Write M5StamPLC-AC Relay to %s\n", stamplc_ac.readRelay() ? "ON" : "OFF");
    if (relay_state)
    {
        stamplc_ac.setStatusLight(0, 1, 0);
        printf("Set M5StamPLC-AC status light to green\n");
    }
    else
    {
        stamplc_ac.setStatusLight(1, 0, 0);
        printf("Set M5StamPLC-AC status light to red\n");
    }
    delay(1000);
}

3.编译上传

  • 长按 StamPLC 上的 Boot 按键, 等待红灯亮起后释放,此时设备进入下载模式,等待烧录。
  • 选中设备端口,点击 Arduino IDE 左上角编译上传按钮,等待程序完成编译并上传至设备。

4.继电器开关控制

  • 上电后,StamPLC 会自动初始化 StamPLC AC 模块,并将继电器开关设置为断开状态,状态指示灯显示红色。随后每隔 1 秒钟,继电器开关会切换一次状态,同时状态指示灯颜色也会随之变化:当继电器闭合时,状态指示灯显示绿色,灯泡亮起;当继电器断开时,状态指示灯显示红色,灯泡熄灭。

串口监视器反馈如下所示:

Write M5StamPLC-AC Relay to ON
Set M5StamPLC-AC status light to green
Write M5StamPLC-AC Relay to OFF
Set M5StamPLC-AC status light to red
...
On This Page