无线收发+超声波

2019-03-24 20:31发布

QHY]MLWSR)RFJL6%5ICJ0WM.jpg 为什么超声波的值没有变化啊?那就是只能发出一次数据咯?为什么啊?



此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
农逸
1楼-- · 2019-03-25 23:42
 精彩回答 2  元偷偷看……
tianshuihu
2楼-- · 2019-03-26 02:54
不知道你的软件流程是怎么安排的,超声用到中断了吗,无线负责把数据传出去是吗

我觉得初始化完成之后,在主循环可以如下操作(定时中断处理超声回波信号)

查询上次的超声测距是否完成
  未完成则继续等待,并把上次的距离无线传回
  如果已完成则 发一到三个超声波脉冲 ,并把测得的距离无线传回


定时器中断处理两个事件,一是超声回波信号触发的中断,根据时间即可判断距离,获得距离之后在这里更新,主函数只是把最新的距离传回
二是超时中断,这个是处理超声发出去之后没有回波的情况的
以上情况有一个发生,即可判定一次测距完成


农逸
3楼-- · 2019-03-26 05:23
tianshuihu 发表于 2014-4-3 11:33
不知道你的软件流程是怎么安排的,超声用到中断了吗,无线负责把数据传出去是吗

我觉得初始化完成之后, ...

不明白?我的思路是,超声波、无线都是直接用外部中断来处理的,超声波的的是ECHO为为高时就打开定时器,接收到回波的时候就产生一个中断,然后再在终端里边进行数据处理,然后就直接把转换来的超声波的数据赋给发送端的数组,之后就是在循环里边对数据进行循环发送的。刚才我试过了,没有超声波的时候,无线模块是能循环发送数据的。
tianshuihu
4楼-- · 2019-03-26 08:38
基本上明白你的思路了,看你的主循环应该是发一个超声,等待回波,无线发送数据,但是有个问题

万一在 20 ms(看你的极限探测距离来设定,20ms对应3.4m左右) 之后还收不到回波信号你是如何处理的
你的while主循环中还有一个 while 判断,这个判断的条件如果一直为真的话岂不是要一直等下去,建议改为while(xxx & num--), num可以设一个保险的值
农逸
5楼-- · 2019-03-26 14:34
tianshuihu 发表于 2014-4-3 17:31
基本上明白你的思路了,看你的主循环应该是发一个超声,等待回波,无线发送数据,但是有个问题

万一在 2 ...

按照你的想法试过了,没见的呢,关键是我不是很明白while那里这样改的意思呢
农逸
6楼-- · 2019-03-26 17:13
成功了!!原来是超声波的触发被之后的赋值覆盖掉了的,最后我用示波器测超声波,什么也没有,最后换了个引脚就行了,感谢天感谢地啊!

一周热门 更多>