ESP32-C3内置有温度传感器,用于测量芯片内部温度。温度传感器模块包含一个8位Sigma-Delta型ADC和一个用于补偿温度偏移的DAC。
1、温度传感器配置

temp_sensor_config_t temp_sensor = {
    .dac_offset = TSENS_DAC_L2,
    .clk_div = 6,
};
temp_sensor_set_config(temp_sensor);

TSENS_DAC_L0
offset = -2,测量范围:50℃ ~ 125℃,误差<3℃

TSENS_DAC_L1
offset = -1,测量范围:20℃ ~ 100℃,误差<2℃

TSENS_DAC_L2
offset = 0,测量范围:-10℃ ~ 80℃,误差<1℃

TSENS_DAC_L3
offset = 1,测量范围:-30℃ ~ 50℃,误差<2℃

TSENS_DAC_L4
offset = 2,测量范围:-40℃ ~ 20℃,误差<3℃

TSENS_DAC_DEFAULT = TSENS_DAC_L2

2、通过调用方法temp_sensor_start()来启动温度传感器,开始温度测量。
3、获取当前温度

float tsens_out = 0.0;
temp_sensor_read_celsius(&tsens_out);

4、通过调用方法temp_sensor_stop()来关闭温度传感器,停止温度测量。
5、使用例程

#include "driver/temp_sensor.h"

void setup() 
{
  Serial.begin(115200);
  temp_sensor_config_t temp_sensor = {
    .dac_offset = TSENS_DAC_L2,
    .clk_div = 6,
  };
  temp_sensor_set_config(temp_sensor);
  temp_sensor_start();
}

void loop() 
{
  float tsens_out;
  temp_sensor_read_celsius(&tsens_out);
  Serial.printf("%f\r\n", tsens_out);
  delay(500);
}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐