pdf-icon

Arduino 上手教程

Unit Kmeter-ISO Arduino 使用教程

1.准备工作

依赖库
以上驱动库如M5Unified.hM5Unit-KmeterISO等在安装时需要其他的依赖库(如M5HAL, M5Utility等), 如果通过Arduino库管理进行安装时, 请根据提示, 安装全部依赖。

2.案例程序

案例说明
本案例以 Unit KMeter-ISO 为例,采集温度。
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 45 46 47 48 49 50 51 52 53 54 55 56 57
#include <M5Unified.h>
#include "M5UnitKmeterISO.h"
M5UnitKmeterISO kmeter;
auto& lcd = M5.Display;
uint8_t error_status = 0;
long delay_time = 0;
void setup()
{
M5.begin();
M5.Display.setFont(&fonts::lgfxJapanMinchoP_20);
M5.Display.setTextColor(YELLOW);
M5.Display.setTextSize(1);
auto pin_num_sda = M5.getPin(m5::pin_name_t::port_a_sda);
auto pin_num_scl = M5.getPin(m5::pin_name_t::port_a_scl);
M5_LOGI("getPin: SDA:%u SCL:%u", pin_num_sda, pin_num_scl);
Wire.begin(pin_num_sda, pin_num_scl, 400000U);
M5.Display.setCursor(0, 0);
M5.Display.clear();
Serial.begin(115200);
while (!kmeter.begin(&Wire, KMETER_DEFAULT_ADDR, pin_num_sda, pin_num_scl, 100000L)) {
Serial.println("Unit KmeterISO not found");
}
}
void loop()
{
M5.update();
M5.Display.clear();
// Serial.println("ok");
if (millis() > delay_time) {
M5.Display.setCursor(0, 0);
error_status = kmeter.getReadyStatus();
if (error_status == 0) {
M5.Display.printf("Celsius Temp: %.2fC\r\n",
((float)(kmeter.getCelsiusTempValue())) / 100);
M5.Display.printf("Fahrenheit Temp: %.2fF\r\n",
((float)(kmeter.getFahrenheitTempValue())) / 100);
M5.Display.printf(
"Chip Celsius Temp: %.2fC\r\n",
((float)(kmeter.getInternalCelsiusTempValue())) / 100);
M5.Display.printf(
"Chip Fahrenheit Temp: %.2fF\r\n",
((float)(kmeter.getInternalFahrenheitTempValue())) / 100);
} else {
M5.Display.print(kmeter.getReadyStatus());
}
}
delay(1000);
}

3.编译上传

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

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

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

4.温度采集

On This Page