[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: 10265

Responder esta

Respostas a este tópico

Olá bom dia e muito obrigado pela atenção. Mas ficou a dúvida, qual a diferença técnica (alcance, estabilidade...) entre estes dois modelos? Seria possível atender-me a uma distância de 40 metros com 2 lajes e uma parede como barreira? Obrigado

Olá Welligton,

   Esqueci de citar sobre potencia, desculpa.

 

    A versão  NRF24L01+ segundo o datasheet tem alcançe SEM BARREIRAS de 100m,  com barreiras pode variar entre 10 a 40m.

    Já a versão Nrf24l01+PA+LNA seja com antena externa, seja com antena ceramica, segundo o datasheet alcança SEM BARREIRAS 1.000m (alcança mesmo já testei, deu até mais) já com barreiras fala-se de 100 a 300m,

 

    Já sobre estabilidade, nunca ouvi nada sobre diferenças entre as versões,  a questão é que o PA+LNA contem nele duas etapas, na primeira tem um NRF24L01+ simples, e na segunda tem um amplificador(fala-se no termo "chutador") que gera alguns cuidados a mais para trabalhar com esses modulos mais potentes.

    Será preciso trabalhar com capacitores mais especificos, lidar com configuração de potencia, tamanho de pacote, etc.   em resumo,  eles são um pouco mais complicados de lidar que as versões simples,  mas nada que desanime.

     A boa noticia é que a pinagem dos dois é a mesma,  a programação é praticamente a mesma,  em resumo,  em alguns casos, é só tirar um e colocar o outro que já funciona,  algumas vezes não,  tem que fazer alguns ajustes.

     Mas tamos ai pra te ajudar.

Um detalhe que pode afetar o alcance do NRF24L01 é o roteador wi-fi, já que ambos trabalham na mesma frequência. Certa vez estava testando próximo do roteador e o alcance estava em 10m (com barreira). Quando desliguei o roteador, aumentou para 40 m. Nessa aplicação, é enviado um string de 16 caracteres (transmissão um por um).

Seguem abaixo as modificações efetuadas na biblioteca Mirf:

Mirf.payload = 1 // 1 byte por vez

Mirf.configRegister(RF_SETUP, 0x26); // 250 Kbps (default = 2Mbps);

Mirf.configRegister(SETUP_RETR, 0x0A); // 10 tentativas em 250us (default = 3, max = 15);
Mirf.channel = 90; // default = 1.

Obrigado amigo pela ajuda, estou aguardando chegar os meus que comprei no ebay. Se houver alguma dúvida na programação vou te consultar mais uma vês. Mais uma vez obrigado.

Olá Welligton,

Existem diferenças entre fabricantes, veja esses testes:https://hallard.me/nrf24l01-real-life-range-test/

Também vi uma matéria no hackaday onde os caras tiraram "um Raio X" de alguns chips e existem umas imitações que possuem range bem inferior ao dos originais (máximo de 5 metros in door). Eu tive a sorte de comprar um par que me fez perder horas, os substitui no mesmo circuito e tudo funcionou perfeitamente... então tomem cuidado com a procedências (eu sei, é difícil saber...)

Bom dia, amigo gostaria de ligar um rele com o nrf a 500m. Você pode me ajudar. Como quase não tenho tempo e um pouco de pressa. Você cobraria quanto para fazer? Aguardo retorno.

Ola Weider,

Me tira uma duvida no seu projeto vc usou 2 Nrf24l01+PA+LNA ou 1 deles foi o modelo basico? Estou tentando usar o modelo básico como receptor e o Nrf24l01+PA+LNA como transmissor porem so consigo 20 metros de alcance em area com obstaculo, gostaria que funcionasse a pelo menos 50metros com obstaculos mesclando o Nrf24l01+PA+LNA com Nrf24l01+ sera que é possivel?

Olá Ailton,

  Infelizmente quando se utiliza os radios das duas potencias, ele tende a aumentar um pouco a distancia que seria conseguida com dois radios basicos, mas só isso.

   Pra conseguir maiores distancias somente com dois PA+LNA.

   Porem, dá uma buscada na google pelo tema:  HACKING NRF24L01,   você vai encontrar uma galera que esta alterando a antena do modulo basico, conseguindo façanhas com ele.

    Lembro tambem que toda vez que for fazer testes os NRF possuem 126 canais, logo, é interessante fazer testes em diferentes canais tipo, pulando de 10 em 10,  as vezes com deterninados canais se alcança melhores resultados por questão de menor incidencia de ruido.

Muito Obrigado. Essa foi uma ótima ideia vou tentar.

Amigo, boa noite, vi seu código e seu projeto e estou tentando fazer um igual. Acender um rele para ligar uma lampada usando 2 nrf 24l01(simples) verifiquei seu código do transmissor no arduino correu tudo bem, verificação completa. Quando fui passar o do receptor deu o seguinte erro:

C:\Users\Juba\AppData\Local\Temp\untitled710834113.tmp\sketch_nov25a\sketch_nov25a.ino: In function 'void loop()':

sketch_nov25a:27: error: void value not ignored as it ought to be

done = radio.read( comunica, sizeof(comunica) );

^

exit status 1
void value not ignored as it ought to be

Pode me dizer o que aconteceu? Aguardo. Desde já agradeço.

Juliano,

    Eu já avisei uma trocentas vezes aqui,  esses codigos funcionam unica e exclusivamente com a biblioteca RF24 do MANIACBUG,  outras versões da RF24 como a do greg copeland, ou a mais atualizada de todas a do TMRH20 usam funções diferentes.

Desculpa, sou leigo. Obrigado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço