Olá pessoal vi muito mateiral mas na pratica o meu projeto não esta funcionando.

Tenho 4 arduinos 3 Nano e 1 Uno. Com NRF24l01 LB porem ele não se comunica um com o outro !

Vou postar o código espero que me ajudem !

O TX ele parece estar funcionado normalmente, aparece dados na no serial

mas o RX não faz nada !

TX

#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>

RF24 radio(7,8);

RF24Network network(radio);

#define THIS_NODE 00

#define INTERVAL 1000
#define TIMEOUT 500

struct message_t
{
unsigned long ms;
unsigned long counter;
};

unsigned long lastTimeSent;

byte OTHER_NODE = 01;

void setup(void)
{
Serial.begin(115200);

SPI.begin();
radio.setDataRate(RF24_250KBPS);
radio.begin();
network.begin(58, THIS_NODE);
radio.printDetails();

lastTimeSent = 0;

}

void loop()
{
network.update();


unsigned long now = millis();

if ((now - lastTimeSent) >= INTERVAL)
{
message_t message = {now, 1};
RF24NetworkHeader header(OTHER_NODE);

lastTimeSent = now;

if (network.write(header, &message, sizeof(message)))
{

while (!network.available() && ((millis() - now) < TIMEOUT))
{
network.update();
}

if ((millis() - now) < TIMEOUT)
{
while (network.available())
{
RF24NetworkHeader headerReceived;
message_t receivedMessage;
network.read(headerReceived,&receivedMessage,sizeof(receivedMessage));

Serial.print("Sent: ");
Serial.print(message.ms);
Serial.print(", received: ");
Serial.print(receivedMessage.ms);
Serial.print(", from node: ");
Serial.print(headerReceived.from_node);
Serial.print(". It took: ");
Serial.println(millis()-now);
}

}
else
{
Serial.print("TIMEOUT! Node ");
Serial.println(OTHER_NODE);
}
}
else
{
Serial.print("Falha no envio!!! Node ");
Serial.println(OTHER_NODE);
}

if (OTHER_NODE == 01) OTHER_NODE = 011;
else OTHER_NODE = 01;

}

}

RX

#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>

RF24 radio(7,8);

RF24Network network(radio);

#define THIS_NODE 01

struct message_t
{
unsigned long ms;
unsigned long counter;
};

void setup(void)
{
Serial.begin(115200);

SPI.begin();
radio.setDataRate(RF24_250KBPS);
radio.begin();
network.begin(58, THIS_NODE);


}

void loop()
{
network.update();

while (network.available())
{
message_t receivedMessage;
RF24NetworkHeader header;

network.read(header, &receivedMessage, sizeof(receivedMessage));

Serial.print("Recebido ms: ");
Serial.print(receivedMessage.ms);
Serial.print(", from node: ");
Serial.print(header.from_node);

RF24NetworkHeader sendHeader(header.from_node);
receivedMessage.ms += 35;

if (network.write(sendHeader, &receivedMessage, sizeof(receivedMessage)))
{
Serial.println(" ... resposta enviada.");
}
else
{
Serial.println(" ... Error.");
}

}
}

Exibições: 614

Anexos

Responder esta

Respostas a este tópico

inclusive estou usando um capacitor de 100 x 16v como ja foi recomendado mas não funcionou ate agora !

Você tentou diminuir a potencia do transmissor?

Diminui sim Flavio,  agradeço ai a atenção. O que acontece é que como eu sou principiante, inverti os cabos 7 e o 8 SPI. O material que o Rui me envio tinha o dataset perfeito, onde eu achei o erro ! em seguida todos os códigos funcionaram perfeitamente.

MInha duvida agora ficou em cima do seguinte:

Uma vez que o receptor esta em 250k o transmissor ele tem que estar em 1mb ou em 2mb ?

E o PALevel : tem que ser alto no transmissor e low no receptor ?

A situação é que os receptores estarão dentro dos apartamentos e tem que falar com esse receptor, por isso estou usando o esse de 1000m para que numa area de 600m² eles mantenham a comunicação !

Oi WSL, bom dia.

Parece que este link resolveu seu problema. né?

Por favor post aqui se foi, e como foi a solução.

Rui

Rui foi top  resolveu o problema , era que eu  inverti os cabos 7 e o 8 SPI corrigindo isso  em seguida todos os códigos funcionaram perfeitamente.

MInha duvida agora ficou em cima do seguinte:

Uma vez que o receptor esta em 250k o transmissor ele tem que estar em 1mb ou em 2mb ?

E o PALevel : tem que ser alto no transmissor e low no receptor ?

A situação é que os receptores estarão dentro dos apartamentos e tem que falar com esse receptor, por isso estou usando o esse de 1000m para que numa area de 600m² eles mantenham a comunicação !

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço