仪器社区
登录
首页
找仪器
社区
百科
新品
供应商
品牌
应用
资料
仪企号
展会
标准
求购
招中标
请问大神 为什么程序 超声波测距返回值一直是0.03 或0.05的错误值
0皇霸天下0
2017-08-23
#include <.h> const int trig = 8; // 触发信号 const int echo = 5; // 反馈信号 #include
Servo myservo0; float pos0 = 0; float i= 45; float S=100; void setup() { pinMode(echo, INPUT); pinMode(trig, OUTPUT); //触发端... #include <.h> const int trig = 8; // 触发信号 const int echo = 5; // 反馈信号 #include
Servo myservo0; float pos0 = 0; float i= 45; float S=100; void setup() { pinMode(echo, INPUT); pinMode(trig, OUTPUT); //触发端口设置为输出,反馈端口设置为输入 Serial.begin(9600); myservo0.attach(9); myservo1.attach(10); myservo2.attach(11); myservo3.attach(6);// attaches the servo on pin 9 to the servo object } void loop() { long IntervalTime=0; //定义一个时间变量 for(pos0 = i; pos0 < 48; pos0 += 0.5) // goes from 0 degrees to 180 degrees { // in steps of 1 degree myservo0.write(pos0); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } i=pos0; for(pos1 = k; pos1 <73; pos1+= 0.5) // goes from 0 degrees to 180 degrees { // in steps of 1 degree myservo1.write(pos1); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } k=pos1; while(S>15){ S=0; digitalWrite(trig, 1);//置高电平 delayMicroseconds(15);//延时 15us digitalWrite(trig, 0);//设为低电平 IntervalTime=pulseIn(echo, HIGH);//用自带的函数采样反馈的高电平的宽度, 单位 us float S=IntervalTime/58.00; //使用浮点计算出距离,单位 cm Serial.println(S);//通过串口输出距离数值 IntervalTime=0;//对应的数值清零。 delay(500);//延时间隔决定采样的频率,根据实际需要变换参数 }
评论
全部评论
549228752QQ吧
先看看硬件是否有问题,硬件没有问题的前提下,应该是软件出问题了。软件只能慢慢仿真。
20
0
2017-08-23
0条评论
回复
您可能感兴趣的社区主题
新品推荐|Fluke ii910
超声波
局放成像仪
812
超声成像设备
雷达:
超声波
or电磁波
1068
雷达物位计
昆山超声教您采购
超声波
清洗机时,如何选择超声功率大小
728
超声波清洗器
工业
超声波
清洗机使用时需的注意事项
755
超声波清洗器
超声波
清洗机使用注意事项
800
超声波清洗器
实验室里的好帮手 小美
超声波
清洗机低频和高频介绍
690
超声波清洗器
在分户计量中
超声波
热量表安装要求
441
热量计
超声波
流量计使用方法和参数
774
超声波流量计
超声波
液位计测量原理及故障处理方法
122
加载中...
已显示全部信息
评论
选购仪器 上yiqi.com
仪器网络推广
品牌网上传播
长按识别二维码查看信息详情