Arduino - Comunicazione wireless

I moduli trasmettitore e ricevitore wireless funzionano a 315 Mhz. Possono facilmente adattarsi a una breadboard e funzionare bene con i microcontrollori per creare un collegamento dati wireless molto semplice. Con una coppia di trasmettitore e ricevitore, i moduli funzioneranno solo comunicando dati unidirezionali, tuttavia, sarebbero necessarie due coppie (di frequenze diverse) per agire come una coppia trasmettitore / ricevitore.

Note- Questi moduli sono indiscriminati e ricevono una discreta quantità di rumore. Sia il trasmettitore che il ricevitore funzionano a frequenze comuni e non hanno ID.

Specifiche del modulo ricevitore

  • Modello prodotto - MX-05V
  • Tensione di esercizio - DC5V
  • Corrente di riposo: 4 mA
  • Frequenza di ricezione - 315 Mhz
  • Sensibilità del ricevitore: -105 dB
  • Dimensioni: 30 x 14 x 7 mm

Specifiche del modulo trasmettitore

  • Modello prodotto - MX-FS-03V
  • Distanza di lancio - 20-200 metri (tensione diversa, risultati diversi)
  • Tensione di esercizio: 3,5-12 V.
  • Dimensioni: 19 x 19 mm
  • Modalità operativa - AM
  • Velocità di trasferimento - 4KB / S
  • Potenza di trasmissione: 10 mW
  • Frequenza di trasmissione - 315 Mhz
  • Un'antenna esterna: linea multi-core o single-core da 25 cm
  • Pinout da sinistra a destra - (DATA; V CC ; GND)

Componenti richiesti

Avrai bisogno dei seguenti componenti:

  • Scheda 2 × Arduino UNO
  • 1 × trasmettitore di collegamento Rf
  • 1 × ricevitore di collegamento Rf

Procedura

Seguire lo schema del circuito ed effettuare i collegamenti come mostrato nell'immagine sotto riportata.

Schizzo

Apri il software IDE Arduino sul tuo computer. La codifica nella lingua Arduino controllerà il tuo circuito. Aprire un nuovo file di schizzo facendo clic su Nuovo.

Note- È necessario includere la libreria della tastiera nel file della libreria Arduino. Copia e incolla il file VirtualWire.lib nella cartella delle librerie come evidenziato nello screenshot riportato di seguito.

Codice Arduino per trasmettitore

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

Codice da notare

Questo è un codice semplice. In primo luogo, invierà il carattere "1" e dopo due secondi invierà il carattere "0" e così via.

Codice Arduino per ricevitore

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

Codice da notare

Il LED collegato al pin numero 5 sulla scheda Arduino si accende quando viene ricevuto il carattere "1" e si spegne quando viene ricevuto il carattere "0".