使用 RF Receiver 而无需一直从 RF Transmitter 发射

Use RF Receiver without transmitting all the time from RF Transmitter

我一直在读取这个 RF Receiver 的输入,方法是将它的数据引脚连接到我的 Arduino 的模拟引脚并将其发送到串行监视器。如果我什么都不传输,它会读取一些嘈杂的输入。我已经通过在模拟引脚和地之间放置一个 10K 电阻来检查模拟引脚不会引入任何噪声。但是,当我传输时,比方说,一个延迟为 100 毫秒的恒定开-关脉冲序列,它的读数就像没有噪音一样。如果我仔细观察串行监视器,我会注意到 none 个零完全被扰乱了,它只是普通的零和 700(大约)。所以我的结论是,如果 RF 接收器没有检测到任何东西,它就会发疯。我读到你应该一直传输一些脉冲序列,即使你不想传输任何特别的东西,以保持接收器处于和平状态,并且不会弄乱你的重要数据。我的问题是,有什么办法可以绕过这个吗?射频发射器端将由电池供电,我想这个恒定的脉冲串会很快耗尽它。提前谢谢你。

这是正常的,接收器输出噪声。

那些非常便宜的 RF 发射器和接收器在 RF 板上没有芯片来处理协议(如何调制无线电信号以及如何将数据转换为 RF 数据)。 Arduino什么都要做,定时、协议、数据检测,什么都做。

可以打开和关闭发射器。这就是为什么它被称为 ASK 调制(开和关)。
接收器有一个 自动增益 并接收一切。当没有传输任何东西时,接收器会增加增益,直到它接收到大量噪声。当数字输入与中断一起使用时,每秒可能有数千次中断无用的噪音。

要实现这些功能,您需要一个进行传输和接收的库,包括用于传输数据的协议。最好的库是 VirtualWire/RadioHead。我建议在 RH_ASK 模式下使用 RadioHead。有 "ask" 个示例展示了如何使用该库。

这个VirtualWire/RadioHead在检测数据包间的噪音方面确实不错

如果你不想为了射频协议而牺牲你的Arduino,那么你可以购买收发模块。他们在射频板上有一个芯片,负责发送和接收。