这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » Adafruit-ESP32-S3-TFT-Feather+实现ADC的功能采集

共1条 1/1 1 跳转至

Adafruit-ESP32-S3-TFT-Feather+实现ADC的功能采集内部温度

菜鸟
2026-08-24 19:03:11     打赏

一、Adafruit ESP32‑S3 TFT Feather 读取内部温度传感器(ADC 内部温度)

Adafruit ESP32‑S3 TFT Feather,板载 ST7789 屏幕,ESP32‑S3 内置内部温度传感器,不需要外接任何元件 

ESP32‑S3 内部温度传感器是ADC1 的通道 10,属于内部 ADC,不是外部 ADC 引脚。


ESP32‑S3 内部温度传感器:

硬件通道:ADC1_CHANNEL_10

读取方式:调用 ESP‑IDF 底层 API,Arduino‑ESP32‑S3 框架封装好函数

注意:内部温度读数是芯片结温,不是环境温度,芯片发热会造成读数偏高。

精度一般:±1~2℃,适合做芯片温度监测,不适合高精度环境测温。


底层 ADC 配置,精细控制,校准。

ESP32‑S3 ADC1 与 SPI 屏幕不冲突,内部温度传感器不占用外部 GPIO。



二,代码

void setup() {
  Serial.begin(115200);
  while (!Serial) {
    delay(10);
  }
  Serial.println("XIAO ESP32S3 温度监测开始...");
}

void loop() {
  float temperature = temperatureRead();

  Serial.print("芯片内部温度: ");
  Serial.print(temperature);
  Serial.println(" °C");

  delay(1000);
}

 

三、代码讲解

setup () 初始化部分

Serial.begin(115200);

开启串口通信,波特率 115200。 电脑串口监视器要设置同样波特率,才能看到打印输出。

while (!Serial) { delay(10); }

这是USB 虚拟串口等待,XIAO ESP32‑S3 使用 USB‑CDC 虚拟串口。

!Serial:判断串口是否还没有被电脑打开。

如果电脑没有打开串口监视器,程序就卡在循环等待;

一旦打开串口监视器,Serial变为 true,跳出循环继续往下执行。

delay(10):每次循环等待 10ms,避免 CPU 空跑。

作用:防止程序刚上电就打印信息,导致串口监视器接收不到开头的打印文本。 

只有 USB 虚拟串口才需要这句;硬件 UART 串口不需要。

Serial.println("XIAO ESP32S3 温度监测开始...");

串口打印一行文字,换行输出。

loop () 循环主程序

float temperature = temperatureRead();

temperatureRead():XIAO ESP32‑S3 专用内置函数

读取芯片内部 ADC 温度传感器,返回浮点型温度值,单位℃。

底层对应 ESP32‑S3 的ADC1_CHANNEL_10内部温度传感器。

读出来是芯片结温。芯片工作、USB 供电发热,数值会比真实环境温度高好几度。

串口打印

Serial.print("芯片内部温度: ");
Serial.print(temperature);
Serial.println(" °C");

Serial.print():打印内容不换行

Serial.println():打印完自动换行 示例输出:

XIAO ESP32S3 温度监测开始...
芯片内部温度: 42.3 °C
芯片内部温度: 43.1 °C
芯片内部温度: 43.8 °C

delay(1000);

延时 1000 毫秒 = 1 秒,每秒读取并打印一次温度。


四、软件流程图

image.png

五、硬件工作流程

image.png

六、实现效果

image.png




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]