Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
A comunicação por radiofrequência (RF) é uma técnica amplamente utilizada em projetos de eletrônica para permitir a transmissão de dados sem fio entre dispositivos. Em ambientes Arduino, a utilização de módulos RF facilita a criação de sistemas de controle remoto, automação residencial e comunicação entre microcontroladores. Este artigo aborda a implementação de um sistema de comunicação RF utilizando um módulo transmissor e receptor, exemplificando com códigos práticos e detalhados.
Projeto: O projeto consiste na criação de um sistema de comunicação sem fio entre dois Arduinos, onde um Arduino atuará como transmissor e o outro como receptor. O objetivo é enviar um sinal de controle do transmissor para o receptor, que aciona um LED. Este exemplo pode ser expandido para controlar outros dispositivos, como relés, motores ou sistemas de segurança.
Lista de componentes:
Exemplos:
#include <VirtualWire.h> // Biblioteca para comunicação RF
void setup() {
vw_setup(2000); // Configura a velocidade de transmissão para 2000 bps
vw_set_tx_pin(12); // Define o pino 12 como pino de transmissão
}
void loop() {
const char *msg = "Hello"; // Mensagem a ser enviada
vw_send((uint8_t *)msg, strlen(msg)); // Envia a mensagem
vw_wait_tx(); // Espera até que a mensagem seja enviada
delay(1000); // Aguarda 1 segundo antes de enviar novamente
}
#include <VirtualWire.h> // Biblioteca para comunicação RF
void setup() {
Serial.begin(9600); // Inicializa a comunicação serial
vw_setup(2000); // Configura a velocidade de recepção para 2000 bps
vw_set_rx_pin(11); // Define o pino 11 como pino de recepção
vw_rx_start(); // Inicia o receptor
pinMode(13, OUTPUT); // Define o pino 13 (LED) como saída
}
void loop() {
uint8_t buf[VW_MAX_MESSAGE_LEN]; // Buffer para armazenar a mensagem recebida
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) { // Verifica se há uma mensagem recebida
digitalWrite(13, HIGH); // Acende o LED
Serial.print("Mensagem recebida: ");
Serial.println((char*)buf); // Imprime a mensagem recebida no monitor serial
delay(500); // Mantém o LED aceso por 500 ms
digitalWrite(13, LOW); // Apaga o LED
}
}
VirtualWire
é utilizada para facilitar a comunicação RF. A função vw_setup
configura a velocidade de transmissão, enquanto vw_set_tx_pin
define o pino de transmissão. A mensagem "Hello" é enviada a cada segundo.vw_setup
e vw_set_rx_pin
configuram a recepção. A função vw_get_message
verifica se há uma mensagem recebida. Se houver, o LED é aceso e a mensagem é exibida no monitor serial.