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 將熄滅。

廣告