2015年08月25日 星期二 08:25
小时候着迷无线电,总感觉在空中传播的电波那么神秘。那个时候要做一个什么设备,都得从电容、电阻、晶体管的最底层搞起,困难重重。
前些天在淘宝网上买了一套无线收发模块,便宜的让我吃惊,一套只要不到3块钱,模块上的元器件也不少,商家这是在赔本卖么?
这个模块的硬件接口非常简单,除了电源引脚之外,就是数据接收引脚和数据发送引脚,除此无它。所以,这种模块是单工通信,也就是说,一套模块只能完成数据的单方向发送和接收。
我本以为这样廉价的模块效果不会有多好,但在我实践之后,我转变了看法。
正是由于这种模块非常便宜,所以用户非常多,大家在使用的过程中积累了好多经验,有人还把这些经验封装为代码库,供更多的人使用。这其中有一个叫做VirtualWire的Arduino Library,非常好用,并且可以支持多种类似的无线模块。
我使用两个Arduino开发板来做测试,一个作为发射端,一个作为接收端。刚开始的时候,我没有连接任何天线,经实际测试,通信距离在大于3米后,就开始不稳定了。后来按照建议,用25厘米左右的导线作为天线,通信距离和可靠性大大增加,十米以外并隔了一堵玻璃墙,运行非常稳定。
根据网友的测试经验,在开阔地带,通信距离可以超过100米。
发送端的代码如下:
接收端的代码如下:
接收端收到的数据:
参考资料:
http://www.pjrc.com/teensy/td_libs_VirtualWire.html
http://www.instructables.com/id/RF-315433-MHz-Transmitter-receiver-Module-and-Ardu/
http://www.pjrc.com/teensy/arduino_libraries/VirtualWire.zip
Zeuux © 2024
京ICP备05028076号