Módulo RF 433 MHz com Arduino

09 OUT
2015

Autor: Leonardo Dalla Porta

Módulo RF 433 MHz com Arduino

Se você está procurando uma maneira de se comunicar entre Arduinos, mas não tem muito dinheiro à sua disposição, então não procure mais. Estes módulos de RF não são apenas acessíveis, mas fácil de usar.Eles são muito mais fáceis de configurar do que um XBee, mais você pode usá-los sem a necessidade de um protetor especial. Antes de você sair correndo e comprar uma tonelada destes módulos, certifique-se que você não está quebrando todas as leis de transmissão de rádio no seu país. Faça sua pesquisa, e comprá-los somente se você está autorizado a usá-los em sua área. Há algumas bibliotecas que podem ser usados ​​para ajudar você e seu projeto particular:

RF Blink

Em primeiro lugar, precisamos testar se os módulos de RF estão funcionando. Então, vamos projetar uma transmissão muito simples para testar a sua funcionalidade. Nós vamos usar o led do Arduino de para mostrar quando o transmissor está transmitindo, e quando o outro Arduino está recebendo. Haverá um pequeno atraso entre os dois Arduinos. Você pode soldar uma antena para estes módulos, no entanto, nós não fizemos isso, eu só manteve os módulos fechar juntos (1-2 cm de intervalo). Enquanto estiver usando 5V para VCC no receptor, gostaria de obter um monte de interferência, porém com 3V, eu quase não tivemos qualquer ruído. Se você achar que você está obtendo resultados imprevisíveis, eu sugiro que você mudar para 3V no receptor e mover os módulos de transmissor e receptor ao lado uns dos outros.

Você vai precisar de:

    • 2 x placas Arduino UNO ou compatíveis
    • Placa de ensaio
    • Fios
    • Módulo de RF (433 Mhz) – Transmissor e receptor par ou a versão de 315 MHz

O transmissor e o receptor no Fritzing:

O Transmissor

Dados para a transmissão dos dados entre eles:

E este é o esboço Arduino para realizar a transmissão de dados.

Transmissor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/ *  
 RF Blink - Transmitir esboço  
     Escrito por ScottC 17 junho de 2014 
     Arduino IDE versão 1.0.5 
     Website: http://arduinobasics.blogspot.com 
     Transmissor: FS1000A / XY-FST 
     Descrição:. Um esboço simples usado para testar a transmissão RF           
 - -------------------------------------------------- --------- * /

 #define rfTransmitPin 4   // Transmissor RF pin = digitais pino 4 
 #define ledPin 13         // Onboard LED = pino digital 13

 vazio de configuração ()
   {pinMode (rfTransmitPin, OUTPUT);     
    pinMode (ledPin, OUTPUT);    
 }

 vazio de loop ()
   {para (int i = 4000; i> 5; i = i- (i / 3))
     {digitalWrite (rfTransmitPin, ALTA);      // transmitir um sinal ALTA digitalWrite (ledPin, ALTA);             // Ligue o LED em atraso (2000);                            // Aguarde um segundo
     
     
     
     digitalWrite (rfTransmitPin, LOW);       // transmitir um sinal LOW digitalWrite (ledPin, LOW);             // Ligue o LED off atraso (i);                             // atraso variável
     
     
   }
 }

O receptor

Se tudo correr como planejado, a bordo LED nesta Arduino deve acender (e sair), ao mesmo tempo que o onboard LED no Arduino transmissão. Há uma chance de que o receptor pode pegar sinais dispersos de outros aparelhos de transmissão usando essa freqüência específica. Assim, você pode precisar de brincar com o valor limite para eliminar o “ruído”. Mas não torná-lo muito grande, ou você vai eliminar o sinal nesta experiência. Você também vai notar um pequeno atraso entre os dois Arduinos.

Receptor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/ *  
  RF Blink - Receptor esboço  
     Escrito por ScottC 17 junho de 2014 
     Arduino IDE versão 1.0.5 
     Website: http://arduinobasics.blogspot.com 
     Receiver: XY-MK-5V 
     Descrição: Um esboço simples usado para testar a transmissão RF / receptor.           
 -------------------------------------------------- ----------- * /

 #define rfReceivePin A0   // RF Receiver pin = Analog pin 0 
 #define ledPin 13         // Onboard LED = pino digital 13

 unsigned  int dados = 0;    // variável usada para armazenar os dados recebidos 
 const  unsigned  int upperThreshold = 70;   // valor limite superior 
 const  unsigned  int lowerThreshold = 50;   // menor valor limiar

 vazio de configuração ()
   {pinMode (ledPin, OUTPUT);
    Serial. começar (9600);
 }

 vazio de loop () {
   data = analogRead (rfReceivePin);     // ouvir de dados sobre Analog pin 0
   
    se (dados> upperThreshold)
     {digitalWrite (ledPin, LOW);    // Se um sinal LOW é recebido, por sua vez levou OFF Serial. println (dados);
     
   }
   
   se (dados <lowerThreshold)
     {digitalWrite (ledPin, ALTA);    // Se um sinal de alta é recebida, vire LED ON Serial. println (de dados);
     
   }
 }

Quando um sinal alto é transmitida para o outro Arduino. Ele irá produzir uma analogRead = 0.
Quando um sinal LOW é transmitido, que irá produzir um analogRead = 400.
Isso pode variar, dependendo do seu módulo e tensão utilizada.
Os sinais recebidos podem ser vistos usando o Monitor serial, e pode ser copiado em uma planilha para criar uma tabela como esta:

Você vai notar que o sinal HIGH (H) é constante, enquanto que o sinal LOW (L) está ficando menor a cada ciclo. Não estou certo por que o sinal ALTA produz uma leitura analógica de “0”. Eu teria pensado que teria sido o contrário. Mas você pode ver a partir dos resultados que um sinal de alta produz um 0 resultado e um sinal de baixa produz um valor de 400 (aproximadamente).

Qualquer dúvida deixe seu comentário abaixo, espero ter sido esclarecedor, um abraço e até a próxima!

Faça um bom uso! Att. Equipe Nadiel Comércio.

Deixe um comentário

WordPress主题

*

 
Weboy
WordPress Themes