Pico 的 RP2040 芯片内部集成了一路温度传感器,固定接在 ADC4 通道上。不用外接任何元件,程序里直接读它就能得到芯片温度。
GP26 / GP27 / GP28 是 ADC0/1/2,留给外接模拟器件)[接线图占位,后续添加]
无外接器件,Pico 独立运行即可。
# ============ 接线 ============
# 无外接器件,读的是 Pico 芯片内部的温度传感器(ADC4)
# 注意:它测的是芯片自身温度,跑程序会发热,比室温偏高几度
# =============================
from machine import ADC
import time
temp_sensor = ADC(4) # RP2040 内部温度传感器固定在 ADC4
def read_temperature():
value = temp_sensor.read_u16()
voltage = value * 3.3 / 65535
# RP2040 数据手册公式:T = 27 - (V - 0.706) / 0.001721
temperature = 27 - (voltage - 0.706) / 0.001721
return temperature
print('读取 Pico 板载温度传感器')
while True:
print(f'温度: {read_temperature():.1f}°C')
time.sleep(1)
GP26 / GP27 / GP28 仍可外接ADC(4) 是内部传感器,写 ADC(0) 读到的是 GP26 上的外部电压Q: 读出来比室温高好几度,是不是坏了? A: 正常。传感器在芯片内部,芯片一工作就发热,读数天然高于环境温度。
Q: 能不能用它测房间温度? A: 不建议。测环境温度用 05 页的 DHT11,或外接专用温度传感器。
Q: 想练 ADC 读取,除了这个还能接什么?
A: 电位器、光敏电阻接 GP26 / GP27 / GP28 都能读,数值随转动或光照变化,比板载温度直观。