terça-feira, 22 de janeiro de 2013

Review receptor RF 433Mhz

Introdução:



No mercado existe vários tipos e meios de comunicação para usar com Arduino. A comunicação entre eles é feita utilizando a biblioteca Virtual Wire e a documentação disponível aqui.



Neste tutorial vamos mostrar como mandar uma mensagem utilizando o transmissor RF 433Mhz com um Arduino e recebendo a mensagem utilizando o receptor RF 433Mhz com outro Arduino.

Antes de mais nada, baixe a biblioteca Virtual Wire e extraia para a pasta "libraries" localizada dentro da pasta da IDE do Arduino. Nesta biblioteca é bem fácil de usar, pois já existe um tratamento de erros para filtrar os erros que chegam no receptor.



Esse modulo é muito útil, tem grande alcance, é barato, opera a baixa tensão e consome pouca corrente. Como o sinal de RF é largamente usado por outros eletrônicos existem interferências, essas são tratadas por software, o que torna esses módulos muito especiais e uteis para todos projetos.




Características:



Modelo 433Mhz
Cor Verde
Material Cobre + plástico + PCB
Características Tensão de funcionamento: DC 5V,
Corrente de repouso: 4mA;
Modo de modulação: OOK; Recebendo a sensibilidade:-105dBm,
Freqüência de operação: 433.90MHz





Código de Exemplo:



#include <VirtualWire.h>
int led = 13;

void setup()
{
    Serial.begin(9600);
    Serial.println("Modulo Receptor");
    Serial.println("Acao dos comandos:");
    Serial.println("Comando 1: Acende 1 led");
    Serial.println("Comando 2: Acende 2 leds");
    Serial.println("Comando 3: Acende 3 leds");
    pinMode(led, OUTPUT);
    vw_setup(2000);
    vw_rx_start();
}

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++)
{
           digitalWrite(led, HIGH);
           Serial.print((char)buf[i]);
           digitalWrite(led, LOW);
}
           if(strcmp((char*)buf,"1")==0)
              {
                Serial.println("");
                Serial.print("Comando 1 recebido");
              }
           
           if(strcmp((char*)buf,"2")==0)
              {
                Serial.println("");
                Serial.print("Comando 2 recebido");
              }
           
           if(strcmp((char*)buf,"3")==0)
              {
                Serial.println("");
                Serial.print("Comando 3 recebido");
              }              
Serial.println("");
    }
}



Nenhum comentário:

Postar um comentário