AprendaArduinoTutorial

Quer fazer a comunicação entre dois Arduinos sem utilizar fios? Basta continuar lendo este tutorial.

 

1. Introdução

A radiofrequência é um tipo de comunicação sem fio definida pelo uso de ondas eletromagnéticas numa certa faixa de frequência (3 kHz a 300 GHz), sendo muito utilizada em radares, satélites, telefones, TVs, controle remoto, sistemas de alarmes, entre outros. Assim, neste tutorial, iremos aprender a utilizar o módulo RF de 433 MHz para acender um LED à distância acionado por um botão.

 

2. Módulo RF 433 MHz

O módulo RF é constituído por duas partes: transmissor (transmitter) e receptor (receiver). O transmissor, como o próprio nome já diz, é responsável por emitir o sinal para o receptor; já o receptor, capta os sinais oriundos do transmissor. Essa comunicação é viabilizada pelas antenas, que podem ser modificadas para melhorar a qualidade do sinal captado.
Optamos por utilizar o módulo de 433 MHz devido ao seu alcance necessário para acionar um simples LED.

 
2.1 Datasheet

Transmissor MX-FS-03V

Frequência

433 MHz

Tensão de operação

3.5 – 12 V

Distância de transmissão

20 – 200 m*

 Velocidade de transmissão

 4 Kb/s

Tabela 1: Características técnicas do módulo transmissor FS1000A MX-FS-03V.

 

Receptor MX-05V

Frequência

433.92 MHz

Tensão de operação

5 VDC

Corrente de operação

 4 mA

Sensibilidade

– 105 dB

Tabela 2: Características técnicas do módulo receptor MX-05V.

 
2.2 Pinos
 

Figura 1: À esquerda, módulo transmissor e seus pinos (1, 2, 3, 4); à direita, módulo receptor e seus pinos (5, 4, 3, 2, 1).

 

Conforme a Figura 1, à esquerda, observa-se o transmissor cujo os pinos estão enumerados de 1 a 4. O pino 1 (DATA) é o responsável por enviar sinais através de sua antena (pino 4) para o receptor. Os pinos 2 e 3 são, respectivamente, de alimentação (VCC) e referência (GND).

Já à direita, observa-se que receptor, ao contrário do emissor, possui dois pinos DATA (pinos 3 e 2), porém qualquer um deles pode ser utilizado para captar sinais. Os pinos 1 e 4 são, respectivamente, de referência (GND) e alimentação (VCC). A antena está localizada no pino 5.
Para facilitar a assimilação, temos a tabela abaixo:

 

Pino

Emissor

Receptor

1

DATA

VCC

2

VCC

DATA

3

GND

DATA

4

Antena

GND

5

Antena

Tabela 3: Números dos pinos e suas nomenclaturas.

 

3. Programação

Em Monitor Serial, aprendemos como funciona a comunicação entre o Arduino e o computador. Agora, iremos incluir o módulo RF para acionar um LED à distância usando um botão. Para isso, primeiramente, iremos baixar a biblioteca VirtualWire, na versão 1.27. Essa biblioteca foi criada pelo engenheiro Mike McCauley e contém as informações necessárias que possibilitam a comunicação do módulo RF com o Arduino. Depois, a instalação é feita extraindo a pasta VirtualWire para \Arduino\libraries. Para mais informações, clique aqui.

 
3.1 Transmissor
Abaixo, temos o código completo do transmissor:

Primeiro, inserimos a VirtualWire através do #include <VirtualWire.h>, declaramos as constantes e variáveis.

Na linha 7, dentro da função setup(), inicializamos a porta serial usando a Serial.begin() e definimos em 9600 a velocidade de transmissão de dados DA SERIAL em bits por segundo (bps).

Na linha 8, definimos o botão (T_BOT) como entrada e habilitamos o resistor interno (INPUT_PULLUP).

Na linha 9, através da vw_set_tx_pin(), escolhemos o pino 2 do Arduino para ser conectado ao DATA do transmissor. Já na linha seguinte, a vw_setup() configura a velocidade de transmissão dos dados DO TRANSMISSOR em bps.

Na linha 14, dentro da loop(), o comando if configura o botão como acionando (LOW) e, dessa forma, o LED acenderá quando o estado da variável T_LED for invertido, ou seja, se tornar 1.

Na linha 16, temos a função itoa() para converter o tipo dos dados de int para a char.

Nas linhas 17 e 18, a transmissão dos dados é ativada pela vw_send() e finalizada pela vw_wait().

E finalmente, nas linhas 20 e 21, as funções Serial.print() e Serial.println() mostram no Monitor serial o ESTADO DO BOTÃO, no qual 0 representa que o foi botão pressionado e 1 não pressionado (Figura 2). Para abrir o Monitor basta ir na aba “Ferramentas” da IDE, segundo a Figura 3.

 

Figura 2: Estado do botão no Monitor serial.

 

Figura 3: Monitor serial na aba “Ferramentas”.

 

OBS.: É importante lembrar de que a comunicação é feita pelos pinos 0 (RX) e 1 (TX), portanto, eles não podem ser utilizados como saídas digitais.

 
3.2 Receptor
Abaixo, temos o código completo do receptor:

O código do receptor é bem semelhante ao do transmissor, exceto por algumas configurações modificadas e outras inseridas.

Na linha 8, definimos o LED (R_LED) como saída (OUTPUT).

Nas linhas 15 e 16, buf armazena os dados e buflen define o tamanho para os dados recebidos em bytes.

Na linha 17, a vw_get_message() é responsável pela verificação da existência de dados e se ela for confirmada, é retornado verdadeiro.

Nas linhas 18, 19 e 20, tem-se um contador para verificar o estado do LED e armazená-lo.

Na linha 23, atoi() converte o tipo dos dados de char para int.

Nas linhas 24 e 25, se o ESTADO DO BOTÃO (R_BOT) for igual a 1, o ESTADO DO LED será 1 e ele acenderá (HIGH).

Em seguida, nas linhas 26 e 27, Serial.print e Serial.println “imprimem” o estado do LED no Monitor serial (Figura 4).

Da mesma forma ocorre nas linhas 30 a 33, exceto pelo fato de que se o botão for igual a 0, o estado do LED também será 0 e ele apagará (LOW).

 

Figura 4: Estado do LED no Monitor serial.

 

4. Componentes e materiais
  • 2 Arduinos UNO;
  • 2 cabos USB;
  • 2 protoboards;
  • 1 resistor de 220 Ω;
  • 1 botão (push button);
  • 1 LED;
  • módulo Emissor MX-FS-03V;
  • módulo Receptor MX-05V;
  • jumpers;

 

5. Esquema elétrico

 
5.1 Transmissor
 

Figura 5: Esquema elétrico do transmissor, feito no software Fritzing.

 
5.2 Receptor
 

Figura 6: Esquema elétrico do receptor, feito no software Fritzing.

 

6. Protoboard

 
6.1 Transmissor
Na Figura 7, temos o circuito composto pelo módulo transmissor, Arduino e um botão.

 

Figura 7: Circuito do transmissor simulado na protoboard, feito no software Fritzing.

 
6.2 Receptor
Na Figura 8, temos o circuito composto pelo módulo receptor, Arduino, LED e resistor.

 

Figura 8: Circuito do receptor simulado na protoboard, feito no software Fritzing.

 

Dúvidas? Fale conosco, estamos aqui para te ajudar! 🙂

Deixe uma resposta

Seu endereço de e-mail não será publicado. Campos obrigatórios estão marcados *

limpar formulárioPostar Comentário