Olá amigos, comprei um módulo 433Mhz (LINK REMOVIDO POR DESCUMPRIR OS TERMOS DE USO) e não consigo ler nenhum dado através dele, já utilizei a VirtualWirte e seus samples e nada funciona. =/

Alguém tem algum exemplo neste módulo em específico? Estou tentando ler controle de portão Rossi e controle de alarme de carro.

Exibições: 2113

Responder esta

Respostas a este tópico

Olá Rodrigo, eu também estou começando a mexer nesses módulos de RF. E estou usando o VirtualWire para transmitir dados, e está funcionando bem. Uma coisa que eu notei é que nos exemplos que vem junto com a biblioteca, os pinos de tx e rx não vem setados.

 caso você não tenha achado, a função é essa para o rx  :   vw_set_rx_pin( int );
                                                                             e para tx:   vw_set_tx_pin( int);

espero que te ajude , até

Jhonatan, na lib que tenho aqui eles vem setados... Será uma versão mais antiga a minha? rs.

Bem, não sei se é mais antiga ( mas veja só o exemplo do site ( engraçado pois sem o pino definido não funciona )  ) .

Agora, se não era o que eu falei dos pinos, então não vejo motivo do código exemplo não rodar .

Talvez seja mal contato na protoboard, isso vive acontecendo.

Tente usar o código( por desencargo de consciência  também já que é  idêntico ao exemplo):

// para o transmissor 

void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_tx_pin( 3 );    //----------------------------------------------- aqui está no 3, mas pode ser qualquer outro
vw_setup(2000); // Bits per sec
}
void loop()
{
const char *msg = "hello";
digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
delay(200);
}
//-----------------------------------------------------
// e para o receptor
#include a class="code" href="http://www.airspayce.com/mikem/arduino/VirtualWire/VirtualWire_8h.html" title="VirtualWire API.">VirtualWire.h>
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_set_rx_pin(3);   //----------------------------------------------------- pode ser qualquer pino escolhido
vw_rx_start(); // Start the receiver PLL running
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i], HEX);
Serial.print(" ");
}
Serial.println("");
digitalWrite(13, false);
}
}

Muito obrigado Jhonatan, mas mesmo assim não funciona. Talvez seja mesmo um mal contato na protoboard, e isso sinceramente eu não me dei conta e testei.

Meu esquema de ligação:
VCC --- 5V (Arduino)
Data - 

Data - PIN11 (Arduino)
GND - GND (Arduino)

Vi em algum lugar um sketch "sniffer" para arduino, tente usa-lo foi nesse blog

http://ninjablocks.com/blogs/how-to/7501042-adding-rf-433mhz-to-you...

Obrigado pela atenção Marcelo, eu também havia acompanhado esse tutorial e mesmo assim não obtive sucesso.

No caso desses controles, você não conseguirá por causa dos ci's do controle, esses ci's reconhecem o código e o transformam em algo entendível, um nivel 0(baixo) ou 1(alto). Creio eu que você não obterá sucesso nas suas tentativas por isso   

Oi Leandro, não entendi sua explicação. =/

Mesmo assim, o que você sugere?

Compre o outro modulo tanto o tx quanto o rx

Rodrigo , observe uma coisa , não sei como esta a ligação mas se ligo o arduino no RX observe se vc não ligou na saida linear e não na digital , enfrentei este problema quando fui fazer este tipo de comunicação.

Eu inverti e liguei na saida digital e ai a comunicação aconteceu . verifique também os sinais  de tensão que estão alimentando o modulo e o arduino pois se a alimentação estiver oscilando , vc nao obtera os resultados esperados , geralmente estes circuitos RF exigem uma boa fonte de alimentação com capacitores para filtrar e estabilizar a tensão afim de se obter o melhor resultado possível .

Não sei se é isso mas essa é a minha dica

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço