极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11015|回复: 2

超声波传感器测距的输出结果

[复制链接]
发表于 2013-7-19 18:35:20 | 显示全部楼层 |阅读模式
本帖最后由 嘿你好 于 2013-7-20 14:53 编辑

简单的超声波传感器测距。图片里是结果,为什么里面会夹杂几个-500?求教导。
问题不在代码吧?:
int inputPin=4; // 定义超声波信号接收接口
int outputPin=5; // 定义超声波信号发出接口
int ledpin=13;
void setup()
{
Serial.begin(9600);
pinMode(ledpin,OUTPUT);
pinMode(inputPin, INPUT);
pinMode(outputPin, OUTPUT);
}
void loop()
{
digitalWrite(outputPin, LOW);
delayMicroseconds(2);
digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs
delayMicroseconds(10);
digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平
int distance = pulseIn(inputPin, HIGH); // 读出脉冲时间
distance= distance/58; // 将脉冲时间转化为距离(单位:厘米)
Serial.println(distance); //输出距离值
delay(50);
if (distance >=50)
{//如果距离大于50厘米小灯亮起
digitalWrite(ledpin,HIGH);
}//如果距离小于50厘米小灯熄灭
else
digitalWrite(ledpin,LOW);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2013-7-20 14:52:25 | 显示全部楼层
好像明白了
应该是测量周期太短,设为60ms后基本就不会出现了。
周期越小,出现的负值的范围就越大,如:完全撤销delay后,出现的负值的可能值为-100至-500.
由于测量周期太短,前一个测量的返回声波对下一次测量造成影响。

(好桑心啊。。自问自答。。都没牛人鸟我。。)
回复 支持 反对

使用道具 举报

发表于 2013-11-25 12:01:46 | 显示全部楼层
给我这样的新手提供帮助了,谢谢,切莫伤心
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 17:53 , Processed in 0.034194 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表