Transmissão Wireless com nRF24L01 RESOLVIDO!!!!!!

Saudações prezados.

Depois de muito pesquisar, consegui fazer uma transmissão consistente com o Módulo Transceptor nRF24L01....olha....não foi fácil...rsrsrrs

Ainda existe pouco material disponível para o assunto...então faço questão de compartilhar com vocês o meu feito...que é apenas o acendimento de um LED através do apertar de um botão.

Digo faço questão porque sempre que precisei do pessoal do Fórum eu fui ajudado...infelizmente não por todos..tem gente que responde uma dúvida só pra constar que "ajudou"...porque fala cada "asneira" sem tamanho..o que pode confundir ao invés de ajudar.O pior é que quando questionamos a "ajuda", o "camarada" nem dá mais as caras..acho que deve ser a vergonha bobagem num Fórum tão difundido e conceituado...mas isso não vem ao caso.

Pessoal..segue o código comentado (para 2 Arduinos UNO)...e o esquemático de ligação.

Abração a todos e espero que seja útil futuramente.

Código Emissor
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"


int dados[1]; //Armazena os dados enviados pelo rádio

RF24 radio(9,10); //Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduino

const uint64_t pipe = 0xE14BC8F482LL; //Define o endereço para comunicacao entre os módulos

int pino_botao1 = 7; //Inclui a Porta Digital 7 na estrutura da programação do módulo

void setup()
{
   pinMode(7, INPUT); //Define a Porta Digital 7 para entrada de sinal para disparo do Dispositivo Secundário
   digitalWrite(7,HIGH); //Define a Porta Digital 7 inicialmente em nível alto
 
  radio.begin(); //Inicializa a comunicação entre os módulos
  radio.openWritingPipe(pipe); //Entra em modo de transmissao
}

void loop()
{
  if (digitalRead(pino_botao1) == LOW) //Envia o comando para disparo caso a Porta Digital 7 entre em nível baixo
  {
    dados[0] = 1; // salva o valor 1 no índice dos valores enviados pelo rádio
    radio.write(dados, 1); // escreve o valor 1 na variável dados
  }
}


Código Receptor

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"


int recebidos[1]; //Armazena os dados recebidos

RF24 radio(9, 10); //Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduino

const uint64_t pipe = 0xE14BC8F482LL; //Define o endereco para comunicaçao entre os módulos

int LED1 = 5; //Inclui a Porta Digital 5 na estrutura da programação do módulo

void setup()
{
  pinMode(LED1, OUTPUT); //Define a Porta Digital 5 como saída de sinal para disparo do Dispositivo Secundário

  radio.begin(); //Inicializa a comunicaçao entre os módulos
  radio.openReadingPipe(1, pipe); //Entra em modo de recepcao
  radio.startListening(); ////Entra em modo de recepcao
}

void loop()
{
  if (radio.available()) //Verifica se há sinal de radio
  {
    bool done = false; //determina a variável booleana como falsa
    while (!done) //executa uma rotina determinada enquanto a variável booleana é negada
    {
      done = radio.read(recebidos, 1); // Lê a variável transmitida

      if (recebidos[0] == 1) //Se recebeu o numero 1, executa determinada ação
      {
        delay(10); //Tempo até executar a rotina de ativamento
        digitalWrite(LED1, HIGH); //Ativa a Porta Digital 5 em nível alto para disparo do Dispositivo Secundário
      }
      else
      {
        digitalWrite(LED1, LOW); //Desativa Porta Digital 5 caso o valor recebido não seja igual ao valor 1
      }

      delay(100); //Tempo para reiniciar a verificação do sinal transmitido
    }
  }
 
}

Exibições: 8373

Anexos

Responder esta

Respostas a este tópico

Parabéns!

Entre no forum criado sobre isso pelo Weider, pode ser util para você.

Abraço.

Parabéns Rubens,

    Mas você poderia dizer o que mudou do que iniciou tentando pra o que acabou funcionando ?

    Percebi que você não usou no cabeçalho do sketch comandos um pouco mais avançados de controle de pacote,  ou mesmo de de controle de potência dos módulos,   sendo que o codigo descrito por você lembra o codigo que uso como padrão para estudo, que se encontra no blog futebol de robos, e é muito bom.

    Mas antecipadamente,  te digo... muuuuuuuuitos parabens,   espero que você possa fazer um tutorial mais detalhado e coloca-lo lá no grupo NRF24L01.

ficamos lhe aguardando.

Boa tarde Weider.

De fato, usei o mínimo possível nas linhas de comando...o principal motivo foi falta de conhecimento em Arduino mesmo.Mas pretendo sim..implementar mais o código.

Por hora, em virtude da  minha urgência com o projeto, fiz o mínimo possível.

Mas vou sim detalhar minhas dificuldades e compartilhar no grupo criado por você.

Abração e muito sucesso!!!!!

Desculpe, quis escrever Grupo e não forum.

Obrigado pela dica Carlos.

Vou fazer isso sim!!!

Maneiro brow!

Essa parada ai! Eu usei 2 desses caras no meu TCC, muito bom esse transmissor, mas já reparou que quando vc coloca ele de lado (deita ele) o sinal às vezes se perde?

Eu passo isso com o meu e já vi um cara tendo o mesmo problema que eu num tutoria no youtube em relação a isso ai, se acontece com vc, me avisa ai tb, pra ver se não é só o meu que tem essa zica ai.

Olá Eloi Lima,

   Cara, se cadastra no grupo NRF24L01 e traz sua expericia com os modulos amigo,  Pô seria muito legal ver a parte do seu TCC que você lidou com eles e como lidou.

 

   Fico te aguardando.

Opa mano,

Eu fiquei um bom tempo se acessar aqui o LAB, mas irei entrar no grupo o quanto antes e disponibilizar lá o meu TCC para acervo técnico dos colegas e seu tb meu parceiro.

Um abraço e por volta das 14:00h já estou cadastrado no grupo.

Opa, nosso grupo ta crescendo hehehe.

Vou testar esses códigos o amigo Rubens. Minha batalha ainda está para conseguir uma boa distância já que não chega a 10m. Essa semana vou fazer um video do que já consegui e postar no grupo.

Abraço galera.

Melhor forma de colocar o TCC é colocá-lo em um link para download.

Posso colocar lá no grupo ou tem algum problema colocar link de download???

Desculpa a pergunta, é que nunca fiz isso aqui e não sei se vai ferir alguma diretriz do LAB.

Pode colocar sem problema.

Abs.

Galera, boa tarde!

Estou tentando rodar o código Receptor, mas fica dando o erro: "void value not ignored as it ought to be".

Alguem consegue me ajudar???

Abraços!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço