Arduino论坛
直播中

四个2代两王

7年用户 3经验值
私信 关注
[问答]

Arduino 超声波测距都为0cm

我的程序已经编译成功,并且上传到了板子中,但是返回来的存储时间为0,测距都是0.下面是我的超声波测距代码:/*Arduino UNO与US-100超声波模块测试
电平触发模式
*/

const int TrigPin = 7;
const int EchoPin = 8;
float cm;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);

cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
cm = (int(cm * 100.0)) / 100.0; //保留两位小数
Serial.print("Distance:");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
}



回帖(4)

houjue

2017-11-1 10:54:18
你不觉得delayMicroseconds(2); 有些小么?当然不排除你想检测的距离较小,但什么东西都有一个测量范围的。
举报

SCCHAM

2017-11-3 22:00:33
采用IO触发测距,给至少10us的高电平信号;  


digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);                  //你这是10ns不是10us
举报

苏打水丶

2018-9-13 12:33:20
可能是你引脚不对吧。论坛不是有一个完整的么?两个引脚一个是数字引脚,一个是模拟信号引号,你这两个都输数字输出输入的引脚。
举报

何路

2018-9-23 17:31:45

有现成的库可以调用:
SR04.rar (2.51 KB)
(下载次数: 77, 2018-9-23 17:31 上传)

举报

更多回帖

发帖
×
20
完善资料,
赚取积分