Comunicação wireless com Arduino e módulo NRF24L01
Vou mostrar mais uma alternativa para comunicação wireless entre placas Arduino, o módulo wireless NRF24L01, que opera na frequência de 2.4GHz.
Esse módulo é uma opção de baixo custo para comunicação não só entre placas Arduino, mas também pode ser utilizado para comunicação entre Arduino e Raspberry, Arduino e PIC, Raspberry e Beaglebone, e várias outras combinações.
Ele utiliza o chip NRF24L01+ da Nordic (datasheet), e funciona com alimentação de 1,9 à 3.6V. Possui um regulador de tensão interno que permite que seja ligado tanto em microcontroladores com nível de sinal de 3.3 como de 5V. A velocidade máxima de comunicação é de 2Mbps, utilizando uma antena embutida. Uma outra característica do módulo é que ele pode funcionar como emissor ou como receptor, mediante alteração na programação.
Com relação à frequência de operação, apesar de operar na faixa de 2.4GHz, esse módulo não consegue se conectar às redes wireless padrão 802.11x, já que utiliza um protocolo de comunicação diferente dessas redes.
Pinagem do NRF24L01 e ligação ao Arduino
Na lateral da placa temos um conector de 10 pinos, dos quais 7 serão utilizados para conexão ao Arduino. Veja que no esquema abaixo temos os pinos Vcc e GND duplicados. Nos meus testes, eu utilizei apenas um de cada. Aparentemente não há necessidade de ligar os dois ao mesmo tempo.
Na tabela abaixo, o esquema de ligação do módulo que utiliza a interface SPI para comunicação com o microcontrolador. Vamos utilizar essa tabela para testar a comunicação entre duas placas Arduino, controlando, à partir de um Arduino Uno, um servo motor 9G e um led conectados à um Arduino Mega:
Vamos dividir esse tutorial em duas partes, apresentando o circuito e o programa para o emissor (Uno) e depois para o receptor (Mega).
Circuito NRF24L01 e Arduino Uno – Emissor
Nesse primeiro circuito, temos apenas o Arduino Uno e o módulo NRF24L01. Utilizaremos esse circuito emissor para enviar comandos ao receptor via serial monitor.
Antes de carregar o programa, baixe a biblioteca RF24 neste link. Descompacte o arquivo e coloque a pasta RF24 dentro da pasta Libraries da IDE do Arduino.
Carregue o programa abaixo no Arduino Uno. Tenha uma atenção especial com esta linha (18):
O número no final da linha (0xE13CBAF433LL), deve ser o mesmo nos dois programas, pois é este valor que indica em qual rede o módulo está operando.
// Programa : NRF24L01 Emissor - Servo motor // Autor : Arduino e Cia #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" // 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, 2 ou L 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 - Gira servo para a esquerda"); dados[0] = 1; radio.write(dados, 1); delay(100); valor[0] = 0; } // Envia 2 via radio caso seja digitado o valor 2 if (valor[0] == '2') { Serial.println("Enviado : 2 - Gira servo para a direita"); dados[0] = 2; radio.write(dados, 1); delay(100); valor[0] = 0; } // Envia 3 via radio caso seja digitado o caractere L if (valor[0] == 'L') { Serial.println("Enviado : L - Acende o led"); dados[0] = 3; radio.write(dados, 1); delay(100); valor[0] = 0; } }
Abra o serial monitor e você terá a tela abaixo, onde poderá enviar os caracteres 1, 2 ou L para o receptor:
Circuito Arduino Mega – Receptor
No Arduino Mega, vamos conectar o módulo NRF24L01 às portas 50, 51 e 52, que formam a interface SPI. O servo motor está ligado à porta digital 4 e o led à porta 5.
Carregue o seguinte programa no Arduino, que aguarda pelo sinal de rádio do módulo e, caso receba o número 1 movimenta o servo no sentido anti-horário, com o número 2 move o servo no sentido horário e para o número 3 (caractere L digitado), aciona o led.
// Programa : NRF24L01 Receptor - Servo motor // Autor : Arduino e Cia #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" #include <Servo.h> // Armazena os dados recebidos int recebidos[1]; // Inicializa o NRF24L01 nos pinos 9 (CE) e 53 (CS) do Arduino Mega RF24 radio(9,53); Servo myservo; // Define o endereco para comunicacao entre os modulos const uint64_t pipe = 0xE13CBAF433LL; // Define o pino do led int LED1 = 5; void setup() { // Servo conectado ao pino 4 myservo.attach(4); // 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, movimenta o servo para a esquerda if (recebidos[0] == 1) { delay(10); Serial.println(" -> Girando motor para a esquerda"); myservo.write(1); } // Se recebeu 2, movimenta o servo para a direita if (recebidos[0] == 2) { delay(10); Serial.println(" -> Girando motor para a direita"); myservo.write(160); } // Se recebeu 3, acende o led if (recebidos[0] == 3) { delay(10); Serial.println(" -> Acende led"); digitalWrite(LED1, HIGH); } else { digitalWrite(LED1, LOW); } delay(100); } } }
No serial monitor, podemos acompanhar o recebimento dos dados ao mesmo tempo em que o servo motor e o led são acionados:
Gostou? Confira outros posts utilizando comunicação wireless aqui mesmo no Arduino e Cia!
Olá pessoal, alguém sabe me dizer se o transceptor nrf24l01 faz a seguinte tarefa:
"Tenho dois transceptor o primeiro envia para o segundo "Mensagem 1" e logo ao receber retorna "Mensagem 2" para o primeiro transceptor" ou seja o primeiro transceptor vai estar em modo de transmissor e logo depois de enviar passar a entrar em modo de receptor.
Alguém sabe me dizer se isso é capaz ? Possui exemplos de códigos que façam isso?
Dê uma lida aqui amigo http://wiki.t-o-f.info/Arduino/Nordic#toc3
eu não entendi essa parte Serial.println(“Aguardando dados…”);
Boa tarde. Você sabe dizer qual o alcance dentro de um ambiente fechado (casa, apartamento, etc.)?
Boa noite,
Aproximadamente 10 metros.
Abraço.
Depende muito dos obstáculos
Já me deparei com distâncias maiores, pra ser exato, foram quase 100 metros entre o emissor e o receptor.
Tem como você me orientar como acender e apagar o LED no mesmo botão, segue o código:
//RECEPTOR
#include
#include "nRF24L01.h"
#include "RF24.h"
//Armazena os dados recebidos
int recebidos[1];
//Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduino
RF24 radio(9, 10);
//Define o endereco para comunicacao entre os modulos
const uint64_t pipe = 0xE24BC8F482LL;
//Define os pinos dos leds
int LED1 = 5;
int LED2 = 3;
void setup()
{
//Define os pinos dos leds como saida
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
//Inicializa a serial
Serial.begin(57600);
//Inicializa a comunicacao
radio.begin();
//Entra em modo de recepcao
radio.openReadingPipe(1, pipe);
radio.startListening();
}
void loop()
{
//Verifica se ha sinal de radio
if (radio.available())
{
bool done = false;
while (!done)
{
done = radio.read(recebidos, 1);
Serial.print("Dados recebidos : ");
Serial.println(recebidos[0]);
//Se recebeu o numero 1, acende o LED1
if (recebidos[0] == 1)
{
digitalWrite(LED1, HIGH);{
}
}
//Se recebeu o numero 2, acende o LED2
if (recebidos[0] == 2)
{
digitalWrite(LED1, LOW);
}
delay(100);
}
}
else
{
Serial.println("Aguardando dados…");
}
}
//TRANSMISSOR
#include
#include "nRF24L01.h"
#include "RF24.h"
//Armazena os dados enviados
int dados[1];
//Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduino
RF24 radio(9, 10);
//Define o endereco para comunicacao entre os modulos
const uint64_t pipe = 0xE24BC8F482LL;
//Define os pinos dos botoes
int pino_botao1 = 7;
int pino_botao2 = 2;
void setup()
{
//Define os botoes como entrada e
//ativa pull-up
pinMode(7, INPUT_PULLUP);
digitalWrite(7, HIGH);
pinMode(2, INPUT_PULLUP);
digitalWrite(2, HIGH);
//Inicializa a serial
Serial.begin(57600);
Serial.println("Pressione botao 1 ou 2 para iniciar a comunicacao…");
//Inicializa a comunicacao
radio.begin();
//Entra em modo de transmissao
radio.openWritingPipe(pipe);
}
void loop()
{
//Envia o numero 1 caso o botao1 seja pressionado
if (digitalRead(pino_botao1) == LOW)
{
Serial.println("Botao 1 pressionado !");
dados[0] = 1;
radio.write(dados, 1);
}
//Envia o numero 2 caso o botao2 seja pressionado
if (digitalRead(pino_botao2) == LOW)
{
Serial.println("Botao 2 pressionado !");
dados[0] = 2;
radio.write(dados, 1);
}
}
precisa de um alcance maior, o módulo rf 433 chega a 200 metros, eu precisava de um alcança de pelo menos 1km e área livre, alguma sugestão ?
Bom dia,
Tente um APC220: http://www.filipeflop.com/pd-6b887-modulo-radio-wireless-apc220-adaptador-usb.html
Abraço!
Boa noite alguem pode me ajudar como eu faço pra baixar a biblioteca #include "nRF24L01.h"
#include "RF24.h", grato
Boa tarde,
A biblioteca você encontra neste link: https://github.com/maniacbug/RF24
Abraço
Hi Frank!
Try this article, that I wrote for the Buildbot website: http://buildbot.com.br/blog/comunicacao-wireless-com-o-modulo-nrf24l01/
Best regards !
GENTE ALGUEM PODE ME AJUDA. A PROGRAMAÇÃO ESTA OK. POREM NÃO FUNCIONA O RECEBITOR ELE ESTA LIGDO EM UM MEGA. E O EMISSOR ESTA EM UM NANO.. ALGUEM SABE ME DIZER COMO ARRUMAR.
ESTA FUNCIONANDO TUDO DE ACORDO COM O POST. MAS INFELIZMENTE NADA FUNCIONA NÃO ENVIA OU NÃO ESTA RECEBENDO
O que está no nano está sendo alimentado pela saída vcc 3.3v? Se tiver uma alimentação externa procure por um capacitor de 10uf no vcc do NRF para ver se funciona. A pinagem varia muito de Arduino para Arduino, procure em uma fonte confiável a pinagem correta do seu módulo…
Amigos podem me ajudar estou usando o mesmo exemplo do post, só que preciso enviar o valor de um potenciômetro de 0 a 1024,
O transmissor envia o valor 1024 mas no receptor aparece outro valor aleatório, gostaria de saber se tem alguma configuração que tenho que mexer para pode receber números grandes (tipo maiores que 1000).
Boa tarde,
Você está declarando o valor do potenciômetro como int (inteiro) ?
Abraço!
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!
Vou deixar ele conectado a um arduino nano, que por sua vez estara conectado ao shield Ethernet via RX, TX, livrando assim o meu Ethernet shield, seria assim: Mando ima string pela net que e recebido pelo shield que enviara via serial Para o nano que contem o transmissor que enviara Para outros receptores.
Eu tentei o código e funcionou, porém só funciona o L várias vezes. Alguém sabe informar como se faz para quando o L é enviado o led acenda logo????
George Harinson, da uma olhada no comentário que enviei.
George, vc fez alguma alteração no codigo pra funcionar? Estou tentando aki acender apenas um led, mas o receptor nao recebe nada. Já verifiquei os módulos pelo exemplo da biblioteca Getting Started e eles estão funcionando normalmente. Alguém pode me ajudar??
Código TRANSMISSOR:
// Programa : NRF24L01 Emissor – Servo motor
// Autor : Arduino e Cia
#include
#include "nRF24L01.h"
#include "RF24.h"
// 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 = 0xE14BC8F482LL;
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(100);
valor[0] = 0;
}
}
}
Código RECEPTOR:
//Programa : Teste NRF24L01 – Receptor – Led
//Autor : Adilson Thomsen
#include
#include "nRF24L01.h"
#include "RF24.h"
//Armazena os dados recebidos
int recebidos[1];
//Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduino
RF24 radio(9,10);
//Define o endereco para comunicacao entre os modulos
const uint64_t pipe = 0xE14BC8F482LL;
//Define os pinos dos leds
int LED1 = 3;
void setup()
{
//Define os pinos dos leds como saida
pinMode(LED1, OUTPUT);
//pinMode(LED2, OUTPUT);
//Inicializa a serial
Serial.begin(57600);
//Inicializa a comunicacao
radio.begin();
//Entra em modo de recepcao
radio.openReadingPipe(1,pipe);
radio.startListening();
Serial.println("Aguardando dados…");
}
void loop()
{
//Verifica se ha sinal de radio
if (radio.available())
{
bool done = false;
while (!done)
{
done = radio.read(recebidos, 1);
Serial.print("Dados recebidos : ");
Serial.print(recebidos[0]);
//Se recebeu o numero 1, acende o LED1
if (recebidos[0] == 1)
{
delay(10);
Serial.println("ACENDE LED");
digitalWrite(LED1, HIGH);
}
}
}
}
Olá, gostaria de mover este servo com um potenciômetro alguém tem conhecimento de como ficaria o codigo?
Obrigado.
cheguei a alimentar os modulos com 5v sem querer ….. mais tirei rápido, pode ter queimado mesmo assim ? como saber se funcionam ainda ?
Oi Natanael,
Se foi por pouco tempo, creio que não, esses módulos tem uma certa tolerância à variações de tensão.
Abraço!
Boa tarde!
Gostaria de controlar uma plataforma com duas rodas. Ao invés de funcionar como um controle remoto propriamente dito, aperto um botão no Master e no Slave vejo a resposta, gostaria que fosse armazenado as coordenadas de direção e após concluída a lógica, apertando um botão as informações fossem enviadas, armazenadas no Slave e executadas na mesma sequência setada no Master.
É possível fazer isso com esse módulo?
Oi Dimitry,
Você vai ter que usar algum microcontrolador para armazenar as informações que você enviar pelo módulo. O módulo somente cuida da parte de comunicação, sem armazenar informações.
Abraço!
No caso o próprio Arduino faz esse trabalho?
Oi Dimitry,
O Arduino vai digamos fazer toda a parte, digamos, "pensante" do programa, com a lógica e o armazenamento de dados. O módulo NRF24L01 vai somente enviar os dados de um lado para o outro. Mas a princípio você terá que usar os dois, para ter uma solução completa.
Abraço!
Entendi! Por favor, veja o video abaixo que é o que estou querendo reproduzir e me diga se da pra fazer com esse módulo. Se for possível, quanto você cobraria para fazer apenas a programação? Estou desenvolvendo um projeto piloto na escola onde meu filho estuda para ensinar ciências da computação para crianças de 3 a 10 anos baseado no programa do Code.org, mas não tenho tanto conhecimento assim de programação para desenvolver algo do tipo. O projeto Cubetto e Open Source e eles usaram dois módulos Xbee para fazer a comunicação, mas esses módulos são muito caros para um projeto social.
https://www.youtube.com/watch?v=xyHBRq504ZU&nohtml5=False
Obrigado por sua atenção!
Oi Dimitry,
Muito interessante. Por favor entre em contato utilizando o formulário de contato no lado direito da página, assim combinamos por email.
Abraço!
Ola…Alguém sabe se é possível ouvir dois ou mais rádios(transmissores) ao mesmo tempo, preciso receber dados de 6 sensores mas não quero ficar alternando entre ouvir um e depois o outro, quero que se um transmitir ele pega os dados e depois volta a aguardar. Alguém sabe se é possível?
se eu configurar 1 emissor e 3 receptores por exemplo..
como devo proceder para enviar comandos distintos para cada placa??
grato!
Olá,
Programe o Arduino emissor para enviar um código de controle antes, por exemplo R1 (receptor 1), R2 (receptor 2) e R3 (receptor 3), e no receptor, ele só será acionado quando receber o respectivo código.
Abraço!
alguém sabe alguma placa de comunicação que faz com que eu mando um comando pra ela há 20km de distancia via internet e ela faz ligar um motor ou acender uma lampada?
Oi Guilherme,
O que acha de usar um GSM shield ?
http://www.arduinoecia.com.br/2015/11/acessar-internet-arduino-gsm-shield-sim-900.html
Abraço!
Olá pessoal… estava pesquisando sobre o nrf24l01 e vi que com ele é possível transmitir também audio (fone de ouvido)… nunca montei nada com arduíno… comprei várias coisas e estou aguardando a chegada… mas para não prolongar o assunto, alguém poderia me dar uma pista de como montar um sistema com essa aplicação? utilizarei 2 arduíno, 2 nrf24l01 (1 como receptor e outro como transmissor), 1 display em cada um deles…. enfim… a parte de amplificação de áudio depois é tranquila… mas acredito que terei que transformar o áudio no transmissor para algo digital de no receptor converte-lo para audio novamente… é isso mesmo? Caso alguém esteja com paciencia para um iniciante e quiser detalhar um pouco mais, gostaria de ter a lista toda de modulos e se possível configurações iniciais
Oi Antonio,
Encontrei uma biblioteca para o Arduino que trabalha com o envio de áudio em tempo real usando o NRF24L01, veja se te ajuda: http://tmrh20.github.io/RF24Audio/
Abraço!
Amigo, gostaria primeiramente parabenizar pelo post!
Estou tendo problema na compilação do codigo do receptor, esta dando erro na linha done = radio.read(recebidos, 1); "void value not ignored as it ought to be" , poderia me ajudar?
Muito bom…. Obrigado!!! Nesse final de semana brincarem com ele… tendo sucesso posto aqui!
Olá você teve algum sucesso estou tentando aqui sem sucesso.
ola, gostaria de saber se é possível mandar áudio pelo Arduíno com esse modulo? eu sei um que tem alcance de até 1 km, eu gostaria de fazer um walkie talkie
olá gostaria de saber pq esse código nunca compila sempre dá erro na linha que tem: done = radio.read(recebidos, 1);
juntamente com a mensagem "void value not ignored as it ought to be"
Olá!
Uma ajuda, poderiam indicar se estou no caminho certo?
Gostaria de automatizar a Sala de Casa:
– Central Arduino controlando tudo (Módulo ESP8266, Transceiver RF, Arduino Nano)
— 4 tomadas da sala (um único nó, com 4 Reles em série + Transceiver RF + Arduino Nano)
— Controle remoto TV, DVD… etc… (um único nó, com IR, Transceiver RF + Arduino Nano)
— Lampadas da Sala (três nós, cada qual com 2 reles em série + Transceiver RF + Arduino Nano)
Os interruptores das lâmpadas seriam trocados todos por pushbuttons, assim, por exemplo, quando sair de casa posso apertar um único pushbutton perto da porta e ele indica para a central desligar a sala toda (desliga todas as tomadas, e todas as lampadas).
A Central receberia um ESP8266 pois assim posso controlar pelo celular através de WebServer/HTML.
Estou no caminho certo? O que acham?
Parabéns pelo site e pelo seu conteúdo!
Esse circuito só funciona com o mega? Tentei fazer com dois UNOS mas não está dando certo.
Oi Olliver,
Funciona com dois Uno´s sim… Minha dica: use fonte externa para alimentação. Esse módulo é bem "chato" no consumo de energia.
Abraço!
Olá, parabéns pelo post,
estou tentando com dois nanos e não está rolando, na compilação aparece a mesma msg de erro do companheiro Henrique da silva que comentou dia 24 de agosto.
( done = radio.read(recebidos, 1);
exit status 1
void value not ignored as it ought to be)
o que preciso estudar pra solucionar?
Boa noite,
Eu tive alguns problemas sérios com esse módulo, por causa da alimentação dele, que puxa muita corrente.
Você consegue testar usando uma fonte externa ?
Abraço!
A princípio o problema está na placa, por algum motivo ela não aceita o sketch (as duas placas são Arduino mini). A solução que compilou foi colocar o conteúdo atual do loop em uma função que retorna a leitura e chamar ela (função) no loop, farei testes com a compilação e SE der certo aviso. obrigado.
como controlar 4 servos com esse modulo e 4 eixos analogicos?
precisa de um alcance maior, o módulo rf 433 chega a 200 metros, eu precisava de um alcança de pelo menos 10km e área livre, alguma sugestão ?
Boa noite,
Dê uma olhada em módulos Xbee. Alguns deles tem alcance bem grande.
Abraço!
Adilson
Boa noite, parabéns e muito obrigado por compartilhar essas informações que tanto nos ajudam. Vendo o post, me surgiu a seguinte dúvida: Se eu quiser que os módulos enviem e recebam, ou seja, troquem dados entre si, como fica a configuração? percebi que vcs fizeram um mestre e um escravo, mas e se eu quiser pressionar um led no Uc ligado ao modulo 1 e acender um led no modulo 2 e pressionar o botão no modulo 2 e acender um led no modulo 1?
Grato desde já.
Boa noite,
Eu não tenho nenhuma programação pronta pra isso, mas veja que no código você pode alterar o modo de operação do módulo para emissor ou receptor com os comandos abaixo:
// Entra em modo de transmissao
radio.openWritingPipe(pipe);
// Entra em modo de recepcao
radio.openReadingPipe(1,pipe);
radio.startListening();
Abraço!
Adilson
Primeiramente parabéns pelo post
Estou com um dúvida numa programação que estou desenvolvendo:
Estou usando o projeto modificado para enviar os números 1, 2 e 3 (através de botões) e o receptor armazenar os valores numa matriz e ficar contando até um determinado limite, porém, quando aperto o botão a matriz acaba lendo vários números em seguida, por exemplo: 1 – 1 – 1 – 1 (ao apertar o botão 1). Gostaria de uma dica de como fazer com que o receptor leia apenas um número de cada vez. Grato.
Flávio
Nao, sei se é o mais correto, mas você precisa colocar um delay depois da função que recebe dados, pelo menos uns 250ms, para que ele não pegue varias recepções na sequencia.
Quantos nrf24l01 posso conectar no mesmo endereço?
Boa tarde,
Não sei te dizer exatamente qual o limite, mas pelo que eu vi você tem que implementar alguma solução de controle via software para verificar com qual módulo o NRF24L01 "principal" está se comunicando.
Abraço!
Adilson
ola pessoal,estou com uma duvida,como faço para enviar um caractere especifico de um modulo nfr24l01,exemplo,mandar uma 'A'depois 'a' e depois 'B'e assim por diante.
pois toda vez que me comunico não consigo fazer este tipo de comunicação,espero que alguem me ajude.
Partindo do código da linha 18 , caso eu altere ele posso ter vários conjuntos (rádio +receptor) trabalhando no mesmo ambiente, sem que um interfira no outro
Oi Welington,
Sim, modificando o programa é perfeitamente possível fazer isso. Por favor dê uma olhada neste post aqui também. Pode te dar algumas ideias: https://www.arduinoecia.com.br/chama-garcom-arduino-modulo-rf-433mhz/
Abraço!
Adilson