NRF24L01 не принимает данные

Всем привет, осваиваю модули NRF24L01. Использую пару NRF24 + arduino nano через спаяные шилды, все в целом понятно, но есть проблема: когда в стандартной прошивке из видео AlexGyver (циклическая отправка чисел от 0 до 255 с выводом в монитор порта) добавляю задержку в коде или вообще отправляю по одному числу, приемник игнорирует данные события и монитор порта пуст. Весь день уже сижу с этим делом, и только стоит убрать задержку или занизить ее до предела (1-5 миллисекунд), приемник сразу принимает весь поток чисел, причем можно разглядеть все числа от 0 до 255 в быстром потоке без пропусков, а значит дело вряд ли в качестве связи. В наличии есть 3 модуля с антеннами, пробовал по разному их комбинировать - не помогло. Может кто с таким сталкивался?

#include <SPI.h>          // библиотека для работы с шиной SPI
#include "nRF24L01.h"     // библиотека радиомодуля
#include "RF24.h"         // ещё библиотека радиомодуля

RF24 radio(9, 10); // "создать" модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53); // для Меги

byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб

byte counter;

void setup() {
  Serial.begin(9600);         // открываем порт для связи с ПК

  radio.begin();              // активировать модуль
  radio.setAutoAck(1);        // режим подтверждения приёма, 1 вкл 0 выкл
  radio.setRetries(0, 15);    // (время между попыткой достучаться, число попыток)
  radio.enableAckPayload();   // разрешить отсылку данных в ответ на входящий сигнал
  radio.setPayloadSize(32);   // размер пакета, в байтах

  radio.openWritingPipe(address[0]);  // мы - труба 0, открываем канал для передачи данных
  radio.setChannel(0x60);             // выбираем канал (в котором нет шумов!)

  radio.setPALevel (RF24_PA_MAX);   // уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
  radio.setDataRate (RF24_250KBPS); // скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
  //должна быть одинакова на приёмнике и передатчике!
  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!

  radio.powerUp();        // начать работу
  radio.stopListening();  // не слушаем радиоэфир, мы передатчик
}

void loop() {
  Serial.print("Sent: ");
  Serial.println(counter);
  radio.write(&counter, sizeof(counter));
  counter++;
  //delay(200); //если убрать эту задержку - работает
}

введите сюда описание изображения

введите сюда описание изображения


Ответы (0 шт):