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

RCWL-1601超声波传感器搭配Raspberry Pi Pico测距异常故障排查

RCWL-1601超声波传感器搭配Raspberry Pi Pico持续显示“Out of range”的排查与解决

问题概述

使用RCWL-1601超声波传感器(Adafruit标注等效HC-SR04)搭配Raspberry Pi Pico测距,接线为VCC接3.3V/5V(两种供电均测试)、Trig接GPIO3、Echo接GPIO2,通过Arduino IDE上传代码后,串口监视器持续输出Distance = Out of range。已排查传感器供电正常、更换过同款传感器、尝试不同Pico引脚、调整UART/I2C跳线,且Blink示例验证Pico烧录功能正常。

关键排查与解决步骤

1. 修改pulseIn超时参数

默认pulseIn超时为1秒,但RCWL-1601最大测距400cm对应的脉冲时长约为23323微秒,手动设置超时可避免提前返回0值。修改代码中pulseIn语句:

duration = pulseIn(echoPin, HIGH, 30000); // 超时设为30000微秒

2. 处理Echo电平兼容性

部分RCWL-1601模块Echo输出为5V电平,Pico GPIO仅支持3.3V输入,长期接入可能损坏引脚。建议:

  • 加分压电路:用1kΩ+2kΩ电阻将5V分压至3.3V后接入Echo引脚
  • 使用双向电平转换模块适配电平

3. 调整触发脉冲时序

部分RCWL-1601对触发脉冲时长要求与HC-SR04略有差异,延长触发高电平时间:

digitalWrite(trigPin, HIGH);
delayMicroseconds(20); // 从10微秒改为20微秒
digitalWrite(trigPin, LOW);

4. 启用Echo引脚上拉电阻

若Echo引脚浮空,可能导致无法检测到脉冲。代码中修改引脚模式为上拉输入:

pinMode(echoPin, INPUT_PULLUP);

也可外接10kΩ上拉电阻至3.3V。

5. 打印duration值定位问题

在代码中添加duration打印语句,直接查看传感器是否返回有效脉冲:

Serial.print("Duration: ");
Serial.println(duration);
  • 若duration始终为0:说明Echo未接收到脉冲,需检查触发信号或传感器工作状态
  • 若duration有数值但计算后超出范围:验证距离转换公式(当前公式(duration/2)*0.0343正确)

6. 示波器同步检测Trig/Echo信号

用示波器同时测量Trig和Echo引脚:

  • 若Trig未输出正常脉冲:排查Pico引脚配置或接线
  • 若Trig有脉冲但Echo无响应:传感器本身可能存在批次问题(即使更换过)
  • 若Echo有脉冲但Pico未检测到:重点排查电平兼容性或引脚配置

调整后的示例代码

#define trigPin 3
#define echoPin 2
float duration, distance;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT_PULLUP); // 启用上拉电阻
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(20); // 延长触发脉冲时长
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH, 30000); // 设置超时时间

  Serial.print("Duration: ");
  Serial.println(duration);

  // 转换并输出距离
  if (duration == 0) {
    Serial.println("Distance = Out of range (timeout)");
  } else {
    distance = (duration / 2) * 0.0343;
    Serial.print("Distance = ");
    if(distance >= 400 || distance <= 2){
      Serial.println("Out of range ");   
    } else{
      Serial.print(distance);
      Serial.println(" cm");
    }
  }
  delay(500);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 20:50:26