Tutorial: Comunicação wireless com Arduino e Módulo NRF24L01 157

Montar uma rede de comunicação sem fio utilizando Arduino é muito simples, como você já viu no post Módulo RF Transmissor + Receptor 433 Mhz AM, onde mostramos um tutorial de como utilizar esse módulo para enviar dados de um Arduino para outro.

Outra forma muito fácil e barata de se montar uma rede sem fio é utilizando o módulo wireless NRF24L01 como esse abaixo:

Módulo Wireless NRF24L01

Pinagem e Datasheet NRF24L01:

Este módulo utiliza o chip NRF24L01+ fabricado pela Nordic (NRF24L01 datasheet), trabalha na frequência de 2.4 Ghz e possui uma antena embutida, o que faz desse um dos módulos mais compactos do mercado. Possui um conector de 10 pinos (figura abaixo) com os pinos muito próximos uns dos outros, o que limita o seu uso na protoboard. Nessa configuração, o ideal é a utilização de algum outro tipo de conector, como o jumper macho-fêmea, e ligá-lo diretamente aos pinos do Arduino.

Módulo NRF24L01 - Pinos

Dos 10 pinos do conector, vamos utilizar 9 (não vamos utilizar o IRQ nesse momento).  Como o módulo utiliza a interface SPI do Arduino, temos que obrigatoriamente utilizar os pinos 11, 12, e 13 para os sinais MOSI, MISO e SCK, respectivamente. Os pinos CSN e CE serão ligados aos pinos 7 e 8 do Arduino, ou algum outro de sua preferência. Atenção para a tensão de alimentação : este módulo trabalha com alimentação de 1,9 à 3.6 Volts :

Tabela pinagem NRF24L01

Montagem NRF24L01 com Arduino:

Podemos testar o módulo utilizando um dos vários exemplos contidos na biblioteca RF24. O ideal é a utilização de 2 módulos com 2 Arduinos diferentes. Como o mesmo módulo pode ser utilizado tanto para transmissão como para recepção, a ligação é a mesma :

Ligação NRF24L01 Arduino

Programando Arduino com NRF24L01:

Carregue em cada um deles o programa abaixo, que é o programa GettingStarted, contido na base de exemplos da biblioteca :

Abra o serial monitor e selecione a velocidade de transmissão para 57600 bauds, conforme destacado :

Serial Monitor - Selecionar 57600 baud

O Arduino faz a comunicação com o módulo NRF24L01 e mostra os dados na tela do serial monitor, indicando o status do módulo :

Serial Monitor - Comunicação com módulo NRF24L01

No serial monitor, pressione T e clique em ENVIAR em um dos Arduinos e será iniciado o processo de transmissão de dados. No outro Arduino, pressione R e será iniciado o processo de recepção. Lembre que um mesmo módulo pode ser utilizado tanto para transmissão, como para recepção.

Gostou? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo) e visite nossa loja FILIPEFLOP !

Posts Relacionados

157 Comentários

  1. kra, otimo post, agora aki no meu PC (com navegador Chrome), o codigo esta aparecendo cheio de codigos HTML…

    1. Boa tarde Flavio,

      Obrigado por avisar. Já corrigimos o código.

      Qualquer problema, estamos à disposição.

      Grato.

      Adilson – Equipe FILIPEFLOP

  2. Olá, gostaria de saber se é possivel fazer a transmissao desse módulo com um smartphone?

    1. Boa tarde Luciano,

      Não. apesar desse módulo trabalhar na frequencia de 2.4 Ghz, ele não segue o padrão 802.1XXXXX normalmente utilizado nas comunicações wireless.

      Para comunicação com um smartphone, recomendamos o módulo bluetooth :

      https://www.filipeflop.com/pd-b4742-modulo-bluetooth-rs232-hc-05.html?ct=&p=1&s=1

      Abraço !

      Adilson – Equipe FILIPEFLOP

  3. Eu tenho uma dúvida quanto a este módulo. Posso utilizar ele enviando e recebendo dados ao mesmo tempo? Ou eu teria que alternar entre essas funções?

    1. Boa tarde Rafael,

      Esse módulo não funciona nos 2 modos ao mesmo tempo. Você deve configurar cada módulo para receber ou transmitir, e alternar esses modos conforme a necessidade.

      Grato.

      Adilson – Equipe FILIPEFLOP

  4. olá é possível uma montagem do sensor de distancia para si comunicar entre ele e o arduino

    1. Boa noite José,

      Que tipo de sensor de distância você quer utilizar ?

      Grato.

      Adilson – Equipe FILIPEFLOP

  5. Pelo que entendi da imagem do serial monitor, esse módulo trabalha com endereçamento “RX_ADDR” e “TX_ADDR”, é isso mesmo? Então seria possível um Arduino central se comunicar simultaneamente com vários outros, Arduinos Pro Mini por exemplo, cada um com um módulo NRF24L01?

    Alessandro Venciguerra
    1. Boa tarde Alessandro,

      Isso mesmo. Com esse módulo, você consegue ter um ponto central, e configurar os outros NRF24L01 para executarem tarefas específicas.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  6. Bom dia, estou desenvolvendo um projeto e estou com problema na transmissão, sera que você pode me auxiliar?
    Preciso construir um equipamento para sinalização, montei o hardware assim, um arduino uno + RTC 1307 + Shield Ethernet slot card + NRF24l01 + led super brilho + buzer + botão.

    O que eu preciso que faça:

    Ao teclar o botão o equipamento TX envia sinal aos demais equipamentos, ao receber o sinal, os RX acendem um Led, acionam um buser, e registram no SD Card. a data a hora o min e seg, e o TX registra a Hora Min e seg.

    Todo equipamento tem que ser TX e RX, preciso de um alcance entre 150 e 250 metros.

    Pela sua experiência você acha que isso é possível?

    1. Boa tarde Rodrigo,

      É possível sim. Só estou achando a distância um pouco elevada. E não esqueça que você vai precisar de um módulo NRF24L01 no TX, pois o protocolo wireless dele não é o 802.1xxxx, comum nas redes de computadores, então ele não vai se comunicar com o Ethernet Shield.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  7. Já adquiri várias coisas contigo, agora é hora de tirar umas duvidas contigo, na verdade duas Duvidas 1ª- Qual a distancia maxima informada pelo fabricante, e qual distancia real que vocÊ acredita que ele alcança ? – Comparando esse modulos aos modulos 433mhz e depois comparando com os Xbee, o que você poderia me dizer ?

  8. sou iniciante com o arduíno e queria saber do que preciso pra montar um sistema de comunicação com o meu android ou pc, obg!

    1. Bom dia Edmo,

      Existem várias opções para comunicação, e tudo vai depender do seu projeto.

      Temos por exemplo módulos bluetooth, módulos Xbee e outros módulos Wireless que você pode utilizar para esse fim.

      Acesse a loja FILIPEFLOP em https://www.filipeflop.com e confira os nossos produtos.

      Abraços

      Adilson – Equipe FILIPEFLOP

  9. Olá, Gostaria de um exemplo de como usar NRF24L01 + ENC28J60… não consegui integrar as duas em um mesmo hardware…

    1. Olá bruno, também tive este mesmo problema, parece que o arduino não consegue gerencia o enc28 e enviar dados por rf simultaneamente.
      Adilson, creio que essa duvida é para todos que tentaram fazer tal combinação de placas e, se não for muito incômodo, gostaria que testasse para nos auxiliar.
      Grato!

      1. Boa tarde Vitor,

        Não temos nenhum esquema ainda nesse sentido mas vamos estudar a possibilidade de fazer um post integrando esses módulos.

        Abraço.

        Adilson – Equipe FILIPEFLOP

  10. só possível enviar e receber dados com o arduino uno? nao existe algum projeto com pic capaz de substituir o aduino?

    1. Boa noite Morais,

      Aqui no blog ainda não temos um projeto nesse sentido, mas você consegue informações sobre a ligação do NRF24L01 com o PIC nesse link :

      http://wordpress.codewrite.co.uk/pic/2013/12/11/nrf24l01sw/

      Grato.

      Adilson – Equipe FILIPEFLOP

  11. Gostaria de saber do porquê dos transceivers não conseguirem se comunicar entre dois arduinos unos comprados aqui também(erro de envio: falha). Qual IDE de arduino é recomendada?

    1. Boa noite Breno,

      Nos nossos testes usamos 2 Arduino Uno. A versão de IDE que utilizamos é a 1.0.5.

      Grato.

      Adilson – Equipe FILIPEFLOP

  12. Primeiramente parabéns pelo site.
    Mas eu não conseguir entender o seguinte:
    1º Depois de fazer o que foi descrito no post, como eu faria para transmitir um numero pelo modulo para o outro arduino ?Se esse numero fosse 1 ele ligava o led no pino 13 e se fosse 0 led desligava.

    1. Boa noite Luiz,

      Obrigado pela visita. No momento não temos nenhum exemplo com essa configuração, mas você pode utilizar tanto esse tutorial do NRF24L01 como os tutoriais do Bluetooth e montar um código para essa transferência de dados.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  13. Olá Filipe, gostaria de conectar dois modulos nrf24 em um só arduino, um só enviando e o outro só recebendo isso é possível ? se sim, como conectar os pinos de cada um? como fazer as ligações? OBRIGADO.

    Eduardo Marques Siqueira
    1. Boa noite,

      Não é possível, porque o módulos teriam que utilizar a interface SPI. E temos somente uma disponível no Arduino.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  14. Boa noite Filipe,

    Olhei rapidamente o tutorial, porém não vou seguir por enquanto pq ainda não comprei o módulo, pois estou procurando um que melhor se adapta à minha necessidade… Mas já me bateu uma dúvida…

    A comunicação entre os módulos é só uma via (tipo um fala e os outros somente escutam) ou eles podem realmente se comunicar enviando e recebendo dados, ou seja, enviando uma “pergunta” e recebendo uma “resposta”, por exemplo, um módulo envia um comando solicitando a hora e outro responde com a hora atual??? Ou o master envia um comando pra um slave solicitando a temperatura e o slave responde com a temperatura do ambiente… Bom, acho que entendeu, né? hehehe

    Muito obrigado!

    1. Boa tarde Carlos,

      Os módulos funcionam nos dois modos : envio e recebimento de informações. Você pode configurar o módulo para, por exemplo, enviar um sinal e depois entrar em estado de espera, aguardando a resposta.

      Abraço.

      Adilson – Equipe FILIPEFLOP

      1. O protocolo SPI possibilita a utilização de vários dispositivos na mesma interface, tendo os pinos SCLK, MOSI e MISO em comum a todos os dispositivos, e cada escravo terá um pino associado SSn, onde n é o número do escravo.

  15. Olá boa tarde, com este modulo eu posso enviar e receber dados de um arduino utilizando rede wi-fi ?

    1. Boa tarde Rodrigo,

      Não, os protocolos de comunicação são diferentes da rede wifi padrão 802.11.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  16. Olá Filipe,

    Cara, sou um grande fã e admirador seu, e meu interesse é apenas ajudar.
    Sobre a pergunta sobre a possibilidade de dois modulos em um mesmo arduino, veja a linha 67 da pagina oficial da livraria nRF24: http://www.airspayce.com/mikem/arduino/NRF24/ (logo acima do topico Example programs)

    Meu caro Filipe, quero te agradecer de coracão, pois descobri sobre esse maravilhosos modulos atraves de você.
    A questáo é que fazendo pesquisas, descobri que estão sendo lançadas livraria que estão tornando esses baratos modulos, em peças tão poderosas como os Xbee.

    Por exemplo se você desejar criar redes mais complexas o mesmo criador da biblioteca NRF24 o MANIACBUG, criou a biblioteca RF24NETWORK:
    VIDE AQUI: http://maniacbug.wordpress.com/2012/03/30/rf24network/

    Já se seu desejo é botar os nRF24l01 pra competir pau a pau com os xbee, criando redes mesh e modos supercomplexos de comunicacao com inumeros nós, entáo a coisa é com a biblioteca HADIOHEAD
    VIDE AQUI: http://www.airspayce.com/mikem/arduino/RadioHead/

    Bem, peço que me perdõem por estar espondo tais informações antes mesmo de fazer plenos testes com essas bibliotecas, mas adoro ajudar, e preferi correr o risco e pedir que aprendamos juntos.

    Logo, peço a todos que forem testando e encontrando coisas legais, postem aqui como fizeram.

    OBRIGADO.

  17. Olá, comprei esse módulo aqui no entanto não consegui fazer com que o par se comunicasse. Nenhum dos tutoriais nem bibliotecas funcionariam. Há alguma diferença entre esse módulo e este?

    http://produto.mercadolivre.com.br/MLB-586137451-modulo-nrf24l01-wi-fi-transceiver-arduino-pic-avr-frete-7-_JM

  18. Bom dia filipe, estou iniciando meu tcc, e estou querendo fazer no meu projeto dois notebooks se comunicarem através de um ou dois LEDS de autro brilho utilizando arduino, ou seja enviar dados de um para o outro utilizando a luz. Isso é possivel? ja fez algo parecido?

    1. Boa noite Allyson,

      Não temos nenhum projeto nesse sentido, mas teoricamente é possível, Você poderia utilizar leds de alto brilho e LDR´s para detectar a luminosidade.

      Boa sorte com o TCC. Abraço !

      Adilson – Equipe FILIPEFLOP

  19. Olá bom dia!
    Sou aluna da escola SENAI FUNDAÇÃO ZERRENNER, estudo o curso técnico em eletrônica e estou a poucos meses de entregar o tcc, gostaria de obter uma ajuda melhor com relação a essa comunicação entre os arduinos, pois quando vou compilar o código na IDE do arduino da erro, sendo que ja efetuei download da biblioteca do mirf, seria necessário fazer dowload de mais alguma biblioteca ?

    Camila Batista dos Santos
    1. Olá Camila, desculpa estar tomando o espaço de resposta que normalmente é destinado ao nosso nobre Filipe, mas vou tentar te dar alguma ajuda.
      A comunicação sem fio entre arduinos pode ser feita de variadas formas, desde os xbee que utilizam comunicação serial até esses nrf24l01.
      Os nrf24l01 não possuem bibliotecas proprias do fabricante, logo, para utiliza-los com os arduinos, você terá que usar uma biblioteca escrita por usuários, e existem várias bibliotecas.
      Pessoalmente não gostei da mirf,, gostei mais da rf24., o site para obter ela é o https://github.com/maniacbug/RF24
      Já se vocÊ pretente fazer uma comunicação entre muitos pontos, tipo uma rede a biblioteca ideal seria a rf24network, o site pra ter informações sobre ela é o http://maniacbug.wordpress.com/2012/03/30/rf24network/

      Pra os melhores exemplos sem erro de falha, existe um blog de uma galera de uma universidade com dois simples exemplos, um com cada uma dessass bibliotecas, mas curiosamente são os mais simples, diretos, e funcionais exemplos que já achei até hoje, logo visite: http://futebol-uff.blogspot.com.br/2012/12/nrf24l01-testes-iniciais.html e veja o que falei.

      Bem, espero ter ajudado.

  20. Olá!! Primeiramente, obrigado pela resposta anterior que me conduziu até aqui!! Porém esse post me levou à uma segunda questão, eu consigo enviar dados para ele no modo receptor somente de um outro igual a ele? e se sim eu terei de ter um arduino ligado à ele? Pergunto isso por causa do meu projeto, o botão de mesa pra chamar garçom, eu teria que ter um artduino em cada mesa?

    1. Boa noite Tiago,

      Não testei em nenhuma configuração sem usar o Arduino.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  21. Ola, tendo em vista que o alcance deste diapositivo em espaços fechados como uma casa por exemplo, é de 10m. É possível usar um módulo intermediario como repetidor?

    Grato!

    1. Boa tarde Luan,

      Teoricamente sim, você só teria que programá-lo para que ele seja a “ponte” entre um módulo e outro.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  22. Olá Filipe, estou com um problema não estou conseguindo localizar aonde você configurou a distancia entre o Transmissor e o Receptor , se possível me forneça o código , estou fazendo um projeto e preciso colocar uma distancia entre 5 METROS entre Transmissor e o Receptor.

    Muito Obrigada deis de já !

  23. Olá Filipe, estou com um problema não estou conseguindo localizar aonde você configurou a distancia entre o Transmissor e o Receptor , se possível me forneça o código , estou fazendo um projeto e preciso colocar uma distancia entre 5 METROS entre Transmissor e o Receptor.
    Abraços

    Muito Obrigada deis de já !

    1. Bom dia Monique,

      Não entendi a pergunta com relação à distância.

      Grato.

      Adilson – Equipe FILIPEFLOP

  24. Boa Tarde,

    Vocês teriam algum exemplo de conexão de um arduíno com uma cubieboard utilizando o NRF24L01?

    Grato

    1. Boa tarde Mário,

      Ainda não temos esse exemplo.

      Adilson – Equipe FILIPEFLOP

  25. Olá

    tem com fazer de uma forma que eu pressione T e clique em ENVIAR em um dos Arduinos e será iniciado o processo de transmissão de dados. No outro Arduino, será iniciado o processo de recepção SEM pressionar R será iniciado o processo de recepção?
    tipo assim modificar os dois arduinos, porem apenas com um só, pois quero controlar um robô que envia dados de sensores.

    obrigado.

    1. Boa tarde Felipe,

      Teoricamente sim, você só teria que achar a programação adequada para isso, já que o módulo funciona tanto no modo de transmissão como de recepção.

      Abraço.

      Adilson – Equipe FILIPEFLOP

    2. Você poderia deixar o robô em modo de recepção e quando ele receber um determinado comando ele muda para transmissão e transmite os dados , é o mesmo com o transmissor depois da transmissão ele muda pra receptor

  26. Olá, estou testando esse código com um Arduino Leonardo, porém sem sucesso,
    retorna uma mensagem de erro:
    rf24.cpp.o: In function __static_initialization_and_destruction_0':
    C:arduino-1.0.5/rf24.ino:30: undefined reference to
    RF24::RF24(unsigned char, unsigned char)’
    rf24.cpp.o: In function `loop’:

    No compilador já está setado para Arduino Leonardo COM3 e AVRISP mkII
    O que posso estar fazendo de errado?

    1. Boa tarde Adair,

      Qual versão da IDE você está usando ? Tente na versão 1.0.5.

      Grato.

      Adilson – Equipe FILIPEFLOP

  27. Parabéns, excelente artigo.

    1. Valeu Diego ! Abraço.

      Adilson – Equipe FILIPEFLOP

  28. Bom dia,

    Qual a quantidade máxima de transmissores (clientes) por receptor (servidor)?

    Grato.

    1. Boa noite Daniel,

      Teoricamente não há limite, pois você pode se comunicar com quantos módulos quiser, apenas alterando o endereço do destinatário.

      Abraço.

      Adilson – Equipe FILIPEFLOP

      1. Como identificar os endereços de cada modulo?

  29. Olá, este módulo não precisa de nenhuma antena para alcançar as distâncias prometidas (10m indoor, 100m outdoor)?
    Somente a “mini” anterna já embutida no módulo garante estas distâncias?
    Caso eu tenha 10 destes módulos em uma casa, haverá conflito de transmissão? Qual protocolo ele utiliza?

    1. Boa noite Luis,

      Segundo informações do fabricante, ele alcança essas distâncias apenas com a antena embutida. Quanto à utilização de vários módulos, cada um deles é endereçado individualmente, o que evita conflitos.

      Adilson – Equipe FILIPEFLOP

  30. Olá Filipe,

    Estou com um enorme problema, criei uma shield para o arduino UNO poder utilizar os nrf24l01 sem maiores problemas, dai fiz algumas aplicações com eles e todas correram bem.
    O problema foi quando precisei utilizar os modulos de maior potência, os nrf24l01+PA+LNA que segundo o fabricante são para 1000m.
    O problema é que com a mesma montagem e os mesmos sketchs eu consigo fazer uma aplicação rodar perfeitamente com a versão sem amplificação, já quando coloco a versão amplificada ele funciona por um tempo depois para, e chega até a queimar o radio.
    Você tem alguma ideia do que pode estar acontecendo ?

    Weider Oliveira Duarte
    1. Boa noite Weider,

      Infelizmente não temos informações sobre esse módulo em especial. Esse link tem informações úteis e algumas restrições sobre esse módulo que você está utilizando : http://www.elecfreaks.com/wiki/index.php?title=2.4G_Wireless_nRF24L01p_with_PA_and_LNA

      Abraço.

      Adilson – Equipe FILIPEFLOP

    2. O motivo para o nrf24l01+PA+LNA parar de funcionar deve-se pelo fato dele necessitar de uma corrente superior do que a porta de 3v3 do arduino pode fornecer a melhor solução é utilizar um regulador de voltagem independente, tive o mesmo problema e foi resolvido desta forma.

  31. Boa noite,
    Preciso de uma ajuda de vocês. Tenho 4 módulos e preciso enviar um texto de uma módulo
    para o outro. Este texto possui de 30 a 50 caracteres. Como eu faço isso?
    Obrigado pela atenção.
    Ernany

    1. Bom dia Ernany,

      É possível fazer isso, mas ainda não temos nenhum tutorial ou exemplo mostrando isso.

      Grato.

      Adilson – Equipe FILIPEFLOP

  32. Ola tudo bem,
    Como esse módulo não funciona nos 2 modos (enviar e receber) ao mesmo tempo. Você poderia indicar um modulo parecido com esse, mais que tem essa função de enviar e receber dados ao mesmo tempo.
    Obrigado.

    1. Boa tarde Felipe,

      Tente o APC220, que envia e recebe dados via serial, talvez seja uma opção ao seu projeto :

      http://blog.filipeflop.com/wireless/modulo-rf-apc220-arduino.html

      Abraço.

      Adilson – Equipe FILIPEFLOP

    2. Olá Felipe,

      Na verdade os nrf24l01 funcionam sim como emissor e receptor no mesmo sketch, ou seja, você pode usar um programa que ele passa alguns milisegundos(ou ciclos) enviando e outros milisegundos(ou ciclos) recebendo, o lance é que milisegundos(ou ciclos) é algo tão rapido que você nem notará que não se trata de ao mesmo tempo.
      Dentro dos exemplos da propria biblioteca RF24 tem um exemplo de PING pair se não me engano que faz isso, ele emite e aguarda a resposta, pra isso um radio entra como emissor, emite e vira receptor, o do outro lado faz o contrario, originalmente tá como receptor, dai quando recebe ele se transforma em transmissor pra dizer que recebeu o dado.
      Dá uma fuçada nos exemplos que tá lá.

      1. Obrigado pela dica, vou dar uma olhada nesse exemplo.

    3. Felipe, e ai resolveu o seu problema? Eu estou com o mesmo….queria uma hora enviar o dado outra receber. Como faço?

  33. Olá estou fazendo um projeto de quarto modulo para o curso técnico em mecatrônica e gostaria de saber se é possível utiliza-lo em menores distancias sem ocorre alguma interferência ou problemas no envio do sinal.

  34. Olá , alguém poderia me dizer se é possível comunicar esse módulo com um celular através de algum aplicativo? ou só comunico com outro módulo igual a esse ? Obrigado !

    1. Olá amigo, infelizmente não dá, os NRF24L01 só se comunicam entre si, para você colocar um microcontrolador como o arduino para falar com celulares existem 2 metodos, o primeiro é utilizando um modulo bluetooth ( http://blog.filipeflop.com/wireless/tutorial-arduino-bluetooth-hc-05-mestre.html ) o segundo metodo é utilizando um shield GSM ( http://blog.filipeflop.com/wireless/tutorial-arduino-gsm-shield.html ) agora se você desejar fazer uma rede em casa, pode criar uma rede com os nrf24l01 e apenas um deles(o metre) ligado a dos modulos citados, e ligado a um celular, dai sim, você controlaria toda a rede por celular.

    2. Boa noite,

      Não é possível, já que esse módulo usa um protocolo de comunicação diferente do wifi do celular.

      Grato.

      Adilson – Equipe FILIPEFLOP

  35. Ola, tenho um controle remoto na freq. 2,4ghz(aciona uma cortina elétrica), gostaria de clonar esse controle através do arduino UNO e um modulo nrf24l01. Seria possível realizar essa tarefa? Tenho o arduino UNO e o modulo, mas não estou conseguindo clonar esse controle. Grato

    1. Boa noite Rodrigo,

      Até onde eu sei não é possível, a não ser que o controle remoto que você tem utilize o mesmo protocolo de comunicação do módulo.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  36. Alguém testou isso ? parece que os pinos no desenho não são o mesmo da programação tem que alterar desenha esta 7 e 8 e no código 9,10 mesmo corrigindo não funciona alguém teve sucesso ?

    1. Denner,

      Imaginei que tivesse algo errado assim q ví o código. Não ligamos o pino 9 e 10… Então, como iríamos usá-los. Bem, abri o código fonte da biblioteca e fui atrás do construtor da RF24.

      Quando a gente roda no programa:

      RF24 radio(9,10);

      Estamos criando, instanciando um objeto da classe RF24. Isso chama o construtor da classe. Quem não está familiarizado com orientação à objetos, basta entender que, quando a gente instancia um objeto da classe RF24, esse objeto é “construído” de acordo com o que está declarado em RF24(), no arquivo da biblioteca RF24, o arquivo RF24.h

      Para achar este construtor, basta procurar um método RF24() sem a definição de retorno. E eu encontrei isso:

      /**
      * Constructor
      *
      * Creates a new instance of this driver. Before using, you create an instance
      * and send in the unique pins that this chip is connected to.
      *
      * @param _cepin The pin attached to Chip Enable on the RF module
      * @param _cspin The pin attached to Chip Select
      */
      RF24(uint8_t _cepin, uint8_t _cspin); <——————————- ESTA LINHA… =)

      Como todo bom código, a explicação está no comentário. Então, p fazer funcionar conforme a montagem deste post, precisamos declarar:

      RF24 radio(8,7);

      Funcionou pefeitamente p mim:

      ==================================================
      RF24/examples/GettingStarted/

      ROLE: Pong back

      *** PRESS 'T' to begin transmitting to the other node

      STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
      RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xf0f0f0f0d2
      RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
      TX_ADDR = 0xe7e7e7e7e7
      RX_PW_P0-6 = 0x00 0x20 0x00 0x00 0x00 0x00
      EN_AA = 0x3f
      EN_RXADDR = 0x03
      RF_CH = 0x4c
      RF_SETUP = 0x07
      CONFIG = 0x0f
      DYNPD/FEATURE = 0x00 0x00
      Data Rate = 1MBPS
      Model = nRF24L01+
      CRC Length = 16 bits
      PA Power = PA_HIGH
      ==================================================

      Abraços.

  37. Boa noite! Gostaria de saber se este módulo tem melhor alcance e qualidade do que um módulo Bluetooth? E qual seu alcance em ambientes internos com obstáculos?

    1. Boa tarde Flávio,

      Realmente o alcance do bluetooth é bastante limitado. Segundo informações do fabricante, o módulo NRF24L01 alcança até 10 metros em ambiente fechado, e até 50 metros em ambiente aberto.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  38. qual é melhor o modulo RF433 ou MÓDULO NRF24L01

    1. Sidnei,

      Os NRF24L01 são disparado melhores que os modulos 433mhz.
      Se eu fosse colocar numa ordem colocaria assim:
      1º – Xbee
      2º – Nrf24l01
      3º – 433 mhz

    2. Boa noite Sidnei,

      Vai depender do seu projeto. Tanto o RF433 como o NRF24L01 são bons módulos, mas o NRF24L01 tem um alcance maior. Por outro lado, ele trabalha na frequência de 2.4 GHz, o que teoricamente pode gerar algum tipo de interferência em outros aparelhos.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  39. Boa tarde,

    Existe a possibilidade de utilizar esse módulo direto com um PIC? Gostaria de controlar alguns servos à distância.

    Obrigado.

  40. Como recebo a leitura de multiplos potenciometros e botões simultaneamente ? pois se eu for usar o projeto em um Rc de carrinho terei que receber o comando para direção+para frente ou para trás agradeço a atenção 😉

    1. Olá,

      Para recebo a leitura de múltiplos potenciômetros e botões simultaneamente, é só você criar uma struct e colocar seus dados tudo dentro dessa struct, no meu caso usei Arduino.
      exemplo:
      struct DadoRc{
      float potenciometros1;
      float potenciometros2;
      int botao1;
      int botao2;
      char direcao;
      };
      Lembrando que o modulo nRF24L01, tem a capacidade de enviar e receber até 32 bytes de dados por vez. Então é só você fazer a soma de de todos das variáveis dento da struct.

  41. Olá Srs,

    Tenho uma dúvida antes de iniciar o meu projeto em arduino e não consigo encontrar a solução. Peço a ajuda de vocês.
    Vou ter 10 arduinos ligados e instalar em cada um deles 01 transceiver NRF24L01. Cada um dos arduinos terá um botão que ao ser acionado, uma função se ativará. Esta função fará com que o led pisque por 5x e no mesmo instante, este arduino deverá enviar um sinal para os outros arduinos próximos, para que também ativem a mesma função de piscar o led por 5x (porém, os arduinos que recebem o sinal para ativar a função de piscar led, não devem retransmitir para os demais arduinos, ou, teremos uma cascata. Ele recebe, pisca e fica quieto. Só o arduino que tiver o botão apertado é o que trasmite.) E todo o ciclo recomeça ao toque de qualquer botão de qualquer outro arduino. Todos conversarão entre si.. Isso é possível ?
    Obrigado à todos!

    1. Kra creio que da sim, é só vc criar um pacote de dados ex:
      1#5&
      onde
      1 = id do arduino
      # = separador de dados
      5 = numero de veses que pisca o led
      & = final do pacote

      então o resto é analise de dados dos arduinos, assim que vc lê um pacote inteiro no arduino e identifica qual arduino está com o id do pacote é que vai executa as piscadas e dai incrementa o id e retransmite o pacote.

    2. Olá Godoy(tem parentesco com o juiz famoso?) ,
      Cara, possível é, simples não!
      Vai dar um certo trabalho

      Pelo que entendi é assim:

      1- são 10 arduinos com 1 nrf24l0 em cada um.
      2- Todos deverão estar configurados como RECEPTORES.
      3- Aquele que você aperta o botão, muda de receptor para TRANSMISSOR e transmite um codigo.
      4-Como todos os outros estão como receptores aguardando, eles recebem o codigo e fazem o que você quer, ou seja, piscar leds.
      5- Quando você solta o botão, o ponto volta se tornar um recptor e como não tem ninguem transmitindo, tudo fica parado.
      6- Ai você aperta o botão de outro, sendo que todos tem a mesma programação, e ai ele sai de receptor e vira transmissor, e acontece o que rolou anteriormente.

      Bem, é assim que eu faria, dá um bom trabalho, mas é perfeitamente possível.
      Uma dica, estude o exemplo que vem com a biblioteca chamado PINGPAIR, pois nele ensima como um mesmo modulo passar de recptor para transmissor e vice versa.

  42. Boa noite , preciso enviar um comando para um relé para acionar um sensor LDR em um comodo atráves de um app do celular android, não quero passar fio até este comodo , com este módulo é possível?

    1. Boa noite Adriano,

      Você faria a alteração via rede wifi comum, correto ? Nesse caso, esse modulo não seria indicado, pois ele possui um outro tipo de protocolo.

      Talvez um módulo wifi que suporte redes 802.11 seja mais indicado, ou até um módulo bluetooth.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  43. Olá, tenho uma dúvida quanto a estes módulos, estou em um projeto em que o que eu preciso não é nem tanto a informação transmitida entre os dois módulos e sim a intensidade do sinal que sai do módulo 1 e o quanto ele se atenua ao chegar no módulo 2, ou seja, a intensidade que chega no módulo 2, como faço isso?

  44. Ola preciso fazer uma automação de apontamento de produção por código de barras de 5 maquinas, pensei em fazer da seguinte forma:
    um arduino uno em cada maquina com leitor de código de barras e um transmissor rf, no total de 5 arduinos, 5 leitores, e 5 transmissores, e um arduino mega com 5 receptores, um pra cada transmissor correspondente em cada maquina, e também com 5 transmissores para enviar a resposta da leitura(se ok ou não) do código de barras a mais 5 receptores em cada arduino uno.
    o mega estaria conectado em um pc e enviando as leituras a algum software.

    a distancia entre uma maquina e outra eh de uns 10 metros mais ou menos.

    sou novato, sei que tem como fazer, me falaram sobre transceptor, estou pesquisando, alguém teria alguma dica, uma ajuda.

    Desde já agradeço.

  45. Boa noite Filipe, sou iniciante podeira me ajudar ?
    Meu projeto Eu pretendo controlar 2 Servos usando os NRF24l01 com potenciômetro, e estou tendo dificuldades em desenvolver o código para controlar os servos no transmissor e no receptor.
    Fico no aguardo e Parabéns pelos posts !!!!!!!!!!

  46. Gostaria de um exemplo para enviar dados de um DHT22 , temp e umid para outro arduino com display 16 x2
    e 2 modulos nrf24l01
    Obrigado a todos…

  47. O meu teste dá apenas: “Failed, response timed out.” O que ocorreu?

    1. Boa tarde Leandro,

      Onde esse erro aparece ?

      Adilson – Equipe FILIPEFLOP

      1. Quando aperto T para transmitir.

        LEANDRO JOSE EVILASIO CAMPOS
  48. Como posso fazer para escrever uma mensagem em um display(OLED) usando o módulo NRF24l01?
    uma mensagem simples mesmo tipo(“OLA MUNDO”)

  49. Se alguem poder me ajudar eu agradeço

  50. Ola,
    Estou com problemas na utilização desse módulo, ele hora funciona, hora não funciona. Estou montando um sistema de automação residencial e gostaria de usar os módulos para comunicar uma central extensores, mas não estou conseguindo uma transmissão de dados decente para dar continuidade no projeto, porém estou tendo perda de pacotes a uma distância de 5 metros, e hoje fiz alguns testes e nada mais funciona. Estou desconfiado que meus módulos estão com problemas, mas gostaria de alguma sugestão, para conseguir entender o que estou fazendo de errado.
    Desde ja agradeço.

    1. Boa tarde Daniel,

      Para testar o módulo, tente uma ligação básica, como neste post: http://www.arduinoecia.com.br/2015/02/comunicacao-wireless-arduino-nrf24l01.html

      Abraço

      Adilson – Equipe FILIPEFLOP

    2. Coloque um capacitor entre o vcc e o gnd do modulo, normalmente coloca-se 100uf/6v, mas vc pode ir testando para mais ou para menos até que ache um que não dê mais perdas de pacotes, isso numa distancia boa entres os dois e ai depois que vc conseguir resolver a perda de pacotes ai vc testa as distancias. blz caso vc consiga mande um feedback e se puder compartilhe por email seu projeto, pois também estava fazendo um, mas por causa da falta de tempo acabei parando.

  51. como faço uma comunicação bidirecional com o NRF24L01 de uma maneira mais simples?

  52. o transceptor pode fazer comunicação entre vários ou só em pares? e o mesmo pode fazer comunicação com o módulo Rf 433mhz?

    1. Bom dia Leonardo,

      Você pode fazer a comunicação entre vários módulos. Quanto ao RF433, a comunicação não é possível, pois trabalham em frequências diferentes.

      Abraço

      Adilson – Equipe FILIPEFLOP

  53. Existem a disposição uns módulos com antena, alguém já tentou ou pensou em adaptar uma antena para esses módulos sem antena?

    1. Fabio, os modulos com antena sáo os NRF24L01+PA+LNA elem são 10x mais poderosos que esses do topico, ou seja, segundo o fabricante eles atingem 1.000m de distancia, enquanto essa versão normal atinje apenas 100m no maximo e em campo aberto.
      Porem, para trabalhar com eles não é tão simples como trabalhar com esse aqui, você vai ter que entender um pouco mais de programação, vai ter que lidar com o controle de potencia, vai ter que utilizar capacitores complementares, etc. etc. etc.
      Na verdade existem tambem alem desse e da versão com antena, as versões SMD, eles são minusculos e tem potenciais iguais suas versões DIP.

      1. Olá Weider, vejo que tem uma boa experiência no assunto e gostaria de fazer algumas perguntas. Tem algum email para que possamos conversar?

  54. Boa tarde, na linha 30 do código temos, “RF24 radio(9,10);”.
    Essa linha precisa ser alterada ou não, pois estamos utilizando os pinos digitais 7 e 8, e o 9 e 10 não.

    Obrigado!

  55. Olá não pude deixar de notar que o nome do dispositivo possui “Wireless”, já que o dispositivo possui esse nome ele possui alguma alusão ao protocolo 802.11ac? Ou seja, posso atribuir um endereço IP no dispositivo para conecta-lo em uma rede WiFi?

    Rafael dos Santos Gomes
    1. Boa tarde Rafael,

      Não, ele usa um outro protocolo para comunicação, você não vai conseguir ligá-lo na rede wifi 802.11.

      Abraço.

      Adilson – Equipe FILIPEFLOP

  56. Olá queria controlar 5 servos com arduino uno e um modulo bluetooth vcs podem me ajudar?
    Comprei o meu arduino na Flipeflop a pouco tempo

  57. Boa tarde. Tenho uma questão que espero que me saibam responder, tenho uma placa STMF4 com processador ARM a qual está ligada ao módulo ESP8266 que envia dados para o router (este lê o SSID e a Pass), de seguida utilizo o software API que lê o link (vindo do router) e leva os dados a uma base de dados (que é uma folha do google). A minha questão é, existe algum módulo mais eficiente que me faça retirar o API? Ou seja, será possível fazer: placa STMF4 – Módulo – router – base de dados? eliminando assim o software API?

  58. Pessoal alguém pode me dar uma dica?
    Eu sou muito novato com Arduino, mas gostaria de fazer um projeto de automação residencial o mais “wireless” possível.
    Mas vou usar um exemplo de aplicação para saber se é possível: imagine que eu tenho um arduino em um comodo e um dispositivo qualquer (lampada, tomada, etc) conectado a um shield de Rele em outro comodo, e quero ligar esse modulo usando um transmissor RF, por exemplo um NRF24L01. Até ai ok. é possível. Mas queria de alguma forma fazer esse receptor funcionar sem ter que usar um outro arduino. É possivel?
    Porque todos exemplos que vi na internet utilizam um outro Arduíno para fazer isso. Então eu teria que comprar um arduino para cada ponto de controle sem fio q eu queira colocar?
    Queria algo assim: 1 transmissor q varia fraquencia conforme programado, e cada respectivo receptor interage com apenas 1 arduino na central.
    Existe forma de fazer isso?

    Muito obrigado.
    Att

    1. Ola… apenas o shield de rele não controlaria o NRF24l01, ele precisa de um micro controlador(Arduino,pic,avr etc) para isso.

      1. Olá Ailton, obrigado pela resposta.
        Em minhas últimas pesquisas na internet encontrei um site bem interessante com uma biblioteca própria para os Shields e Sketches dos projetos de sensores remotos em rede RF. Vale a pena conhecer: http://www.mysensors.org/

        Abs!

        1. Obrigado.. estou a 1mes tentando fazer meus modulos se comunicarem e nada estou usando um Atmega38P(basicamente um Arduino uno ), uma solucao para o preço do arduino (não que seja tao caro)… Acho que meus modulos (Da china) estao com problemas.

  59. Pessoal estou com um problema e muitas dúvidas.Tenho um projeto de automação residencial no qual tenho a seguinte estrutura:
    1 Arduino MEGA 2560 como central de controle. Conectada a ele um Shield de ethernet + LCD + nRF24L01.
    1 ou mais (n) Garaginos que comprei para cada ponto que quero controlar remotamente. Conectado a ele 1 módulo nRF24L01 + 1 ou mais sensores/reles, para controlar o que for necessário.
    O meu problema: no arduino MEGA onde tem o shield ethernet pelo que pesquisei, já muda a maneira como os pinos devem ser ligados tanto para o nRF24L01 quanto para o LCD pois o shield ethernet causava interferência no LCD e no caso do modulo RF ele utiliza a porta SPI nativa do arduino, impedindo a utilização dessa porta por outros modulos.
    Está difícil de encontrar alternativas na internet para fazer todas essas conexões. Algumas alternativas que minhas pesquisas indicaram: conectar o LCD utilizando um módulo Serial que reduziria a utilização de pinos. E também utilizar um módulo serial específico para o nRF24L01. Também achei um material que fala sobre conexão desse modulo RF utilizando SPI por software.
    Mas juntar todas essas informações e fazer funcionar é outra história.. rs
    Estou com dúvidas de qual biblioteca utilizar, como fazer o ajuste dos pinos que terei que mudar, como dizer isso a biblioteca… em fim.
    Alguém teria a bondade de me dar uma orientação? Se puder pode até ser pelo skype. Pois assim fica mais fácil explicar e mostrar o projeto no detalhe.

    Desde já agradeço a ajuda.
    Abs!

    1. Tenta usar um módulo Xbee

  60. Ola… acho otimo os tutoriasi do site costumo sempre comprar com voces pelo suporte que encontro no site… Mas em relaçao ao NRF24l01, voces nao teriam um exemplo mais simples apenas para enviar um numero e recebe-lo?
    Grato.

    1. Bom tarde Ailson,

      Por enquanto temos apenas esse exemplo, mas tente este artigo, creio que tenha o que você precisa: http://www.arduinoecia.com.br/2015/02/comunicacao-wireless-arduino-nrf24l01.html

      Abraço!

      Adilson – Equipe FILIPEFLOP

  61. Gostaria de um dica pra fazer o seguinte:

    Um arduino recebendo informações de outros dois arduinose, ou seja 1 receptor e 2 transmissor. Alguma dica de como?

    1. Olá Natan,

      Os nrf24l01 são uma forma fantástica e barata de comunicação sem fio, para você avançar no estudo deles a melhor forma disparado é estudar os exemplos que vem junto com as bibliotecas e procurar entender o porque de cada linha.
      No momento as melhores bibliotecas para os NRF24L01 são as bibliotecas do TMRH20, a principal é a RF24, mas tem outras como a R424NETWORK e varias outras, nenhuma é melhor que a outra, cada uma tem apenas um foco diferente.
      Porem, se o que você deseja é algo pronto, tá aqui o exemplo exatamente do que você quer: http://futebol-uff.blogspot.com.br/2013/05/exp-06-quatro-nrf14l01-com-rf24network.html?view=sidebar

  62. Estou tentando fazer uma automação residencial com 2 modulos NRF24LO1 e dois arduinos uno,
    mas falta resolver só uma coisa.
    No Emissor tenho 1 Botâo e gostaria que esse botão ao pressionar uma vez liga o led do Receptor ao ser pressionado novamente desliga o led.
    Poderia me ajudar?

    1. Cláudio, use uma variavel auxiliar em que vc altere o seu valor assim q uma operacao com o led ocorrer…quando ligar o led, sete o valor desta variavel para 1, por exemplo. Na proxima vez em que pressionar o botao, o led apagará se o botao for pressionado e se o valor dessa variavel for 1. Como o valor a condicao será verdadeira, o led desligará. Ao desligar o led, sete a variável para 0 novamente, assim, a condicao para ligar o led novamente é pressionar o botao e ter o valor desta variavel =0…fiz algo semelhante usando a porta serial:

      //Liga e desliga um led no pino 13 quando o caractere “a” é recebido pela porta serial.

      int lastser=0;
      char ser;
      void setup() {
      Serial.begin(9600);
      pinMode(13, OUTPUT);

      }

      void loop() {
      ser = Serial.read();

      if((ser == ‘a’)&&(lastser==0)){
      digitalWrite(13, HIGH);
      lastser=1;
      ser=’b’; //altera valor da variavel que o proximo if nao seja verdade
      }
      if((ser == ‘a’)&&(lastser==1)){
      digitalWrite(13, LOW);
      lastser=0;
      ser=’b’;

      }
      }

      Valeu.

  63. Existe um modelo do Modulo Wireless Arduino Nrf24l01 Pa Lna Com Antena, no site de comprar do mesmo diz que a transmissão chega ate 1000m, gostaria de saber se e verdade ou não? se alguém já usou, e a mesma coisa desse Nrf24l01 do post ?

    1. Sim Arthur é verdade, porem, para alcançar os 1.000m ele precisa de algumas coisas, como visada direta, ou seja, não pode ter absolutamente nada entre o emissor e o receptor, a segunda coisa necessária é uma fonte de alimentação que entregue corrente suficiente e por ultimo, nos testes que fiz, existem posições na colocação da antena que faz eles alcançar maiores distancias.

  64. Esse modulo precisa de endereço de mac?

    1. Bom dia Alexandre,

      Sim, ele precisa de um endereço para se identificar na rede, nesse post você encontra mais informações: http://www.openbeacon.org/NRF24L01

      Abraço

      Adilson – Equipe FILIPEFLOP

      1. Link quebrado !

  65. Se as propriedades do modulo aparecer diferente da postagem, significa que à algo errado ? cheguei a alimentar os modulos com 5v sem querer ….. mais tirei rápido, pode ter queimado mesmo assim ?

    1. Boa tarde João,

      Na postagem está especificado que a tensão de alimentação vai de 1,9 à 3,6 volts, mesmo assim alguns módulos são tolerantes à variação de tensão por alguns segundos.

      Abraço

      Adilson – Equipe FILIPEFLOP

  66. Gostaria de enviar mais de dado, tipo enviar o valor de dois sensores , poderia ajudar, com explicação ou algum exemplo ?

    1. Boa tarde Gustavo,

      Dê uma olhada neste post, por favor, creio que tem o que você precisa: http://www.arduinoecia.com.br/2015/02/comunicacao-wireless-arduino-nrf24l01.html

      Abraço

      Adilson – Equipe FILIPEFLOP

      1. Bia noite, gostaria de uma ideia para eu montar um controle usando o nfr24l01 estou montando um carrinho controlado pelo nrf e estou com essa dúvida!

    2. Olá eu faço o envio de dados de dois sensores, para isso eu apenas envio o valor de um deles negativo assim do lado do receptor se o valor for menor q zero pertence a um determinado sensor

  67. Ola, estou motando um projeto para transformar um controle com fio em wireless, porem para comunicação, ele utiliza 2 portas seriais, com dois módulos nrf24l01 e dois arduinos eu conseguirira fazer isso ?

    Exemplo: se eu cortar um cabo de um controle de videogame, conectar cada fio no arduino, eu conseguiria transmitir os dados para o outro arduino ? Lembrando que a transmissão tbm ocorrerá no sentido contrário.

  68. Olá Adilson,

    Irei trabalhar com sd-card e o NRF24l01 no spi, logo precisarei utilizar o pino CSN. Só que estou com uma dúvida: A tensão de saída no pino 7 em nível alto no arduino é 5V? Se sim isto danificaria meu módulo NRF?

    Alisson Pereira dos Santos
    1. O ideal é você usar um conversor de nível lógico. O conversor de nível lógico é um pequeno dispositivo que baixa o nível de 5V para 3,3V ou aumenta o nível de 3,3V a 5V, este conversor de nível também funciona para dispositivos 2,8V e 1,8V.

  69. Olá, ótimo artigo e está funcionando perfeitamente aqui, só gostaria de saber uma coisa, eu consegui fazer o transmissor enviar um dado alterando o valor de ‘dados[0]’ para ‘dados[0]=50’, e o receptor me mostra esse valor, mas quando eu coloco um valor com vírgula, o receptor só mostra o inteiro, por exemplo, se eu colocar ‘dados[0]=50.4’ o receptor me mostra apenas 50, como eu faço para adquirir o valor depois da vírgula?

    Obrigado.

    1. talvez seria possivel se você, por exemplo, na sua programação, multiplicar o valor por 10 ( ex.: 50.4 * 10 = 504 ) enviar o valor inteiro, e na sua recepção dividir novamente o valor ( 504 / 10 = 50.4 ) para obter o numero com a parte decimal. Só um chute, também estou aprendendo.

  70. Como seria sua comunicação com um controle de rádio frequência ?

  71. hello alison, let me drop an inquire, may be i am wrong but i cant find info about it, what i need is to connect a nrf24l01 to a 74hc595 (via SPI) to light 8 leds (through the shift register with latch), my request help is: if it is posible to do without a arduino or another microcontroler, independent of the transmitter part. i will apreciate very much your opinion, thank you in advance. karl

    pd: acho que o ingles nao e um problema pra voçe, acaso fosse re escrevo em brasileiro : )

  72. Boa tarde,

    É possível fazer a leitura do nível de sinal de recepção do NRF?

  73. Boa tarde, sou novo na programação de arduino e pretendo acender um led através da serial do arduino uno com 2 transceivers NRF24L01+ , no entanto não estou a conseguir, apenas consigo na serial quando pressiona a tecla 1 do meu pc a dizer acende LED, mas não acende do lado do receptor os códigos são os seguintes :
    EMISSOR
    // Programa : NRF24L01 Emissor

    #include
    #include
    #include
    #include

    // Armazena caractere digitado na serial
    char valor[1];

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

    // Inicializa o NRF24L01 nos pinos 9 (CE) e 10 (CS) do Arduino Uno
    RF24 radio(9, 10);

    // Define o endereco para comunicacao entre os modulos
    const uint64_t pipe = 0xE13CBAF433LL;

    void setup()
    {
    // Inicializa a serial
    Serial.begin(57600);
    Serial.println(“Digite 1 e pressione ENVIAR…”);

    // Inicializa a comunicacao do NRF24L01
    radio.begin();
    // Entra em modo de transmissao
    radio.openWritingPipe(pipe);
    }

    void loop()
    {
    // Le o caractere digitado na serial
    if (Serial.available() > 0)
    {
    valor[0] = Serial.read();
    }

    // Envia 1 via radio caso seja digitado o valor 1
    if (valor[0] == ‘1’)
    {
    Serial.println(“Enviado : 1 – Acende Led”);
    dados[0] = 1;
    radio.write(dados, 1);
    delay(1000);
    valor[0] = 0;
    }

    }

    RECEPTOR

    // Programa : NRF24L01 Receptor
    #include
    #include
    #include
    #include

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

    // Inicializa o NRF24L01 nos pinos 9 (CE) e 10 (CS) do Arduino Uno
    RF24 radio(9, 10);

    // Define o endereco para comunicacao entre os modulos
    const uint64_t pipe = 0xE13CBAF433LL;

    // Define o pino do led
    int LED1 = 8;

    void setup()
    {
    // Define o pino do led como saida
    pinMode(LED1, OUTPUT);
    // Inicializa a serial
    Serial.begin(57600);
    // Inicializa a comunicacao do NRF24L01
    radio.begin();
    // Entra em modo de recepcao
    radio.openReadingPipe(1, pipe);
    radio.startListening();
    // Mensagem inicial
    Serial.println(“Aguardando dados…”);
    }

    void loop()
    {
    // Verifica sinal de radio
    if (radio.available())
    {
    bool done = false;
    while (!done)
    {
    done = radio.read(recebidos, 1);
    Serial.print(“Recebido : “);
    Serial.print(recebidos[0]);

    // Se recebeu 1, acende led
    if (recebidos[0] == 1)
    {
    delay(10);
    Serial.println(” -> Acende led”);
    digitalWrite(LED1, HIGH);
    }

    else
    {
    digitalWrite(LED1, LOW);
    }

    }
    }
    }

    Agradecia uma ajuda se estou a fazer mal a programação

    cumprimentos

    1. As bibliotecas são estas
      #include
      #include
      #include
      #include

  74. Bom dia,
    Eu tenho um modulo de Wifi Nrf24l01 e um arduino Nodemcu que possui um ESP8266, estou querendo criar uma aplicacao e gostaria de saber se estes dois modulos se conversam ! Voce pode me ajudar ?

    1. Boa tarde Andre,

      Não se comunicam, pois usam protocolos de comunicação diferentes.

      Abraço!

      Adilson – Equipe FILIPEFLOP

  75. Ola. gostaria de adaptar este projeto que usa um modulo RF433mhz para este NRF24l01, alguém sabe se seria complicado adaptar o código?

    https://www.instructables.com/id/ARDUINO-WIRELESS-HOME-SECURITY-SYSTEM/

  76. Oi,Boa Noite,se eu mudar o endereço de conecção na linha ”const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };”, e por exemplo colocar const uint64_t pipes[2] = { “Radio”, “Conect” };, ira funcionar ??Obrigado!

  77. Bom dia, gostaria de saber se é possivel usar este mesmo codigo para o Módulo Wireless Nrf24l01 + Antena 1Km.
    Obrigado

    1. Boa tarde Lucas,

      Sim, é o mesmo módulo. O que muda é somente a antena, ok?

      Abraço!

      Adilson – Equipe FILIPEFLOP

  78. Boa noite,

    Caros tenho uma dúvida, o módulo NRF24L01 com antena ele pode ser usado como um repetidor de sinal wifi? Por exemplo se eu quisesse ampliar o alcance do meu roteador ele poderia ser usado para esta finalidade?

  79. quando tento compilar ou carregar este código , que voce passou ele da invalido. aparece esta mensagem: (void value not ignored as it ought to be). dar erro nesta parte da programação : done = radio.read( &got_time, sizeof(unsigned long) ); o que fazer?

    everton ferreira campos
  80. amigo esse módulo tambem transmite video ???

Trackbacks and Pingbacks

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *