📅  最后修改于: 2020-11-05 03:46:31             🧑  作者: Mango
无线发射器和接收器模块的工作频率为315 Mhz。它们可以轻松地安装在面包板上,并且可以与微控制器配合使用,从而创建非常简单的无线数据链路。使用一对发送器和接收器时,这些模块只能单向通信数据,但是,您需要两对(不同频率的)作为发送器/接收器对。
注–这些模块是不加区别的,并且会接收大量噪声。发射器和接收器都工作在公共频率上,并且没有ID。
您将需要以下组件-
按照电路图进行连接,如下图所示。
打开计算机上的Arduino IDE软件。使用Arduino语言进行编码将控制您的电路。通过单击“新建”打开一个新的草图文件。
注意-您必须在您的Arduino库文件中包含键盘库。将VirtualWire.lib文件复制并粘贴到库文件夹中,如下面给出的屏幕快照中突出显示的那样。
//simple Tx on pin D12
#include
char *controller;
void setup() {
pinMode(13,OUTPUT);
vw_set_ptt_inverted(true);
vw_set_tx_pin(12);
vw_setup(4000);// speed of data transfer Kbps
}
void loop() {
controller="1" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,1);
delay(2000);
controller="0" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,0);
delay(2000);
}
这是一个简单的代码。首先,它将发送字符“ 1”,两秒钟后将发送字符“ 0”,依此类推。
//simple Rx on pin D12
#include
void setup() {
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_rx_pin(12);
vw_setup(4000); // Bits per sec
pinMode(5, OUTPUT);
vw_rx_start(); // Start the receiver PLL running
}
void loop() {
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking {
if(buf[0]=='1') {
digitalWrite(5,1);
}
if(buf[0]=='0') {
digitalWrite(5,0);
}
}
}
当接收到字符“ 1”时,连接到Arduino板上引脚号5的LED点亮,而在接收到字符“ 0”时熄灭。