Arduino - 无线通信



无线发射器和接收器模块的工作频率为 315MHz。它们可以轻松地安装在面包板上,并与微控制器配合使用,从而创建非常简单的无线数据链路。一对发射器和接收器只能单向通信数据,但是,如果需要双向通信,则需要两对(不同频率)模块作为发射/接收对。

注意 − 这些模块是非选择性的,会接收相当多的噪声。发射器和接收器都在常用频率下工作,并且没有 ID。

Wireless Communication

接收器模块规格

  • 产品型号 − MX-05V
  • 工作电压 − DC5V
  • 静态电流 − 4mA
  • 接收频率 − 315Mhz
  • 接收灵敏度 − -105DB
  • 尺寸 − 30 * 14 * 7mm

发射器模块规格

  • 产品型号 − MX-FS-03V
  • 发射距离 − 20-200 米(不同电压,结果不同)
  • 工作电压 − 3.5-12V
  • 尺寸 − 19 * 19mm
  • 工作模式 − AM
  • 传输速率 − 4KB / S
  • 发射功率 − 10mW
  • 发射频率 − 315Mhz
  • 外部天线 − 25cm 普通多芯或单芯线
  • 引脚排列(从左到右)− (DATA; VCC; GND)

所需组件

您将需要以下组件 −

  • 2 × Arduino UNO 开发板
  • 1 × 射频链路发射器
  • 1 × 射频链路接收器

步骤

按照电路图,并按照下图所示进行连接。

Wireless Communication Connections

草图

在您的计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。通过点击“新建”打开一个新的草图文件。

Sketch

注意 − 您必须在 Arduino 库文件中包含键盘库。将 VirtualWire.lib 文件复制并粘贴到 libraries 文件夹中,如下面的屏幕截图中突出显示的那样。

Arduino library file

发射器 Arduino 代码

//simple Tx on pin D12
#include <VirtualWire.h>
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”,依此类推。

接收器 Arduino 代码

//simple Rx on pin D12
#include <VirtualWire.h>

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”时,LED 将熄灭。

广告