极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11062|回复: 7

自问自答“帮忙给点意见,关于arduino之间互相通讯问题”

[复制链接]
发表于 2014-3-2 08:11:42 | 显示全部楼层 |阅读模式
本帖最后由 邵林寺 于 2014-3-2 15:09 编辑

最近想做无线的开关,要求A通过无线发送数据给B和C,B和C执行完数据后依次返回执行结果给A.
找了好久也没找到合适的模块,蓝牙串口不合适,315模块、433模块试过,不稳定。24L01貌似只能单发多收。
希望了解的给指一条路。。。。。
[attachimg]17137



也是没有多少人回复,所以这周末自己研究了433Mhz和315Mhz的模块,大家都知道用RCSwitch.h库可以实现单发多收。
然后重点回传问题:库里边单发和单收的例子如果放在一起,要么只能收,要么只能发射,,,,,无语加郁闷。。。后来看到“蓝牙到433MHz无线通讯中转盒” 这篇文章,仔细阅读,然后看了代码,深受启发  啊啊啊啊,,在这里感谢“Alexie ”的无私奉献。

自己考虑是否可以自己写一个简单的通讯协议,说做就做:其实很简单:
  1.模块默认--主从都处在无线接收状态
  2.主模块有外部触发,转为发送状态---发送数据完成---主模块转为接收---等待从模块返回结果---判断---正确复位,错误重发/报警。
  3.从模块接收数据---从模块执行命令完成---转为发送状态---发送当前状态。
  4.从模块有外部触发---从模块执行触发完成,转为发送状态--发送当前状态完成---等待主模块返回信息--判断--正确复位,错误重发/报警。
5.轮询,主模块发送轮询信号----从模块接收后回传状态信号----主模块判断回传信息---正确复位,错误重发/报警。


存在的缺陷:1.协议过于简单
            2.存在通讯冲突问题。但对于要求不高的场合,冲突就冲突吧,够用即可。
            3.最大的缺点就是造价太便宜了。。。适合平民化玩玩。
            

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2014-3-2 13:27:43 | 显示全部楼层
一股百多業通訊距離來說,SI4432無線模塊應可應付。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-2 14:45:33 | 显示全部楼层
eddiewwm 发表于 2014-3-2 13:27
一股百多業通訊距離來說,SI4432無線模塊應可應付。

对谢,多谢。。。。。
回复 支持 反对

使用道具 举报

发表于 2014-3-3 19:17:29 | 显示全部楼层
24L01可以多发一收的,最多可以支持SERVER节点开六个通道,因为你是轮询方式请求数据,不会出现包冲突的情况。如果开启自动应答的话,你协议里面的重发机制可以硬件完成的。至于距离问题,PCB天线0dBm一般来说二三十米问题不大,用SMA天线距离更长。就酱。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-3 22:12:59 | 显示全部楼层
Rayne_Hwang 发表于 2014-3-3 19:17
24L01可以多发一收的,最多可以支持SERVER节点开六个通道,因为你是轮询方式请求数据,不会出现包冲突的情况 ...

嗯,24l01已经淘宝订货了,正在路上,等到了研究一下,有不会的地方还请多多指教
回复 支持 反对

使用道具 举报

发表于 2015-3-13 23:12:29 | 显示全部楼层
请问,协议最后写好了,正好碰上类似问题,请教了!
回复 支持 反对

使用道具 举报

发表于 2015-3-14 22:59:48 | 显示全部楼层
继续求助!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-16 15:27:26 | 显示全部楼层
还真的写好了,需要的话加我qq吧
247196451
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-18 19:44 , Processed in 0.044585 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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