Você está na página 1de 4

Ol Garagistas! No tutorial de hoje mostraremos como voc pode facilmente utilizar os mdulos de transmisso RF Link (315MHz/434MHz) utilizando o Garagino.

Como demonstrao faremos acionamentos no mdulo receptor, a partir de botes pressionador no mdulo transmissor.

Material Utilizados: 2x Kit Garagino Rev 1 1x Mdulo Transmissor(315MHz)/Mdulo Receptor(315MHz) ou Mdulo Transmissor(434MHz)/Mdulo Receptor(434MHz) 4x Chave Tactil 3x Resistor 330 (Acionamento do LEDs) 4x Resistor 10K (Pull-down das chaves tteis) 3x LEDs (Verde, Amarelo e Vermelho) 2x Protoboard Alguns Jumpers (Circuito e Antena)

1. RF Link (315MHz/434MHz)

Figura 1 - Pinout Mdulos RF Os Mdulos RF Link so mdulos para transmisso por Rdio Frequncia. Normalmente quando se pensamos em comunicao sem fio para ser utilizado com Garagino ou Arduino, a primeira coisa que vem mente so os famosos XBee, contudo nem todos tem a possibilidade de comprar um XBee, pois so relativamente caros se comparado com os mdulos RF. Esses mdulos so bem simples, o transmissor enviar dados em srie para o receptor fazendo um mtodo de transmissosimplex e ponto, o transmissor envia e o receptor recebe, simples assim. Contudo, seria necessrio voc utilizar um encoder (codificador) e um decoder (decodificador) para facilitar o processo de transmisso entre seus mdulos, da a vantagem de voc pode utilizar um Garagino ou Arduino, porque alm de voc utiliz-lo como encoder ou decoder, voc ir consumir somente 1 pino de cada Garagino para a comunicao e ter todo os outros

disponveis para a leitura de sensores, acionamentos de carga e pode tambm tratar os dados que sero enviados e recebidos. E qual a diferena entre as frequncias de 315MHz e 434MHz? Como a diferena entre as frequncias desses mdulos pequena, basicamente em aplicaes prticas os resultados vo ser bem prximos, j na teoria a frequncia de 433MHz deve se comportar melhor em ambientes fechados enquanto a de 315MHz ter o maior comprimento de onda, logo voc ter maior alcance ao ar livre. Lembrando que no Brasil essas frequncia so permitidas para uso livre pela Anatel. Em nossa aplicao teremos ento um Garagino (encoder) para o mdulo transmissor e um Garagino (decoder) para o mdulo receptor. Faremos a leitura dos botes conectados nos pinos digitais D6~D9 do mdulo transmissor e faremos o acionamento desses respectivos pinos digitais no mdulo receptor, onde esto conectados nesses pinos: D6 - LED Verde D7 - LED Amarelo D8 - LED Vermelho D9 - Mdulo Rel (Lmpada) 2. Biblioteca VirtualWire.h Nessa demonstrao utilizamos a biblioteca VirtualWire.h, ela facilita a aplicao e utilizao desses mdulos. uma biblioteca bastante til e simples de se utilizar e ela pode ser utilizada tanto para o mdulo RF Link de 315MHz quanto para o mdulo RF Link de 434MHz, para informaes mais detalhadas sobre as biblioteca, consulte o material neste link. Neste tutorial foi utilizada a verso 1.20 desta biblioteca, e ela pode ser baixada, clicando aqui. 3. Sketch Mdulo Receptor - Transfira o sketch abaixo para o Garagino do mdulo receptor: #include <VirtualWire.h> //Inclui a biblioteca VirtualWire.h void setup() { //++++++++++++++Inicializa o mdulo receptor+++++++++++++++++++ vw_set_ptt_inverted(true); vw_setup(2000); vw_set_rx_pin(2); //Configura o pino D2 para a leitura dos dados vw_rx_start(); //Inicia a leitura de dados do mdulo receptor //============================================================== //Configura os pinos de 6 a 9 como sada for(int i=6;i<=9;i++) { pinMode(i, OUTPUT); } //====================================== } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; //Varivel para o armazenamento do buffer dos dados uint8_t buflen = VW_MAX_MESSAGE_LEN; //Varivel para o armazenamento do tamanho do buffer if(vw_get_message(buf, &buflen)) //Se no buffer tiver algum dado (O ou 1) { //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + //Incrementa a posio para a leitura do buffer por i (0 a 4) //Incrementa a posio dos pinos digitais por j (6 a 9) int j=6;

for (int i = 0; i < buflen; i++,j++) { buf[i] = buf[i] - 48; //Pega o dado do buffer que recebido em hexadecimal e subtrai 48 if(buf[i] == 1) //Se o dado na determinada posio do buffer for igual 1 { digitalWrite(j,!digitalRead(j)); //Inverte o estado do respectivo pino digital } } //====================================================================================== == } }

4. Sketch Mdulo Transmissor - Transfira o sketch abaixo para o Garagino do mdulo transmissor: #include <VirtualWire.h> //Inclui a biblioteca VirtualWire.h

char *nibble = "0000"; //Cria a varivel nibble com o valor 0000

int le_pino; //Cria a varivel para a leitura dos pinos digitais

void setup() { //++++++++++++++Inicializa o mdulo transmissor+++++++++++++++++++ vw_set_ptt_inverted(true); vw_setup(2000); vw_set_tx_pin(3); //Configura o pino D3 para a leitura dos dados //================================================================ //Configura os pinos de 6 a 9 como entrada for(int i=6; i<=9; i++) { pinMode(i, INPUT_PULLUP); } //====================================== } void loop() { //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //Incrementa a posio para o armazenamento no nibble por i (0 a 4) //Incrementa a posio dos pinos digitais por j (6 a 9) int j=0; for(int i=6;i<=9;i++,j++) { le_pino = digitalRead(i); //L o estado do boto if(le_pino == 1) //Se o boto estiver pressionado { while(le_pino == 1) le_pino = digitalRead(i); //Aguarda o boto ser despressionado

nibble[j] = '1'; //Armazena na respectiva posio do no nible o caracter 1 } else nibble[j] = '0'; //Seno armazena na respectiva posio do no nible o caracter 1 } vw_send((uint8_t *)nibble, strlen(nibble)); //Envia a varivel nibble vw_wait_tx(); //Aguarda o fim de transmisso //======================================================================================= }

5. Circuito do Mdulo Receptor Faa as ligaes do circuito do mdulo receptor:

Figura 2 - Circuito do Mdulo Receptor 6. Circuito do Mdulo Transmissor Faa as ligaes do circuito do mdulo transmissor:

Figura 3 - Circuito do Mdulo Transmissor

Referncias http://www.airspayce.com/mikem/arduino/ http://lusorobotica.com/index.php?topic=772.0 http://www.univasf.edu.br/~gari/futvasf/paginas/download/Apresenta%C3%A7%C3%A3oRF_Manoel%2009-042010.pdf