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