Проблема с приёмом пакетов nRF24L01

Andrew1990
Offline
Зарегистрирован: 19.02.2014

Доброго времени суток. Прошу вашей помощи, как более опятных в этом вопросе людей. По радиоканалу передаю данные с помощью nRF24L01.

Код передатчика:

#include <duino.h>
#include <SPI.h>
#include <DHT.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
#define DHTPIN A2     
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);
  float t1 = 0;
  float t;
  float h;

void setup(){
	  Serial.begin(9600);
	  Mirf.cePin = 9;
	  Mirf.csnPin = 10;
	  Mirf.spi = &MirfHardwareSpi;
	  Mirf.init();
	  Mirf.setRADDR((byte *)"nano");
	  Mirf.payload = 9;
	  Mirf.config();
	   Serial.println("Beginning ... "); 
}
	 
void loop(){
 h = dht.readHumidity();
 t = dht.readTemperature();
//h++;
  unsigned long time = millis();
  Serial.print("Local_temp=");
  Serial.println(t);
  Serial.print("Local_Humidity=");
  Serial.println(h);
//t++; h;
 Mirf.setTADDR((byte *)"mega");

  Mirf.send((byte *)&t);
   
  while(Mirf.isSending()){}
  Serial.println("Finished sending");
  delay(1000);
}

Код приёмника:

#include <duino.h>
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
	 float t = 0; 
	 float h = 0;//	        int backLight = 13; 
	        const int analogInPin = A0;
	         int sensorValue = 0;
void setup(){
           Serial.begin(9600);
	  Mirf.csnPin = 10;
	  Mirf.spi = &MirfHardwareSpi;
	  Mirf.init();
	  Mirf.setTADDR((byte *)"nano");
	  Mirf.payload = 9;
	  Mirf.config();
          Mirf.setRADDR((byte *)"mega");
          Serial.println("Listening..."); 
	 
	}
	 
void loop(){
 Mirf.setTADDR((byte *)"nano");
 Mirf.setRADDR((byte *)"mega");
	 
	 byte data[Mirf.payload];
   Mirf.getData((byte *)&t);
                      
//	      while((!Mirf.isSending() && Mirf.dataReady())){}
if (h>1)
{
    Serial.println(t*1000+h);
}
}

Передатчик исправно отсылает данные. Если использовать приёмник в качестве передатчика, то он тоже нормально отправляет данные. А вот принимать не может. В чём может быть проблема? Я не очень хорошо знаю эту библиотеку, поэтому прошу Вашего совета.

Andrew1990
Offline
Зарегистрирован: 19.02.2014

Видел такую же тему, но подключение конденсатора параллельно нагрузке не решило проблему.

pmaster
Offline
Зарегистрирован: 23.05.2011

а чем не нравится библиотека http://maniacbug.github.io/RF24/ ? на мой взгляд намного там лучше всё и удобнее, а если взять rf24network так там вообще сказка. :)

dmw
Offline
Зарегистрирован: 24.03.2013

У вас на приемнике h=0 всегда. Поэтому и не выполняется serial.println в 33 строчке.