You are on page 1of 12

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ...

http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

Procurar Registre-se Acessar Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) #42 Início Perfil Garagistas Incubadora Loja Área Técnica Discussões Galeria Grupos Sobre Todas as mensagens do blog Meu blog Adicionar

Tutorial transmissor e receptor RF Link com Arduino
Postado por Laboratório de Garagem em 7 maio 2012 às 15:00 Exibir blog

No mercado existe vários tipos e meios de comunicação para usar com Arduino. Neste tutorial usaremos os RF Link Receiver - 4800bps(315Mhz) e RF Link Transmitter - 315Mhz e testaremos a comunicção

1 de 12

29/06/2013 23:23

Nesta biblioteca é bem fácil de usar.com. Abaixo mostra a programação: // transmitter. O comprimento da antena é de cerca de 25cm Agora.etc) e clique em UPLOAD. pois já existe um tratamento de erros para filtrar os erros que chegam no receptor.au) 2 de 12 29/06/2013 23:23 . entre eles utilizando a biblioteca Virtual Wire e a documentação disponível aqui..pde // // Simple example of how to use VirtualWire to transmit messages // Implements a simplex (one-way) transmitter with an TX-C1 module // // See VirtualWire.. selecione a versão do Arduino(UNO.com/profiles/blogs/tutorial-transmissor-e-receptor-.h for detailed API docs // Author: Mike McCauley (mikem@open.. baixe a biblioteca Virtual Wire e extraia para a pasta "libraries" localizada dentro da pasta da IDE do Arduino. Agora para montar o emissor RF Link Transmitter .315Mhz com Arduino.Laboratorio de . Antes de mais nada. faça a seguinte ligação: Onde: O Fio vermelho vai para o VCC ou 5V O Fio preto vai para o GND O FIo verde vai para o pino digital 12 do Arduino Por opção. abra a IDE do Arduino e vá em File/Examples/VirtualWire e selecione "transmitter".Tutorial transmissor e receptor RF Link com Arduino . pode-se colocar uma antena para melhor captação de dados. Neste tutorial vamos mostrar como mandar uma mensagem utilizando o RF Link Transmitter 315Mhz com um Arduino e recebendo a mensagem utilizando o RF Link Receiver 4800bps(315Mhz) com outro Arduino.conecte o Arduino. Duemilanove. http://labdegaragem..

4800bps(315Mhz): Onde: 3 de 12 29/06/2013 23:23 .println("setup"). digitalWrite(13. } void loop() { const char *msg = "hello". delay(200)..pde.begin(9600). strlen(msg)).Laboratorio de .Tutorial transmissor e receptor RF Link com Arduino . true).3 2009/03/30 00:07:24 mikem Exp $ #include <VirtualWire. } // Flash a light to show transmitting //Send the message // Wait until the whole message is gone // Debugging only // Required for DR3100 // Bits per sec A programação "transmitter" é um exemplo básico onde manda a palavra "hello" para o receptor. http://labdegaragem. // Initialise the IO and ISR vw_set_ptt_inverted(true). Serial.v 1.com/profiles/blogs/tutorial-transmissor-e-receptor-. vw_wait_tx(). false).. digitalWrite(13. Pronto. vw_send((uint8_t *)msg.. vw_setup(2000). agora vamos montar o RF Link Receiver .. // Copyright (C) 2008 Mike McCauley // $Id: transmitter.h> void setup() { Serial.

print(" ").v 1. false).. i++) { Serial.println("setup").Tutorial transmissor e receptor RF Link com Arduino . dump it. Abaixo mostra a programação do "receiver": // receiver.. // Flash a light to show received good message // Message with a good checksum received. O fio vermelho vai para o VCC ou 5V O fio preto vai para GND O fio verde vai para o pino digital 11 do Arduino Por opção.com. // Debugging only Serial.. Serial. for (i = 0. Serial.print("Got: "). O comprimento da antena é de cerca de 25cm Agora. com outro Arduino e com a IDE do Arduino aberto. i < buflen. pode-se colocar uma antena para melhor captação de dados..println(""). digitalWrite(13.au) // Copyright (C) 2008 Mike McCauley // $Id: receiver. http://labdegaragem. } } 4 de 12 29/06/2013 23:23 . // Required for DR3100 vw_setup(2000).begin(9600). digitalWrite(13.pde // // Simple example of how to use VirtualWire to receive messages // Implements a simplex (one-way) receiver with an Rx-B1 module // // See VirtualWire. // Initialise the IO and ISR vw_set_ptt_inverted(true). HEX).Laboratorio de . if (vw_get_message(buf.print(buf[i]. true).h> void setup() { Serial.com/profiles/blogs/tutorial-transmissor-e-receptor-. &buflen)) // Non-blocking { int i. // Start the receiver PLL running } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]. vá em File/Examples/ e clique em "receiver" e faça o mesmo procedimento que o do emissor.3 2009/03/30 00:07:24 mikem Exp $ #include <VirtualWire. uint8_t buflen = VW_MAX_MESSAGE_LEN.h for detailed API docs // Author: Mike McCauley (mikem@open. } Serial.pde. // Bits per sec vw_rx_start().

clicando aqui..sparkfun. Temos a seção de projetos também que vocês podem ver e postar seus projetos! Até a próxima!! Referências: http://www..pdf http://www.php/38-comunicacao/rf-link-t.Laboratorio de .. robotica. robotica.com/example-avr-projects/running-tx433-an..9... hacking) para adicionar comentários! Entrar em Laboratorio de Garagem (arduino.Tutorial transmissor e receptor RF Link com Arduino .com/profiles/blogs/tutorial-transmissor-e-receptor-. tutorial Curtir 3 membros curtem isto Compartilhar Twitter Facebook Curtir 12 < Post Anterior Próximo Post > Comentar Você precisa ser um membro de Laboratorio de Garagem (arduino. E é isso!!! Esperamos que tenham gostado!!! Caso tenham dúvida sobre este tutorial. 5 de 12 29/06/2013 23:23 .org/loja/index... Quem puder me ajudar agradeço bastante.au/mikem/arduino/VirtualWire...open.com/datasheets/RF/KLP_Walkthrough. eletrônica.. http://labdegaragem.com/products/10533 http://www. http://www. Você pode ver que o número hexadecimal "68" equivale a letra "h".sparkfun.org/loja/index..php/38-comunicacao/rf-link-r.pdf http://winavr.com.au/mikem/arduino/VirtualWire-1.labdegaragem. hacking) Comentário de Evandro Gomes da Silva em 17 junho 2013 às 23:11 socorro!!!!! alguem sabe o porque quando eu vou compilar esse codigo dar um erro na parte "vw_set_ptt_inverted(true).com.labdegaragem. frequência. http://www. estes números são números da tabela ASCII. postem aqui mesmo neste blog.zip http://www. // Required for DR3100" porque será? Sou novo nessa área e me interessei muito por esse artigo.scienceprog. Este exemplo mostra o receiver recebendo a informação do emissor. Vocês podem ver outros tutoriais. http://arduino. você verá que os dados que chegam são números.0.cc/playground/Main/InterfacingWithHardware#Communica. que nesse caso é o "hello". arduino.open. eletrônica. Exibições: 11154 Tags: Rádio. Ao abrir o Serial monitor do Arduino-1.

. mas gostaria de modificá-los para RSSI mesmo (0 a 31) ou até mesmo em dBm. // Initialise the IO and ISR vw_set_tx_pin(TX_PIN). Alguém tem alguma idéia? Abraço Segue os fontes ArduinoRF1(onde começa tudo) / #include <VirtualWire. vw_set_ptt_inverted(true). // Required for DR3100 vw_setup(2000).. fiz algumas modificações nos exemplos transmiter e receiver.begin(9600).println("setup"). // Debugging only Serial.. e fiz uma leitura analógica #define RSSI_PIN 3 . Meio tosco mas funcional.. vw_set_rx_pin(RX_PIN)... o outro verifica o conteúdo da mensagem e responde com um ok. } // end getRSSI() Estou recebendo valores entre 640 e 650. Serial. http://labdegaragem. . usando os exemplos server e client da biblioteca VirtualWire. } void loop() 6 de 12 29/06/2013 23:23 // Start the receiver PLL running . INPUT). fontes no final da mensagem A questão é: liguei a entrada RSSI do receptor no pino 3 do Arduino. // Bits per sec vw_rx_start().com/profiles/blogs/tutorial-transmissor-e-receptor-. Comentário de Rodrigo Moraes Silveira em 19 abril 2013 às 23:11 Olá. return analogRead(pin).Laboratorio de ... int getRSSI(int pin) { pinMode(pin.Tutorial transmissor e receptor RF Link com Arduino .println(getRSSI(RSSI_PIN)). Porém com ambos equipamedos com um emissor e um redeptor de RF Um arduino envia a mensagem "hello".h> #define TX_PIN 12 #define RX_PIN 11 #define RSSI_PIN 3 void setup() { Serial.

Laboratorio de . { const char *msg = "hello". HEX). } // end if } // end if else Serial. digitalWrite(13.h> #define TX_PIN 12 #define RX_PIN 11 void setup() { 7 de 12 29/06/2013 23:23 . } // end getRSSI() ArduinoRF2 (o segundo arduino) #include <VirtualWire. i < buflen.print((char)buf[i]). str += (char)buf[i].. &buflen)) // Non-blocking { int i. } // end for Serial. true). i++) { Serial. vw_wait_tx(). INPUT). digitalWrite(13. } // end loop() int getRSSI(int pin) { pinMode(pin. digitalWrite(13. String str = "".//.print(" "). Serial.print("Got: "). true). // Flash a light to show transmitting vw_send((uint8_t *)msg. // Wait at most 200ms for a reply if (vw_wait_rx_max(800)) { if (vw_get_message(buf. digitalWrite(13. Serial. for (i = 0. // Wait until the whole message is gone //Serial..println(""). delay(200). uint8_t buflen = VW_MAX_MESSAGE_LEN. http://labdegaragem. false). false).println(getRSSI(RSSI_PIN)).Tutorial transmissor e receptor RF Link com Arduino .. uint8_t buf[VW_MAX_MESSAGE_LEN].com/profiles/blogs/tutorial-transmissor-e-receptor-. Serial..println("Timout"). dump it. // Flash a light to show received good message // Message with a good checksum received. return analogRead(pin). strlen(msg)).print("Message sent\n").

digitalWrite(13. uint8_t buf[VW_MAX_MESSAGE_LEN].print("Response sent\n"). // Flash a light to show received good message // Message with a good checksum received. HEX). } // end if digitalWrite(13.00 metros no máximo e a comunicação seria em um único sentido. for (i = 0. if (vw_get_message(buf. strlen(msg)).begin(9600). dump it. aproximadamente 50.Laboratorio de . true). } // end for Serial. Serial. if (str == "hello") { vw_send((uint8_t *)msg. &buflen)) // Non-blocking { int i. } void loop() { const char *msg = "ok".com/profiles/blogs/tutorial-transmissor-e-receptor-. // Debugging only Serial. i++) { Serial. vw_set_rx_pin(RX_PIN).println("")...Tutorial transmissor e receptor RF Link com Arduino .print((char)buf[i]).println("setup"). 8 de 12 29/06/2013 23:23 . Serial. false). str += (char)buf[i]. vw_wait_tx(). delay(200). // Wait until the whole message is gone Serial. // Required for DR3100 vw_setup(2000). i < buflen. } // end if } // end loop() // Start the receiver PLL running Comentário de Valdir Nunes Santos em 8 abril 2013 às 18:13 seria uma pequena distancia. vw_set_ptt_inverted(true).//.. uint8_t buflen = VW_MAX_MESSAGE_LEN. // Wait for a message vw_wait_rx().print(" "). // Bits per sec vw_rx_start(). String str = "". Serial.print("Got: "). http://labdegaragem.. // Initialise the IO and ISR vw_set_tx_pin(TX_PIN).

. . um pouco de google. É . será que posso usar o projeto acima como base.. um circuito para acender 3 lampadas via botao.Tutorial transmissor e receptor RF Link com Arduino . duemilanove ..com/profiles/blogs/tutorial-transmissor-e-receptor-.. da pra fazer. http://labdegaragem.. tem um script pra decriptar aqui no site... :) Comentário de felipe araujo dos santos em 2 abril 2013 às 17:06 Boa Tarde Estou precisando montar um projeto para facul e nao sei como pode ser feito . faz assim. mas veja com quais distâncias irá trabalhar e se vai precisar que a comunicação seja "vai e volta" Comentário de Valdir Nunes Santos em 8 abril 2013 às 15:44 preciso transmitir um sinal para um receptor que será instalado em um veículo usando arduino.. Comentário de Eduardo Nogueira em 8 abril 2013 às 15:59 Poder. e desligar cada 9 de 12 29/06/2013 23:23 . ou estiver afim de por a mão na massa..) e um receptor rf de 433mhz. Um pouco de conhecimento em programação (hehehehhe). e desligar cada lampada via controle rf alguem me ajuda ? abracos" Se tu usar um controle baseado no HT6P20 (esses de learn code). Comentário de Eduardo Nogueira em 2 abril 2013 às 19:43 Felipe... cola e dois clipes de papel.... assim dá pra ajudar.. Resolvido o problema do controle.. um circuito para acender 3 lampadas via botao. pode. NANO.. tem vários esquemas de como fazer no google. Vai precisar de um Derivado do arduino (Garagino....Laboratorio de . Estes controles geralmente possuem 3 botões..... monta seu projeto e posta as dúvidas específicas. se for mais prendado... UNO. Comentário de Fábio Pereira em 2 abril 2013 às 21:23 "Comentário de felipe araujo dos santos 4 horas atrás Boa Tarde Estou precisando montar um projeto para facul e nao sei como pode ser feito .. Vai precisar de um shield de reles para acionamento das lampadas..

. lampada via controle rf alguem me ajuda ? abracos Comentário de Rafael Spessotto em 22 janeiro 2013 às 19:07 Senhores.. :( Comentário de Leonilde Diogenes Gurgel Neto em 6 dezembro 2012 às 0:03 Fábio.. O "ajuste" é para sintonizar somente.. robotica.Laboratorio de .pelo que to vendo a luzinha do transmissor so fica acessa. http://labdegaragem. eletrônica.Tutorial transmissor e receptor RF Link com Arduino . nao consegui fazer funcionar esse exemplo..com/profiles/blogs/tutorial-transmissor-e-receptor-...alguem pode ajudar? pelo que vi fiz tudo certinho exatamente como nas figuras.... mas eles vem com uma codificação e vc precisa testar isso com mais calma.nao parece que ta enviando nada. hacking) Registre-se ou acesse Or sign in with: Publicidade Convide um amigo para o Lab! 10 de 12 29/06/2013 23:23 . Pode utilizar os controles já prontos.. ‹ Anterior 1 2 3 4 Próximo › Página RSS Bem-vindo a Laboratorio de Garagem (arduino...

18 Android 4. Loja Lab de Garagem Novo! Garagino Rev1 Por: R$ 29.00 11 de 12 29/06/2013 23:23 .Laboratorio de .com/profiles/blogs/tutorial-transmissor-e-receptor-..0 Mini PC Por: R$ 195.00 Ou em até 6x de R$ 5.00 Ou em até 18x de R$ 13..Tutorial transmissor e receptor RF Link com Arduino ... http://labdegaragem.

Osciloscópio Digital (ADS1102C) .99 © 2013 Criado por Marcelo Rodrigues... http://labdegaragem. Badges | Relatar um incidente | Termos de serviço Entrar no bate-papo 12 de 12 29/06/2013 23:23 .00 Ou em até 18x de R$ 127.Laboratorio de .Avançado Por: R$ 540.96 Kit Completo de Ferramentas .00 Ou em até 18x de R$ 35.2 Canais Por: R$ 1920.100MHz .com/profiles/blogs/tutorial-transmissor-e-receptor-..Tutorial transmissor e receptor RF Link com Arduino ..