You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jsn-sr04t防水超声波传感器在树莓派Zero W1上读数异常求助

JSN-SR04T 树莓派Zero W 持续输出#问题解决

以下是针对问题的具体排查和修复方案:

  • 移除ECHO引脚的上拉电阻配置
    代码中GPIO.setup(GPIO_ECHO, GPIO.IN, pull_up_down=GPIO.PUD_UP)的上拉电阻会强制ECHO引脚保持高电平,导致程序无法检测到声波触发后的起始低电平,直接触发超时返回-1。修改为:

    GPIO.setup(GPIO_ECHO, GPIO.IN)
    
  • 增大超时时间阈值
    当前MAX_TIME = 0.004仅对应约0.68米的探测距离(声波往返时间),远小于JSN-SR04T的最大探测范围。调整为:

    MAX_TIME = 0.03  # 对应约5米的最大探测距离,可根据实际需求调整
    
  • 检查电平兼容性(关键硬件点)
    JSN-SR04T多为5V供电模块,其ECHO引脚输出可能为5V电平,而树莓派GPIO仅支持3.3V输入。直接连接可能导致信号读取异常甚至损坏引脚,建议在ECHO引脚和树莓派之间添加分压电路(如1kΩ+2kΩ电阻串联,取中间节点接入树莓派)。

  • 优化触发脉冲宽度
    部分JSN-SR04T模块对触发脉冲宽度要求更高,将触发时间从10微秒调整为15微秒,确保模块能可靠识别触发信号:

    TRIGGER_TIME = 0.000015
    

修改后的完整代码

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO_TRIGGER = 10
GPIO_ECHO = 8

TRIGGER_TIME = 0.000015
MAX_TIME = 0.03  # 对应约5米最大探测距离
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)

GPIO.output(GPIO_TRIGGER, False)

def measure():
    GPIO.output(GPIO_TRIGGER, True)
    time.sleep(TRIGGER_TIME)
    GPIO.output(GPIO_TRIGGER, False)

    start = time.time()
    timeout = start + MAX_TIME
    while GPIO.input(GPIO_ECHO) == 0 and start <= timeout:
        start = time.time()

    if start > timeout:
        return -1

    stop = time.time()
    timeout = stop + MAX_TIME
    while GPIO.input(GPIO_ECHO) == 1 and stop <= timeout:
        stop = time.time()

    if stop <= timeout:
        elapsed = stop - start
        distance = float(elapsed * 34300) / 2.0
    else:
        return -1
    return distance

if __name__ == '__main__':
    try:
        while True:
            distance = measure()
            if distance > -1:
                print("Measured Distance = %.1f cm" % distance)
            else:
                print("#")
            time.sleep(0.5)
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

内容的提问来源于stack exchange,提问作者Guido Vilardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 02:06:35