• Welcome to LusoRobótica - Robótica em Português.
 

RF Link Transmitter/Receiver - 315MHz

Started by Lithium, 20 de September de 2011, 19:19

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Lithium

Olá,
comprei estes dois componentes(http://www.sparkfun.com/products/10533 & http://www.sparkfun.com/products/8945), porque pelos exemplos que vi achei que era fáceis de utilizar. Mas já experimentei vários exemplos de código mas não os consigo pôr a funcionar.
Para começar apenas gostaria de acender um led ao pressionar um botão.

EDIT: Esqueci-me de referenciar que estou a tentar fazer isto com arduinos uno.

Cumpz

andre_f_carvalho


Lithium

Quote from: andre_f_carvalho on 20 de September de 2011, 22:27
já experimentas-te o codigo/ circuito que esta no receptor?

codigo de que falo é este
http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/General/VirtualWire-1.5.zip
Sim já experimentei esse e outros, mas não cheguei a lado nenhum.

andre_f_carvalho

verifica as ligações e vê mais detalhadamente com tens isso construido


Lithium

Já funciona, obrigado os dois.  ;)

Bem, agora o meu objectivo é outro eu quero enviar um caractere, que é introduzido no serial monitor.

// RF Link using VirtualWire to Transmit messages
// simplex (one-way) receiver with a 315MHz RF Link Transmitter module
// tx pin 3 on Duemilanova (arduino)


#include <VirtualWire.h>  // you must download and install the VirtualWire.h to your hardware/libraries folder
#undef int
#undef abs
#undef double
#undef float
#undef round

const char* val= "d";

void setup()
{
     // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for RF Link module
    vw_setup(2000);                 // Bits per sec
    vw_set_tx_pin(3);                // pin 3 is used as the transmit data out into the TX Link module, change this to suit your needs.
}

void loop()
{
    const char *msg = val;       // this is your message to send

   vw_send((uint8_t *)msg, strlen(msg));
   vw_wait_tx();                                          // Wait for message to finish
   delay(200);
}


Neste caso o caractere que estou a enviar é o "d", mas eu quero é que esta variável seja alterada consoante o que é introduzido no serial monitor, como já tinha explicado acima. Os caracteres que pretendo enviar são:"a","w","d","s".

Lithium

Sei que já passou muito tempo, mas ainda ando à procura de resposta  :(

joao rexinho

eu cheguei a fazer um codigo que envia caracteres lindamente, serve para fazer funções digitais, mas não serve para o meu caso que eu quero utilizar o PWM, para controlar servos de rotação continua.  :(
Vê aqui:http://lusorobotica.com/index.php?topic=4133.15

(P.S.só tens de alterar o analogRead para digitalRead)
http://sites.google.com/site/roboticaelectronica/home
Estudante de Engenharia Eletrônica e Telecomunicações em Aveiro

senso

Para controlares um servo precisas de um valor entre 0 e 255, podes enviar esse valor directamente como um char, ou então usas a função itoa() que converte o valor para numeros ASCII e depois no lado receptor usas a atoi que agarra na string dos 3 numeros ascii e converte de novo num numero decimal que podes colocar numa variavel para controlar os servos.
Avr fanboy

joao rexinho

Hum!desconhecia,tenho de experimentar, quando tiver tempo livre, muito obrigado senso! ;)
http://sites.google.com/site/roboticaelectronica/home
Estudante de Engenharia Eletrônica e Telecomunicações em Aveiro