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

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

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 :

/*
Copyright (C) 2011 J. Coliz <maniacbug@ymail.com>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
version 2 as published by the Free Software Foundation.
*/

/**
* Example for Getting Started with nRF24L01+ radios.
*
* This is an example of how to use the RF24 class. Write this sketch to two
* different nodes. Put one of the nodes into 'transmit' mode by connecting
* with the serial monitor and sending a 'T'. The ping node sends the current
* time to the pong node, which responds by sending the value back. The ping
* node can then see how long the whole cycle took.
*/

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

//
// Hardware configuration
//

// Set up nRF24L01 radio on SPI bus plus pins 9 & 10

RF24 radio(9,10);

//
// Topology
//

// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

//
// Role management
//
// Set up role. This sketch uses the same software for all the nodes
// in this system. Doing so greatly simplifies testing.
//

// The various roles supported by this sketch
typedef enum { role_ping_out = 1, role_pong_back } role_e;

// The debug-friendly names of those roles
const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"};

// The role of the current running sketch
role_e role = role_pong_back;

void setup(void)
{
//
// Print preamble
//

Serial.begin(57600);
printf_begin();
printf("nrRF24/examples/GettingStarted/nr");
printf("ROLE: %snr",role_friendly_name[role]);
printf("*** PRESS 'T' to begin transmitting to the other nodenr");

//
// Setup and configure rf radio
//

radio.begin();

// optionally, increase the delay between retries & # of retries
radio.setRetries(15,15);

// optionally, reduce the payload size. seems to
// improve reliability
//radio.setPayloadSize(8);

//
// Open pipes to other nodes for communication
//

// This simple sketch opens two pipes for these two nodes to communicate
// back and forth.
// Open 'our' pipe for writing
// Open the 'other' pipe for reading, in position #1

//(we can have up to 5 pipes open for reading)

//if ( role == role_ping_out )
{
//radio.openWritingPipe(pipes[0]);
radio.openReadingPipe(1,pipes[1]);
}
//else
{
//radio.openWritingPipe(pipes[1]);
//radio.openReadingPipe(1,pipes[0]);
}

//
// Start listening
//

radio.startListening();

//
// Dump the configuration of the rf unit for debugging
//

radio.printDetails();
}

void loop(void)
{
//
// Ping out role. Repeatedly send the current time
//

if (role == role_ping_out)
{
// First, stop listening so we can talk.
radio.stopListening();

// Take the time, and send it. This will block until complete
unsigned long time = millis();
printf("Now sending %lu...",time);
bool ok = radio.write( &time, sizeof(unsigned long) );

if (ok)
printf("ok...");
else
printf("failed.nr");

// Now, continue listening
radio.startListening();

// Wait here until we get a response, or timeout (250ms)
unsigned long started_waiting_at = millis();
bool timeout = false;
while ( ! radio.available() && ! timeout )
if (millis() - started_waiting_at > 200 )
timeout = true;

// Describe the results
if ( timeout )
{
printf("Failed, response timed out.nr");
}
else
{
// Grab the response, compare, and send to debugging spew
unsigned long got_time;
radio.read( &got_time, sizeof(unsigned long) );

// Spew it
printf("Got response %lu,round-trip delay: %lunr",got_time,millis()-got_time);
}

// Try again 1s later
delay(1000);
}

//
// Pong back role. Receive each packet, dump it out, and send it back
//

if ( role == role_pong_back )
{
// if there is data ready
if ( radio.available() )
{
// Dump the payloads until we've gotten everything
unsigned long got_time;
bool done = false;
while (!done)
{
// Fetch the payload, and see if this was the last one.
done = radio.read( &got_time, sizeof(unsigned long) );

// Spew it
printf("Got payload %lu...",got_time);

// Delay just a little bit to let the other unit
// make the transition to receiver
delay(20);
}

// First, stop listening so we can talk
radio.stopListening();

// Send the final one back.
radio.write( &got_time, sizeof(unsigned long) );
printf("Sent response.nr");

// Now, resume listening so we catch the next packets.
radio.startListening();
}
}

//
// Change roles
//

if ( Serial.available() )
{
char c = toupper(Serial.read());
if ( c == 'T' && role == role_pong_back )
{
printf("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACKnr");

// Become the primary transmitter (ping out)
role = role_ping_out;
radio.openWritingPipe(pipes[0]);
radio.openReadingPipe(1,pipes[1]);
}
else if ( c == 'R' && role == role_ping_out )
{
printf("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACKnr");

// Become the primary receiver (pong back)
role = role_pong_back;
radio.openWritingPipe(pipes[1]);
radio.openReadingPipe(1,pipes[0]);
}
}
}
// vim:cin:ai:sts=2 sw=2 ft=cpp

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 !

31
Tutorial: Comunicação wireless com Arduino e Módulo NRF24L01
159 votos, 4.56 classificação média (91% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

156 Comentários

  1. everton ferreira campos - 19 de maio de 2017

    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?

  2. Paulo Moreira - 12 de abril de 2017

    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?

  3. Lucas da Silva - 27 de março de 2017

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

  4. Julio Cesar - 19 de março de 2017

    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!

  5. Pedro - 15 de março de 2017

    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/

  6. Andre Alan Alves - 6 de março de 2017

    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 ?

  7. Sérgio Malhão - 7 de fevereiro de 2017

    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

  8. Matheus - 15 de dezembro de 2016

    Boa tarde,

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

  9. karl - 23 de novembro de 2016

    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 : )

  10. Rebeka - 5 de setembro de 2016

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

  11. Maicon - 1 de agosto de 2016

    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.

    • Carlos Freitas - 15 de agosto de 2016

      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.

  12. Alisson Pereira dos Santos - 4 de julho de 2016

    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?

    • Rodrigo - 25 de novembro de 2016

      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.

  13. Felicio Mota - 28 de março de 2016

    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.

  14. Gustavo - 22 de março de 2016

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

  15. JOÃO - 22 de março de 2016

    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 ?

    • Adilson Thomsen - 22 de março de 2016

      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

  16. Alexandre Fernandes - 21 de março de 2016

    Esse modulo precisa de endereço de mac?

  17. Arthur - 14 de março de 2016

    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 ?

    • Weider - 7 de fevereiro de 2017

      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.

  18. Cláudio - 23 de fevereiro de 2016

    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?

    • Jonas - 14 de março de 2016

      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.

  19. Natan - 20 de fevereiro de 2016

    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?

  20. Ailton Silva - 14 de janeiro de 2016

    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.

  21. Raphael - 11 de janeiro de 2016

    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!

  22. Raphael - 21 de dezembro de 2015

    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

  23. Marta Pinto - 1 de dezembro de 2015

    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?

  24. Eduardo Amaral - 4 de novembro de 2015

    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

  25. Rafael dos Santos Gomes - 28 de outubro de 2015

    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?

  26. Bruno Aguiar - 30 de setembro de 2015

    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!

  27. Fábio Dos - 8 de setembro de 2015

    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?

    • Weider - 1 de outubro de 2015

      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.

  28. leonardo - 7 de setembro de 2015

    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?

    • FILIPEFLOP - 8 de setembro de 2015

      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

  29. Lucas Wesley - 19 de agosto de 2015

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

  30. Daniel Kock - 11 de agosto de 2015

    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.

  31. LUCAS WESLEY - 11 de agosto de 2015

    Se alguem poder me ajudar eu agradeço

  32. LUCAS WESLEY - 11 de agosto de 2015

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

  33. LEANDRO JOSE EVILASIO CAMPOS - 14 de julho de 2015

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

  34. Wladimir Donizeti - 21 de junho de 2015

    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…

  35. Fausto - 17 de junho de 2015

    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 !!!!!!!!!!

  36. Mateus Cardoso - 21 de maio de 2015

    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.

  37. Heryson Dantas - 19 de maio de 2015

    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?

  38. Adriano - 12 de maio de 2015

    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?

    • FILIPEFLOP - 22 de maio de 2015

      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

  39. Godoy - 28 de abril de 2015

    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!

    • Robson - 7 de maio de 2015

      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.

    • weider O d - 13 de maio de 2015

      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.

  40. Gustavo - 22 de abril de 2015

    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 ;)

    • Felipe Cardoso - 22 de abril de 2015

      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. Gabriel - 21 de abril de 2015

    Boa tarde,

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

    Obrigado.

  42. sidnei - 12 de abril de 2015

    qual é melhor o modulo RF433 ou MÓDULO NRF24L01

    • Weider O Duarte - 21 de abril de 2015

      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

    • FILIPEFLOP - 22 de maio de 2015

      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

  43. Flávio - 2 de abril de 2015

    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?

    • FILIPEFLOP - 11 de abril de 2015

      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

  44. Denner - 23 de março de 2015

    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 ?

    • Leonardo Baracat - 24 de maio de 2015

      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.

  45. Rodrigo - 22 de março de 2015

    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

    • FILIPEFLOP - 31 de março de 2015

      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

  46. Danilo Mingotte - 9 de março de 2015

    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 !

  47. Arthur Inacio - 27 de fevereiro de 2015

    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.

  48. Felipe Cardoso - 25 de fevereiro de 2015

    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.

    • FILIPEFLOP - 7 de março de 2015

      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

    • Weider - 8 de março de 2015

      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á.

    • D Costa - 19 de maio de 2015

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

  49. Ernany - 12 de fevereiro de 2015

    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

  50. Weider Oliveira Duarte - 1 de fevereiro de 2015

    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 ?

  51. Luís Henrique - 1 de fevereiro de 2015

    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?

    • FILIPEFLOP - 3 de fevereiro de 2015

      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

  52. Daniel Gleison - 7 de janeiro de 2015

    Bom dia,

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

    Grato.

  53. jose luiz - 17 de dezembro de 2014

    caro colegas acabei de adquirir meu primeiro kit de arduino ainda nao recebir confeço que estou ansioso,eu gostari de estreiar montando um carrinho de controle remoto tanto com modulo tx rx 433mhz ou o nrf24l01 se algum amigo possui um codigo que usa este modulo e poder me ceder pode enviar para luiztelcom@hotmail.com ficarei muito agradecido.

  54. Diego - 12 de dezembro de 2014

    Parabéns, excelente artigo.

  55. Adair Junior - 9 de dezembro de 2014

    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?

  56. Felipe Cardoso - 9 de dezembro de 2014

    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.

    • FILIPEFLOP - 10 de dezembro de 2014

      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

    • Ailton - 8 de fevereiro de 2017

      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

  57. Mário - 3 de dezembro de 2014

    Boa Tarde,

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

    Grato

  58. Monique - 5 de novembro de 2014

    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á !

  59. Monique - 5 de novembro de 2014

    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á !

  60. luan - 2 de novembro de 2014

    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!

  61. Tiago Covacic - 11 de outubro de 2014

    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?

  62. Camila Batista dos Santos - 23 de setembro de 2014

    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 ?

    • weider Oliveira - 24 de setembro de 2014

      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.

  63. Allyson - 17 de setembro de 2014

    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?

    • FILIPEFLOP - 22 de setembro de 2014

      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

  64. Marcos - 7 de setembro de 2014

    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

  65. Weider Oliveira - 2 de setembro de 2014

    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.

  66. RODRIGO - 2 de setembro de 2014

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

  67. Carlos - 24 de agosto de 2014

    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!

    • FILIPEFLOP - 3 de setembro de 2014

      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

      • Rafael - 16 de outubro de 2014

        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.

  68. Eduardo Marques Siqueira - 18 de agosto de 2014

    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.

  69. luiz felipe - 17 de agosto de 2014

    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.

    • FILIPEFLOP - 19 de agosto de 2014

      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

  70. Breno - 15 de agosto de 2014

    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?

  71. morais - 19 de julho de 2014

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

  72. Bruno - 1 de julho de 2014

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

    • VItor - 3 de setembro de 2014

      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!

  73. Edmo meireles - 24 de junho de 2014

    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!

    • FILIPEFLOP - 25 de junho de 2014

      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 http://www.filipeflop.com e confira os nossos produtos.

      Abraços

      Adilson – Equipe FILIPEFLOP

  74. Weider Oliveira Duarte - 20 de maio de 2014

    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 ?

  75. Rodrigo - 14 de maio de 2014

    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?

    • FILIPEFLOP - 15 de maio de 2014

      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

  76. Alessandro Venciguerra - 5 de maio de 2014

    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?

    • FILIPEFLOP - 6 de maio de 2014

      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

  77. Jose - 9 de abril de 2014

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

  78. Rafael Murakami - 27 de março de 2014

    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?

    • FILIPEFLOP - 31 de março de 2014

      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

  79. Luciano - 27 de março de 2014

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

  80. Flavio Andrade - 25 de março de 2014

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

Deixe uma resposta