ESTUDANDO O MUNDO ARDUINO:E ANTECIPANDO O FUTURO:

RECEPTOR E TRANSMISSOR DE RF 

acessar com  www.ebanataw.com.br/arduino/expRF.htm

Componentes básicos para comunicação via RF (rádio frequência), está presente em sistemas de alarmes, controle remoto, aquisição de dados e robótica em geral.

Os módulos RF-433 mHz alcançam até 200 metros sem obstáculos com modulação AM e frequência de trabalho de 433mHz.

Pode também ser usado para comunicação entre Arduinos, enviando sinais de um Arduino para outro. O módulo transmissor funciona com alimentação entre 3,5Volts e 12Volts.

####### ESPECIFICAÇÕES TRANSMISSOR #####

Modelo: MX-FS-03V
Alcance: 20-200 metros (conforme voltagem)
Tensão de operação: 3,5 a 12Volts
Modo de operação: AM (Modulação em Amplitude)
Taxa de transferência: 4K BITS/segundo
Potência de transmissão: 10 mW
Frequência de transmissão: 433 mHz
Pinagem: Dados-VCC-GND (Esq.->Dir.)
Dimensões: 19 x 19mm

###### ESPECIFICAÇÕES RECEPTOR ##########

Modelo: MX-05V
Tensão de operação: 5 Volts DC
Corrente de operação: 4 mA
Frequência de recepção: 433 mHz
Sensibilidade: -105 dB
Dimensões: 30 x 14 x 7 mm

 

MATERIAIS NECESSÁRIOS PARA A MONTAGEM:

2 placas Arduino Uno

1 Módulo RF 433 MHz Transmissor

1 Módulo RF 433 MHz Receptor

1 Push button

1 Led

1 resistor de 220 ohms (resistor pull-up do push-button)

1 resistor de 470 ohms (para o led)

Circuito Arduino Uno - Transmissor

No circuito transmissor o pino DATA do módulo RF será conectado ao pino digital 4 do Arduino. O push-button vai no pino analógico A0, e a alimentação do circuito é de 5 Volts:

Antes de carregar o programa, faça o download da biblioteca VirtualWire, neste link(www.airspayce.com/mikem/arduino/VirtualWire/VirtualWire-1.20.zip). Faça o download, descompacte o arquivo e coloque a pasta VirtualWire dentro da pasta LIBRARIES da IDE do Arduino.

Carregue o programa abaixo no Arduino que será o TRANSMISSOR. Em caso de problemas com a recepção, tente alterar a velocidade de comunicação alterando a linha vw_setup(5000) colocando um valor menor, lembrando que o valor deve ser o mesmo tanto programa do transmissor como do receptor.
O programa verifica se o botão foi pressionado, e nesse caso inverte o valor da variável estado (0 ou 1) para string, enviando esse valor para o módulo transmissor RF.

//Programa : Comunicacao com Modulo RF 433 - Emissor

//Autor : Arduino e Cia

 

#include <VirtualWire.h>

 

//Define pinos Led e Botao

const int ledPin = 13;

const int pino_botao = A0;

 

int valor_botao;

char Valor_CharMsg[4];

//Armazena estado led = ligar/desligar

int estado = 0;

 

void setup()

{

  Serial.begin(9600);  

  pinMode(ledPin,OUTPUT);

  pinMode(pino_botao,INPUT);

  //Pino ligado ao pino DATA do transmissor RF

  vw_set_tx_pin(4);

  //Velocidade de comunicacao (bits por segundo)

  vw_setup(5000);

  Serial.println("Trasmissao modulo RF - Acione o botao...");

}

 

void loop()

{

  //Verifica o estado do push-button

  valor_botao = digitalRead(pino_botao);

  //itoa(valor_botao,Valor_CharMsg,10);

 

  //Caso o botao seja pressionado, envia dados

  if (valor_botao == 0)

  {

    //Altera o estado do led

    estado = !estado;

    //Converte valor para envio

    itoa(estado,Valor_CharMsg,10);

    //Liga o led da porta 13 para indicar envio dos dados

    digitalWrite(13, true);

    //Envio dos dados

    vw_send((uint8_t *)Valor_CharMsg, strlen(Valor_CharMsg));

    //Aguarda envio dos dados

    vw_wait_tx();

    //Desliga o led da porta 13 ao final da transmissao

    digitalWrite(13, false);

    Serial.print("Valor enviado: ");

    Serial.println(Valor_CharMsg);

    delay(500);

  }

} 

Verifique o funcionamento do circuito abrindo o serial monitor e checando se o estado do botão está sendo alterado:

 

Circuito Arduino Uno - Receptor

A alimentação do módulo receptor também é feita por meio do pino 5V do Arduino. O receptor possui 2 pinos de dados, e qualquer um deles pode ser utilizado para ligação ao Arduino, na porta 7. O led que vai acender ou apagar conforme os comandos enviados pelo Arduino Transmissor está ligado à porta 5:

O ideal é alimentar o Arduino com o módulo receptor utilizando uma bateria ou fonte externa, para testar o alcance do módulo.
O programa do receptor recebe do transmissor o valor 0 ou 1 em formato string, converte esse valor para int (inteiro) e aciona a porta 5, ligando ou desligando o led.

 
 
 
//Programa : Comunicacao com Modulo RF 433 - Receptor
//Autor : Arduino e Cia
 
#include <VirtualWire.h>
 
//Define pino led
int ledPin = 5;
 
int valor_recebido_RF;
char recebido_RF_char[4]; 
 
void setup() 
{
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
  //Pino ligado ao pino DATA do receptor RF
  vw_set_rx_pin(7);
  //Velocidade de comunicacao (bits por segundo)
  vw_setup(5000); 
  	//Inicia a recepcao  
  	vw_rx_start();
  Serial.println("Recepcao modulo RF - Aguardando...");
}
 
void loop()
{
    	uint8_t buf[VW_MAX_MESSAGE_LEN];
    	uint8_t buflen = VW_MAX_MESSAGE_LEN;
    
    	if (vw_get_message(buf, &buflen)) 
    	{
    	int i;
        for (i = 0; i < buflen; i++)
       	{            
          	//Armazena os caracteres recebidos  
          	recebido_RF_char[i] = char(buf[i]);
       	}
       	recebido_RF_char[buflen] = '\0';
       
       	//Converte o valor recebido para integer
       	valor_recebido_RF = atoi(recebido_RF_char);
         
       	//Mostra no serial monitor o valor recebido
       	Serial.print("Recebido: ");
       	Serial.print(valor_recebido_RF);
       	//Altera o estado do led conforme o numero recebido
       	if (valor_recebido_RF == 1)
       	{
         digitalWrite(ledPin, HIGH);
         	Serial.println(" - Led aceso !");
       	}
       	if (valor_recebido_RF == 0)
       	{
        	 digitalWrite(ledPin, LOW);
         	Serial.println(" - Led apagado !");
       	}
    	}
}

Você também pode acompanhar o resultado da recepção desse circuito no serial monitor, que vai ter informações sobre o valor recebido e o estado do led: 

 

 

NOTA: Este site é mantido pela equipe do engenheiro Roberto Massaru Watanabe e se destina principalmente para adolecentes e estudantes. Pelo caráter pedagógico do site, seu conteúdo pode ser livremente copiado, impresso e distribuido. Só não pode piratear, isto é, copiar e depois divulgar como se fosse de sua autoria.


ET-18\RMW\arduino\biometrico.htm em 24/03/2018, atualizado em 03/01/2020 .