nRF24L01 помощь с скетчем

avgaz
Offline
Зарегистрирован: 23.09.2014

Подскажите плиз что не так есть два скетча приемника и передатчика они работают то есть приемник в сиреал сыпет данные с передатчика, но если в передатчике выставить задержку delay(1000); то всё приемник перестает принимать данные, в чем проблема?

приемник

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

const uint64_t pipe = 0xF0F1F2F3F4LL; // идентификатор передачи, "труба"

RF24 radio(9, 10); // CE, CSN
 
void setup(){
  Serial.begin(9600);
 
  radio.begin(); 
  delay(2);
  radio.setChannel(9); // канал (0-127)
 
      // скорость, RF24_250KBPS, RF24_1MBPS или RF24_2MBPS
      // RF24_250KBPS на nRF24L01 (без +) неработает.
      // меньше скорость, выше чувствительность приемника.
  radio.setDataRate(RF24_1MBPS);   
 
      // мощьность передатчика RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM,
  radio.setPALevel(RF24_PA_HIGH); 
   
  radio.openReadingPipe(1,pipe); // открываем первую трубу с идентификатором "pipe"
  radio.startListening(); // включаем приемник, начинаем слушать трубу
}
//  radio.stopListening(); // останавливает приём (нужно перед началом передачи)


void loop() 
{ 
  int data;
 
  if (radio.available()){ // проверяем не пришло ли чего в буфер.
    radio.read(&data, sizeof(data)); // читаем данные, указываем сколько байт читать
   
    Serial.print("data: ");
    Serial.println(data);
  }
}

передачик

 


#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h> // https://github.com/maniacbug/RF24
 
const uint64_t pipe = 0xF0F1F2F3F4LL; // идентификатор передачи, "труба"
RF24 radio(9, 10); // CE, CSN

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

  radio.begin();
  delay(2);
  radio.setChannel(9); // канал (0-127)
   
      // скорость, RF24_250KBPS, RF24_1MBPS или RF24_2MBPS
      // RF24_250KBPS на nRF24L01 (без +) неработает.
      // меньше скорость, выше чувствительность приемника.
  radio.setDataRate(RF24_1MBPS);
 
      // мощьность передатчика, RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM,
  radio.setPALevel(RF24_PA_HIGH); 

  radio.openWritingPipe(pipe); // открываем трубу на передачу.
}


void loop() 
{
 
  int data = analogRead(0); // читаем значение
 
  radio.write(&data, sizeof(data)); // отправляем данные и указываем сколько байт пакет
 
  Serial.print("data: ");
  Serial.println(data);
//  delay(1000);
}
banan15
Offline
Зарегистрирован: 09.01.2016

avgaz, дружище, можешь описать процесс заливания скетча на ардуино?

 

avgaz
Offline
Зарегистрирован: 23.09.2014

он просто не принимает данные, без задержки в передатчике нормально все

avgaz
Offline
Зарегистрирован: 23.09.2014

ещё один нюанс, если на передатчике отключить разем CE то с задержкой нормально работает, в чом прикол то?

Radjah
Offline
Зарегистрирован: 06.08.2014

> чом

>_<

13-я строка в первом и 12-я во втором скетче зачем?

Снижай скорость передачи, если лезут ошибки, и увеличивай количество повтором отправки данных.

CE - это внезапно Chip Enable.

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

керамические конденсаторы 0.01 - 1 мкф по питанию на каждый модуль припаяли?

http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo

"NOTE!! Most * problems with intermittent operation are because of electrical noise on the 3.3V Power supply. The MEGA is more of a problem with this. Solution: ADD bypass capacitors across GND and 3.3V ON the radio modules. One user said, "Just Solder a 100nF ceramic cap across the gnd and 3.3v pins direct on the nrf24l01+ modules!" Some have used a 1uF to 10uF capacitor."

avgaz
Offline
Зарегистрирован: 23.09.2014

Valera19701 пишет:

керамические конденсаторы 0.01 - 1 мкф по питанию на каждый модуль припаяли?

http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo

"NOTE!! Most * problems with intermittent operation are because of electrical noise on the 3.3V Power supply. The MEGA is more of a problem with this. Solution: ADD bypass capacitors across GND and 3.3V ON the radio modules. One user said, "Just Solder a 100nF ceramic cap across the gnd and 3.3v pins direct on the nrf24l01+ modules!" Some have used a 1uF to 10uF capacitor."

да только 10мкф

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

а зачем вам delay ? тут пытаюсь везде от него избавляться :)