Raspberry Pi Pico W(Micropython):DHT20传感器SCL引脚错误排查
错误原因及解决方法
核心错误点
- 代码中SDA和SCL被错误设置为同一个GPIO引脚(
Pin(2)),这会导致I2C总线初始化时识别到无效的SCL配置,触发bad SCL pin错误。你在注释里标注了正确的引脚选项,但实际赋值时犯了笔误。 - 引脚编号不匹配:你实际将传感器接在Pico的物理引脚11和12,这两个引脚对应的GPIO编号是GPIO14(物理11)和GPIO15(物理12),代码里的引脚值和实际接线完全不符。
修正后的代码
import machine from machine import Pin, I2C from utime import sleep from dht20 import DHT20 # 对应物理引脚11(GPIO14)和12(GPIO15) i2c0_sda = Pin(14) i2c0_scl = Pin(15) # I2C id=1对应GPIO14/GPIO15的总线 i2c0 = machine.I2C(id=1, sda=i2c0_sda, scl=i2c0_scl) dht20 = DHT20(0x38, i2c0) while True: measurements = dht20.measurements print(f"Temperature: {measurements['t']} °C, humidity: {measurements['rh']} %RH") sleep(1)
额外检查项
- 确认DHT20使用3.3V供电(接Pico的
3V3引脚),不要接5V,避免损坏硬件。 - 如果传感器模块自带上拉电阻可忽略,否则需在SDA、SCL引脚与3V3之间各接一个10kΩ左右的上拉电阻,保证I2C信号稳定。
内容的提问来源于stack exchange,提问作者nn089
相关产品推荐
相关产品推荐

