Olá garagista no tutorial de hoje mostraremos como utilizar os Mini RF Shields utilizando o Garagino e como exemplo iremos controlar a distância a posição do LED em uma matriz 8x8 , por intermédio de chaves do tipo tac switch.
Material Utilizado
4x Chave Tactil
8x Resistor 330Ω (Acionamento do LEDs)
4x Resistor 10KΩ (Pull-down das chaves táteis)
2x Protoboard
1x Mini RF Transmitter Shield 315MHz
1x Mini RF Receiver Shield 315MHz
2x LM7805
2x capacitores eletrolíticos 10uf 50v
2x capacitores cerâmicos 100nf (104)
2x Baterias 9V
1. Mini RF Transmitter Shield 315MHz
Figura 1 - Mini RF Transmitter Shield 315MHz
Características
O Mini RF Transmitter Shield possibilita a você transmitir informações para módulos receptores 315MHz de forma simples, criando um link simplex de comunicação.
Ele é uma ótimas opção para transmissão de dados sem fio em seu Garagino.
Não necessita solda e já acompanha antena.
Você pode utiliza-lo em conjunto com a biblioteca Virtual Wire.
Veja mais informações no nosso tutorial sobre RF LINK clicando aqui.
2. Mini RF Receiver Shield 315MHz
Figura 2 - Mini RF Receiver Shield 315MHz
Características
Com o Mini RF Receiver Shield você terá disponível um receptor 315MHz para receber informações dos módulos transmissores RF ou do Mini RF Transmitter Shield (de mesma frequência).
Ele é uma ótimas opção para recepção de dados sem fio em seu Garagino.
Não necessita solda e já acompanha antena.
Você pode utiliza-la em conjunto com a biblioteca Virtual Wire.
Veja mais informações no nosso tutorial sobre RF LINK clicando aqui.
3. Sketch Mini RF Transmitter Shield 315MHz
#include <VirtualWire.h> //Inclui a biblioteca VirtualWire.h
char *dado ; //Cria a variável que ira armazenar a informação pré definida enviadas pelos botões
void setup()
{
//Configura o Garagino para trabalhar como transmissor
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_set_tx_pin(3);//Configura o pino 3 como tx
//===================================================
}
void loop()
{
if(digitalRead(0)==0)// se estiver pressionado
{
dado="D";//Armazena o dado pré determinado
vw_send((uint8_t *)dado, strlen(dado)); //Envia a variável dado
vw_wait_tx(); //Aguarda o fim de transmissão
delay(100); //Aguarda um tempo para a próxima leitura
}
//Faz a leitura das tac switches e compara se estão em nível baixo
if(digitalRead(1)==0)
{
dado="E";
vw_send((uint8_t *)dado, strlen(dado)); //Envia a variável dado
vw_wait_tx(); //Aguarda o fim de transmissão
delay(100);
}
if(digitalRead(2)==0)
{
dado="B";
vw_send((uint8_t *)dado, strlen(dado)); //Envia a variável dado
vw_wait_tx(); //Aguarda o fim de transmissão
delay(100);
}
if(digitalRead(4)==0)
{
dado="C";
vw_send((uint8_t *)dado, strlen(dado)); //Envia a variável dado
vw_wait_tx(); //Aguarda o fim de transmissão
delay(100);
}
}
4. Sketch Mini RF Receiver Shield 315MHz
#include <VirtualWire.h> //Inclui a biblioteca VirtualWire.h
int x=4,y=12;//cria duas variaveis e inicia a matriz 8x8 na posição um
void setup()
{
int i;
//Configura o Garagino para trabalhar como receptor
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_set_rx_pin(2);//Configura o pino 2 garagino como rx
vw_rx_start();
//=================================================
pinMode(0, INPUT); //Configura o pino com entrada
pinMode(1, INPUT);
pinMode(2, INPUT);
pinMode(3, OUTPUT); //Configura o pino como saída
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
pinMode(18, OUTPUT);
pinMode(19, OUTPUT);
//Coloca a matriz em nivel baixo
for(i=4;i<=11;i++)
{
digitalWrite(i, LOW);
}
for(i=12;i<=19;i++)
{
digitalWrite(i, HIGH);
}
//Indica a posição onde o led sera iniciado.
digitalWrite(4,1);
digitalWrite(12,0);
}
void loop()
{
char cod;//Cria uma variavel para armazenar o dado recebido.
uint8_t buf[VW_MAX_MESSAGE_LEN]; //Recebe os dados e armazena na variável buf
uint8_t buflen = VW_MAX_MESSAGE_LEN; //Armazena na variável buflen o tamanho do dado recebido
if(vw_get_message(buf, &buflen)) //Pega a mensagem que foi recebida
{
cod=buf[0];//Converte a variável em Char
matriz(cod); //Realiza a chamada da função
}
}
//Função responsavel pela identificação dos dados
void matriz(char letra)
{
switch(letra)
{
//Verifica se o caracter recebido foi o 'D'
case'D':
if(x<11)//Se verdadeiro o led se movera para Direita
{
digitalWrite(x,0);
x++;
digitalWrite(x,1);
delay(200);//Aguarda um tempo até a próxima leitura
}
break;
case'E':
if(x>4)//Se verdadeiro o led se movera para Esquerda
{
digitalWrite(x,0);
x--;
digitalWrite(x,1);
delay(200);//Aguarda um tempo até a próxima leitura
}
break;
case'B':
if(y<19)//Se verdadeiro o led se movera para Baixo
{
digitalWrite(y,1);
y++;
digitalWrite(y,0);
delay(200);//Aguarda um tempo até a próxima leitura
}
break;
case'C':
if(y>12)//Se verdadeiro o led se movera para Cima
{
digitalWrite(y,1);
y--;
digitalWrite(y,0);
delay(200);//Aguarda um tempo até a próxima leitura
}
}
}
5. Circuito do Mini RF Transmitter Shield 315MHz
Após realizar as ligações não esqueça de acoplar o Mini RF Transmitter Shield 315MHz:
'
Figura 3 - Circuito do Mini RF Transmitter Shield 315MHz
6. Circuito do Mini RF Receiver Shield 315MHz
Após realizar as ligações não esqueça de acoplar o Mini RF Receiver Shield 315MHz:
Figura 4 - Circuito do Mini RF Receiver Shield 315MHz
Referências:
http://labdegaragem.com/profiles/blogs/como-utilizar-os-modulos-rf-link-315mhz-434mhz
http://labdegaragem.com/profiles/blogs/letreiro-de-natal-display-8x8-enviando-sua-mensagem-de-natal
http://labdegaragem.com/profiles/blogs/tutorial-matriz-de-led-i2c-utilizando-apenas-2-pinos-de-seu-ardui
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)