Arduino-wireless-communication

提供:Dev Guides
移動先:案内検索

Arduino-ワイヤレス通信

ワイヤレストランスミッターとレシーバーモジュールは315 Mhzで動作します。 ブレッドボードに簡単に収まり、マイクロコントローラーとうまく機能して、非常にシンプルなワイヤレスデータリンクを作成できます。 1組の送信機と受信機では、モジュールは一方向のデータ通信のみを行いますが、送信機/受信機のペアとして機能するには2つのペア(異なる周波数)が必要です。

-これらのモジュールは無差別であり、かなりの量のノイズを受け取ります。 送信機と受信機は両方とも共通の周波数で動作し、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)

必要なコンポーネント

次のコンポーネントが必要になります-

  • 2×Arduino UNOボード
  • 1×Rfリンク送信機
  • 1×Rfリンクレシーバー

手順

回路図に従って、以下の画像に示すように接続します。

ワイヤレス通信接続

スケッチ

コンピューターでArduino IDEソフトウェアを開きます。 Arduino言語でコーディングすると、回路が制御されます。 [新規]をクリックして、新しいスケッチファイルを開きます。

スケッチ

注意-Arduinoライブラリファイルにキーパッドライブラリを含める必要があります。 以下のスクリーンショットで強調表示されているように、ライブラリフォルダーにVirtualWire.libファイルをコピーして貼り付けます。

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

注意すべきコード

これは簡単なコードです。 まず、文字「1」を送信し、2秒後に文字「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);
      }
   }
}

注意すべきコード

Arduinoボードのピン番号5に接続されているLEDは、文字「1」を受信するとオンになり、文字「0」を受信するとオフになります。