pdf-icon

Arduino 上手教程

Unit 8Angle Arduino 使用教程

1.准备工作

2.案例程序

案例说明
Unit 8Angle 是一款集成 8 路可调电位器的输入单元,同时集成了 9 颗可编程的 RGB LED 灯 与 1个切换开关。在本案例中,我们将借助 CoreS3 主控,通过其 PORT.A 拓展接口,读取各个通道电位器的输入状态和切换开关的状态,同时 对 RGB LED 灯进行控制。
#include <M5Unified.h>
#include "M5_ANGLE8.h"

M5_ANGLE8 dev;
uint32_t color_list[]   = {0xff0000, 0x00ff00, 0x0000ff};
uint8_t color_index     = 0;
time_t last_update_time = 0;

void setup()
{
    M5.begin();
    Serial.begin(115200);
    M5.Display.setFont(&fonts::lgfxJapanMinchoP_20);
    Wire.begin(2, 1, 100000L);
    while (!dev.begin(ANGLE8_I2C_ADDR)) {
        M5.Display.drawString("Unit 8Angle init Fail!", M5.Display.width() / 2, M5.Display.height() / 2);
        delay(1000);
    }
}

void loop()
{
    bool switch_status = dev.getDigitalInput();
    M5.Display.clear();
    M5.Display.setCursor(0, 0);
    M5.Display.printf("Switch: %s\r\n", switch_status ? "ON" : "OFF");
    for (uint8_t i = 0; i < ANGLE8_TOTAL_ADC; i++) {
        uint16_t adc_v = dev.getAnalogInput(i, _12bit);
        M5.Display.printf("CH[%d]: %d\r\n", i, adc_v);
    }
    if (millis() - last_update_time > 1000) {
        color_index = (color_index + 1) % 3;
        for (uint8_t i = 0; i < ANGLE8_TOTAL_LED; i++) {
            dev.setLEDColor(i, color_list[color_index], 80);
        }
        last_update_time = millis();
    }
    delay(100);
}

3.编译上传

  • 1.下载模式: 不同设备进行程序烧录前需要下载模式, 不同的主控设备该步骤可能有所不同。详情可参考 Arduino IDE上手教程 页面底部的设备程序下载教程列表, 查看具体的操作方式。

  • CoreS3长按复位按键(大约2秒)直到内部绿色LED灯亮起,便可松开,此时设备已进入下载模式,等待烧录。

  • 2.选中设备端口, 点击Arduino IDE左上角编译上传按钮, 等待程序完成编译并上传至设备。

4.旋钮状态读取

读取与显示旋钮和开关状态,同时控制间隔1s切换 RGB LED颜色。

On This Page