Tutorial: Controlando a posição do LED na matriz 8x8 a distancia utilizando o Garagino e os Minis RF Shield 315MHz

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

2x Kit Garagino Rev 1

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 Suporte de bateria

2x capacitores eletrolíticos 10uf 50v

2x capacitores cerâmicos 100nf (104)

Alguns Jumpers (Circuito)

 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

Exibições: 4759

Comentar

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)

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço