quinta-feira, 27 de março de 2014

Projeto 19 - Módulo RF, ligando LED


Componentes necessários:

- Protobord;
- 2 arduinos;
- Módulo RF, descrito na imagem;
- Fios;
- LED;
Resitor de 100 ohms*;


Conexões

Transmissor:
- GND - GND do arduino
- VCC - 5V do arduino
- DATA - Porta 12 digital, é usada por default na biblioteca

Receptor:
- GND - GND do arduino
- DATA - Porta 11 digital, é usada por default na biblioteca. USAR A SAÍDA A DO LADO GND
- VCC - 5V do arduino

Arduino do receptor:
-Conectar também o LED na porta 2, junto com o resistor.

*Verificar o resistor para o led, pois o valor pode ser diferente.


Toda a ideia para o funcionamento do modulo RF foi retirada desse link:
https://docs.google.com/file/d/0B6YRUlKRU7Q-cVJuWXhTMjZ2NU0/edit

Todo o crédito para a pessoa que o criou, apenas foi colocado no blog para divulgar o funcionamento do mesmo.

Link para download da biblioteca: https://www.dropbox.com/s/chipaarcwh50kbx/VirtualWire.rar?m=

  //Projeto 19 - Módulo RF - emissor   
  //Este código é de domínio público   
   
 #include <VirtualWire.h>  
   
 void setup(){  
   Serial.begin(9600);      //Ativa Serial  
   // Initialise the IO and ISR  
   vw_set_ptt_inverted(true); //   
   vw_setup(2000);      // Taxa de transferência  
 }  
   
 void loop(){  
   if(Serial.available()>0){  
    char msg = Serial.read();  
     
    vw_send((uint8_t *)&msg, strlen(&msg)); //Envia toda a palavra com STR  
    vw_wait_tx(); //   
    delay(200);  
   }  
 }  
 //Projeto 19 - Módulo RF - receptor   
 //Este código é de domínio público   
   
 #include <VirtualWire.h>  
   
 void setup(){  
   Serial.begin(9600); //Ativa o Serial  
    
   vw_set_ptt_inverted(true); //   
   vw_setup(2000);      //Taxa de transferência  
   
   vw_rx_start();    //Inicializa o receptor  
   pinMode(2, OUTPUT); //Inicializa a porta p/ LED  
 }  
   
 void loop(){  
   uint8_t buf[VW_MAX_MESSAGE_LEN];  
   uint8_t buflen = VW_MAX_MESSAGE_LEN;  
   
   if (vw_get_message(buf, &buflen)){ //Verifica se recebe informação  
     if(buf[0]=='L'){  
      digitalWrite(2, HIGH);  
     }  
     if(buf[0]=='D'){  
      digitalWrite(2, LOW);  
     }  
   }  
 }  
Com o que foi descrito nesse post, pode-se construir vários outros projetos utilizando a mesma base. Algumas ideias a seguir:
    - Controlar um carrinho;
    - Ligando uma lâmpada;
    - Transmitindo texto para outro arduino, e ele printando no LCD;
    - Transmitindo dados como: temperatura, umidade, luminosidade, distancia e etc.

Nenhum comentário :

Postar um comentário