Módulo RF 433MHz - Receptor e Transmissor






       Os módulos de Rádio Frequência (RF) é popularmente conhecido pelo seu grande uso em acionamento a distância, exemplo portões elétricos. O Módulo RF é composto por no mínimo um módulo receptor(recebe dados) e um módulo transmissor(envia dados).

       Para trabalhar de forma bem simples com este tipo de comunicação sem fio, vamos utilizar os pinos de comunicação UART do microcontrolador para fazer uma comunicação entre módulos. O pino Rx do microcontrolador foi ligado ao pino DATA do módulo Receptor e o pino Tx foi ligado ao pino ATAD do módulo Transmissor. Trabalhando desta forma podemos criar um rede aonde podemos ter um mestre (módulo receptor) e vários escravos (módulo transmissor), nesta configuração os escravos ficam enviando informações para o dispositivo mestre, e o mesmo enviando ao microcontrolador para processamento das informações, um tipo de aplicação que trabalha desta forma são as centrais de alarmes sem fio para residências. 
        Neste post resolvi utilizar o Arduino, fiz alguns teste utilizando a comunicação serial e também fiz uso da biblioteca VirtualWire.h que cria um protocolo de comunicação para trabalhar com qualquer pino digital do AVR.



Código Receptor:

    // receptor 
    // orostec.blogspot.com.br
    // Profº Bruno Orosco
    
    char c[5];
    int i=0;
    void setup() {
      
      Serial.begin(1200);
      pinMode(1, OUTPUT);
     
    }
    
    void loop() {
      // print the string when a newline arrives:
      if (Serial.available() > 0)  {
             delay(100);
             int x = Serial.available();
                while(x--)
                 {
                   c[i] = Serial.read();
                   i++;
                   delay(5);
                 }
              
              for (i = 0; c[i] != '\0'; ++i)
              {
                Serial.print(c[i]);
                c[i] = 0;  
             }      
        }
      }
    
    


Código Transmissor:
    // Transmissor
    // orostec.blogspot.com.br
    // Profº Bruno Orosco
    
    void setup() {
      
      Serial.begin(1200);
     
    }
    
    void loop() {
       
      Serial.write("@blog"); 
      delay(1000);
    }
    
    
        
       Após todos os testes realizados obtivemos algumas questões referente a sincronização de dados quando utilizado a comunicação serial, nesta forma de comunicação os dados são enviados corretamente, mas no momento de recebimento dos dados, chega muito ruído(comum) fazendo com que os dados não cheguem na ordem e quantidade correta. O código acima foi a melhor resposta de funcionamento para recebimento e transmissão de dados utilizando a UART. 
        Quanto maior for a velocidade de transmissão menor é a quantidade de ruídos chegando junto com a informação enviada, no entanto a sincronização é comprometida..