当前位置: 首页 > 文档资料 > Arduino 中文教程 >

Arduino - 无线通信( Wireless Communication)

优质
小牛编辑
125浏览
2023-12-01

无线发射器和接收器模块的工作频率为315 Mhz。 它们可以轻松放入面包板中,并与微控制器配合使用,创建非常简单的无线数据链路。 使用一对发送器和接收器,模块只能单向通信数据​​,但是,您需要两对(不同频率)作为发送器/接收器对。

Note - 这些模块是不加选择的,并且会收到相当多的噪音。 发射器和接收器都以共同的频率工作,没有ID。

无线通信

接收器模块规格

  • 产品型号 - 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; V CC ; GND)

组件的要求 (Components Required)

您将需要以下组件 -

  • 2×Arduino UNO板
  • 1×Rf链路发射机
  • 1×Rf链路接收器

过程 (Procedure)

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

无线通信连接

草图 (Sketch)

在您的计算机上打开Arduino IDE软件。 用Arduino语言编码将控制你的电路。 单击“新建”打开新的草图文件。

草图

Note - 您必须在Arduino库文件中包含键盘库。 将VirtualWire.lib文件复制并粘贴到libraries文件夹中,如下面的屏幕截图所示。

Arduino库文件

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);
}

Code to Note

这是一个简单的代码。 首先,它将发送字符'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);
      }
   }
}

Code to Note

当接收到字符“1”时,连接到Arduino板上的引脚号5的LED接通,当接收到字符“0”时,变为OFF。