terça-feira, 22 de janeiro de 2013

Review transmissor 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.

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
Tensão de funcionamento: 3-12V
Freqüência de trabalho: 433,92 MHz
Corrente de espera: 0mA, de trabalho: 20 ~ 28mA,
Modo de modulação: alcance, OOK Transmissão:> 500m (Recebendo a sensibilidade:-103dBm);
Taxa de transmissão: <10Kbps
Vários tipos de aplicação de produtos eletrônicos





Código de Exemplo:



#include <VirtualWire.h>

int led = 13;
String leituraString;
String leituraAnterior;
char c;

void setup()
{
    Serial.begin(9600);
    Serial.println("Modulo Emissor");
    pinMode(led, OUTPUT);
    vw_setup(2000);
    Serial.println("Comandos Disponiveis:");
    Serial.println("primeiro");
    Serial.println("segundo");
    Serial.println("terceiro");
}


void loop()
{
    while (Serial.available())
    {
      delay(10);
      c = Serial.read();
      leituraString += c;
    }  
        if (leituraString.length()>0)
          {
            Serial.println(leituraString);
            leituraAnterior=leituraString;
            leituraString="";
          }
              if (leituraAnterior=="primeiro")
              {
                leituraAnterior="";
                const char *msg_1 = "1";
                digitalWrite(led, HIGH);
             
                vw_send((uint8_t *)msg_1, strlen(msg_1));
                vw_wait_tx();
                delay(300);
             
                digitalWrite(led, LOW);
                delay(1000);
              }
           
              if (leituraAnterior=="segundo")
              {
                leituraAnterior="";
                const char *msg_2 = "2";
                digitalWrite(led, HIGH);
             
                vw_send((uint8_t *)msg_2, strlen(msg_2));
                vw_wait_tx();
                delay(300);
             
                digitalWrite(led, LOW);
                delay(1000);
              }
           
             if (leituraAnterior=="terceiro")
              {
                leituraAnterior="";
                const char *msg_3 = "3";
                digitalWrite(led, HIGH);
             
                vw_send((uint8_t *)msg_3, strlen(msg_3));
                vw_wait_tx();
                delay(300);
              }
          digitalWrite(led, LOW);
          delay(400);
}

Nenhum comentário:

Postar um comentário