课程表

Arduino 基础

Arduino 函数库

Arduino 进阶

Arduino 项目

Arduino 传感器

Arduino 电机控制

Arduino 声音

工具箱
速查手册

Arduino 无线通信

当前位置:免费教程 » 程序设计 » Arduino

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

注意 - 这些模块是随意的,并且收到相当大的噪音。 发射器和接收器都在共同的频率下工作,并且没有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; VCC; GND)
 

必需的组件

您将需要以下组件 -

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

程序

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

电路图

 

草图

在计算机上打开Arduino IDE软件。 在Arduino语言编码将控制你的电路。 通过单击新建打开一个新的草图文件。

Sketch

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

在Arduino库文件中包含键盘库

 

发射机的Arduino代码

  1. //simple Tx on pin D12
  2. #include <VirtualWire.h>
  3. char *controller;
  4.  
  5. void setup() {
  6. pinMode(13,OUTPUT);
  7. vw_set_ptt_inverted(true);
  8. vw_set_tx_pin(12);
  9. vw_setup(4000);// speed of data transfer Kbps
  10. }
  11.  
  12. void loop() {
  13. controller="1" ;
  14. vw_send((uint8_t *)controller, strlen(controller));
  15. vw_wait_tx(); // Wait until the whole message is gone
  16. digitalWrite(13,1);
  17. delay(2000);
  18. controller="0" ;
  19. vw_send((uint8_t *)controller, strlen(controller));
  20. vw_wait_tx(); // Wait until the whole message is gone
  21. digitalWrite(13,0);
  22. delay(2000);
  23. }

 

代码说明

这是一个简单的代码。 首先,它将发送字符\'1\',两秒后它将发送字符\'0\',以此类推。

 

接收器的Arduino代码

  1. //simple Rx on pin D12
  2. #include <VirtualWire.h>
  3.  
  4. void setup() {
  5. vw_set_ptt_inverted(true); // Required for DR3100
  6. vw_set_rx_pin(12);
  7. vw_setup(4000); // Bits per sec
  8. pinMode(5, OUTPUT);
  9. vw_rx_start(); // Start the receiver PLL running
  10. }
  11.  
  12. void loop() {
  13. uint8_t buf[VW_MAX_MESSAGE_LEN];
  14. uint8_t buflen = VW_MAX_MESSAGE_LEN;
  15. if (vw_get_message(buf, &buflen)) // Non-blocking {
  16. if(buf[0]=='1') {
  17. digitalWrite(5,1);
  18. }
  19. if(buf[0]=='0') {
  20. digitalWrite(5,0);
  21. }
  22. }
  23. }

 

代码说明

连接到Arduino板上引脚号5的LED在接收到字符\'1\'时变为ON,当接收到字符\'0\'时变为OFF。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号