[PEDIDO AJUDA] Nào consigo fazer funcionar modulos de radio de 1000m (NRF24L01+PA+LNA)

Galera,

   Tô precisando de ajuda pra valer, e dessa vez é pra mim, pois tenho que entregar um prototipo a um cliente de um controle remoto que alcance 500m no mínimo, de e tô meio que no desespero.

   
   Tentei aqueles controles de carro de 1000m, mas eles se mostraram afetáveis por interferências em algumas áreas(resumindo, testei e não serviu).
   Pensei em utilizar os Xbee,  mas o preço dos módulos de alta potência são proibitivos pra o projeto, visto que são vários.
   A solução foi partir pra os módulos de rádio nRF24l01, que tem de dois tipos, os de baixa potencia( nrf24l01+ ) que pelo datasheet dá uns 100m  e a versão nRF24l01+PA+LNA que pelo datasheet dá 1000m.

tá aqui os dois tipos:



Criei uma shield pra usar esses radios no arduino UNO, ela foi feita pra uso com a biblioteca RF24.h tá aqui ela:




O DESAFIO:

  Preciso que quando um dos lados for energizado(o transmissor), ele automaticamente mande um codigo pra o segundo modulo(receptor) que estará aguardando,  se o código bater ele acende um led por um tempo,  só isso,  parece fácil né ?    Mas não é!  


O PROBLEMA:

  O problema é que apesar do fabricando dizer que os dois modelos (de 100m e 1000m) serem iguais tendo como única diferença um amplificador no mais potente,  o que ocorre é que quando executo os sketchs abaixo, no radio mais simples( nrf24l01+ ),   tudo acontece bem,ele não falha nunca,   já quando executo no modelo de maior potencia (nRF24l01+PA+LNA)   ALGUMAS VEZES ELE FUNCIONA, OUTRAS NÃO ! e depois de um tempo, para de funcionar completamente.


PEDIDO DE AJUDA:

  Peço que se alguém já mexeu com esses rádios e souber alguma coisa que possa ser feita para eles funcionarem , que me dêem uma luz, pois já tentei várias coisas, inclusive colocar um capacitor de 4.7uF entre o VCC(3.3V) e o GND e nada.   Já tentei aumentar a tensão usando LM317 para o pico de 3.6V,  funcionou um tempo e parou,  dai quando aumentei mais ainda, queimei dois dos rádios.

  Tô precisando de ajuda mesmo.


os sketchs usados são esses:



// *********************************************************** TRANSMISSOR **
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

int comunica[1];

RF24 radio(9,10);

const uint64_t pipe = 0x88E8F0F0E1LL;

void setup(void)
{ Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
  pinMode(3, OUTPUT);  
  comunica[0]=0;
  delay(100);}


void loop(void){
 
    comunica[0]=123;
    radio.write( comunica, sizeof(comunica) );
    digitalWrite(3, HIGH);
 
}




//  **************************************** RECEPTOR**
#include <avr/wdt.h>

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

int comunica[1];

RF24 radio(9,10);
const uint64_t pipe = 0x88E8F0F0E1LL;

void setup(void){
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();
  pinMode(3, OUTPUT);  
 
wdt_enable(WDTO_4S);  // habilita o watchdog
 
}

void loop(void){
  if ( radio.available() ){
    bool done = false;
      while (!done){
        done = radio.read( comunica, sizeof(comunica) );
      if(comunica[0]==123){
        digitalWrite(3, HIGH);
        delay(1000);
        digitalWrite(3, LOW);     
      }
      else{
        digitalWrite(3, LOW); }
    }
  }
 
   delay(100);
    wdt_reset();  //  reseta o watchdog,
}





  

Exibições: 9010

Responder esta

Respostas a este tópico

Olá Sarmanho,

    Cara,  fui informado por um usuário aqui do forum da existência da Lorawan, dei uma pesquisada e resolvi comprar um par de radios compativeis com o arduino,  comprei a versão de menor potencia e mais barato mesmo, só pra estudar.

    Eles chegaram semana passada,  mas como esses dias estou me dedicando a comunicação i2c para elaboração de núcleos Arduíno multicore, e ainda tendo que programar um TFT LCD, onde só a biblioteca consome 60% da memoria programavel,  Não tive tempo ainda de sentar e estudar os radios Lora.

    Qual suas pretenções ?   só estudar?  tem projeto?  já comprou os radios?    já fez comparação deles com outros?

  

Quero comprar os radios para Arduino e aprender sobre eles. Como funcionam. Vi sua pesquisa. Tens WHATSAPP, TIM ou VIVO ? Te adicionei no facebook também. :)

Ola Weider, estou vendo que você teve sucesso com NRF24l01, mas eu ate o momento não. Alias, em a partes, eles se comunicam, porem tenho que praticamente encostar um modulo NRF no outro para isso acontecer, e se eu distancio eles em algo em torno de 5 cm eles ja não se comunicam mais. Quero mudar a taxa de transferência de 2mbps para 256kbps, como você fez, porem não tenho ideia de como fazer isso. Você pode me ajudar? estou usando a biblioteca NR24-master e a RF24. 

Olá Lucas,

   Vou dar algumas dicas sobre os NRF24L01 que servirão tanto pra você como outros que passarem por aqui:

1- Tenha no minimo duas IDEs do Arduno em seu PC,  eu por exemplo mantenho sempre a 1.0.6 e a mais recente 1.6.10(ta na 12 mas mudou pouco)

   Na IDE mais antiga instale a RF24 do maniacbug,  ela é otima pra estudar, mas na hora do uso tem muitas falhas.

   Ja na IDE mais nova instale, ou vá na lista de bibliotecas e mande instalar a RF24 do TMRH20,  ela é a mais recente, teve varios erros corrigidos, mas é mias tecnica.

2- Dê uma lida com carinho nessa page:  http://maniacbug.github.io/RF24/classRF24.html    ela tem todas as informações de comandos, pra que serve e como escreve-los e executa-los, em caso de duvidas copie o comando e vá no google e procure por exemplos.

3- Tenha especial carinho com os comandos Set_PA_Level (que indica potencia) e Set_payload_size (tamanho dos pacotes)  isso ira interefir muito no resultado.

4- Tenha em mente tambem que os NRF24L01 por serem muito baratos, vendem muuuuuuito, e como tudo que vende muito, chama a atenção e gera pirataria, e até onde eu tenha conhecimento, fisicamente não ha como identificar nrfs piratas, só quando eles começam a dar falhas,   logo, tenha sempre nrf24l01 alem dos que você vai usar e comprados de fornecedores diferentes.

5- Os nrf24l01 (e diversos outros radios que eu acabei descobrindo)  tem um problema de picos de consumo, ou seja, eles foram fabricados para consumir o minimo de energia pra poder trabalharem com baterias, porem, a depender da transmissão eles precisam de altas cargas de energia pra isso,  dai ter uma fonte de energia exclusiva pra ele(3.3v)  e lembrar de colocar capacitores entre o VCC e o GND é imprescidivel ( o valor dos capacitores é uma icognita, os valores mais citados são 10, 100 e 470uF ).

Primeiramente Weider, gostaria de parabeniza-lo e agradecer pelo seu retorno aqui no forum, e dizer que são poucas pessoas que tem essa humanidade em ajudar ao outro. Parabéns, o nosso Brasil varonil precisa de mais pessoas como você. Deixando de pra la o lado melindroso do meu drama, rs, tenho seis radios, sendo cinco nrf24l01 normal e um com antena. Ja coloquei o capacitor de 100uf neles e ja tenho duas IDES do Arduíno, e por sinal é as versões citadas por ti, mas como eu disse na pergunta, não obtive sucesso. Agora colocarei em pratica suas dicas e tomara que eu tenho sucesso. E mais uma vez, obrigado!

Lucas,

   Cara, muito obrigado pelas palavras, elas são muito importantes tanto pra mim como pra galera que procura sempre ajudar, o agradecimento é nosso pagamento, junto com a alegria de ver o projeto da galera dando certo.

   Cara, eu tive altos problemas com os NRF24L01, e todos sempre foram resolvidos:

a) com correções na parte eletrica, seja com capacitor ou melhoramento da fonte, ou

b) com o ajuste do pa level, esse eu criei uma rotina simples no SETUP, dai quando ligado o radio ele coloca ele em minimo e tenta se comunicar se não der tenta algumas outras vezes e vai aumentando o level, quando chega no max, ele volta pra o min e faz tudo de novo até achar um radio, dai para, a logica é simples, tenta ai.

c) radios defeituosos, como disse tem muita pirataria.

Weider, bom dia! 

Parabéns pelo post e persistencia. Realmente isso nos motiva cada dia mais.

Quanto ao seu projeto...

Confesso que sou novo nesta parte de comunicação wireless e preciso de uma ajuda... 

Li tudo e fiquei com algumas duvidas... onde vc adiciona os capacitores?  Seria possível postar uma foto ou me enviar por email ac.bruno@terra.com.br ? 

Obrigado pela ajuda! abs. Bruno

Valeu antonio,

   Cara, é bem simples, basta soldar um capacitor diretamente no nodulo NRF24L01, a ponta negativa(a que tem um tracinho no capacitor) vai no GND e a positiva do capacitor no Vcc do modulo,

    Tem que soldar direto nos pinos mesmo, ou seja, em cima dele, se você tentar colocar fios, ou uma montagem na protoboard ou seja lá o que, as vezes não dá certo.

Weider, 

Sem brincadeira! Ficou SHOW !!!!! O capacitor de 470uf no transmissor e 100uf no receptor (eu não tinha outro de 470uf), pelo menos dentro dos 20 metros, com obstáculos , que tenho em casa funcionou perfeitamente ! 

Mas o problema de transferir apenas 1 vez ainda permanece. Só emite mais uma vez se eu apertar o reset no transmissor.

Vc não tem uma ideia do que pode ser, né?

Abs . Bruno. 

Boa tarde Weider Duarte!

Gostaria de saber se pode me ajudar em algo.

Estou tentando fazer a comunicação entre dez arduinos com o módulo NRF24L01 (o de alta potência). Estudei a respeito e vi que o ideal é eu fazer uma rede em cascata com o mestre (00), os filhos (01 - 04) e os netos (011-041; 012-042; ...) Dessa maneira no terceiro nível eu já conseguiria comunicar até 20 dispositivos com o mestre. Ainda não tenho todos os dispositivos, tenho três para teste, a intenção é interagir com o metre (00) o filho (01) e o neto (011 através do filho 01).  Estou tentando usar a biblioteca RF24NETWORK (maniacbug). Abri o exemplo dela e no mestre instalei o exemplo do rx, nos outros dois instalei o exemplo tx, sendo que modifiquei a identificação de um dos nodes (de 01 para 011).  

O resultado é que o mestre imprime na serial que recebe pacotes dos dois nodes (tudo certo), porém se eu desligar o node (01), ele continua recebendo dados do node (011), o que na minha ignorância, não deveria, já que o (011) dependo do (01) para se comunicar com o (00). 

concluindo, os dois (01 e 011) estão no mesmo nível, e não em em cascata. 

Tem alguma dica de como faço pra resolver isso?

Muito Obrigado.

Pessoal, Me dá uma ajuda... 

Estou tentando entender este NRF24L01 , porém os scripts que utilizo, inclusive este do post, envia/recebe a informação apenas 1 única vez. E somente reenviará se clicar no reset do transmissor. 

Alguém tem uma ideia do que possa ser? Já troquei arduino, conexões, etc. Mas nada. :-(

Valeu pela ajuda! abs, Bruno.

Antonio,

   Dá uma olhada nesse site abaixo, veja tanto o exemplo 1, como o Exemplo 6,  ele é bem explicativo, vai te ajudar.

http://futebol-uff.blogspot.com.br/2012/12/nrf24l01-testes-iniciais...

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2020   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço