Как только в цикл добавляю delay(15) или больше 15, NRF перестает работать. В примере установил setAutoAck(false) чтобы не требовалось подтверждения от приемника. Если передавать часто, те без delay(1000), то работает нормально IDE Ардуино версии 1.0.5 r2 GR_LED - зеленый светодиод к 14 выводу Atmega2560 или ко 2 выводу UNO RED_LED - красный светодиод к 16 выводу Atmega2560 или к 4 выводу UNO Код (C++): #include "nRF24L01.h" #include <SPI.h> #include "RF24.h" const uint64_t pipe = 'ABCDEFG'; uint8_t B_32bytes[32]; // для Mega2560 CE_PIN,SS_PIN : RF24 ModuleToTest(49,53); //для Uno CE_PIN,SS_PIN: // RF24 ModuleToTest(8,10); // для Mega2560: #define GR_LED 14 // Tx Ok #define RED_LED 16 // Tx fail // для UNO: //#define GR_LED 2 //#define RED_LED 4 void setup(void) { ModuleToTest.begin(); //ModuleToTest.setAutoAck(true); ModuleToTest.setAutoAck(false); ModuleToTest.setDataRate(RF24_1MBPS); ModuleToTest.setCRCLength(RF24_CRC_16); ModuleToTest.setChannel(66); ModuleToTest.openWritingPipe(pipe); //ModuleToTest.printDetails(); pinMode(RED_LED, OUTPUT); pinMode(GR_LED, OUTPUT); } void loop(void) { switch(ModuleToTest.write(B_32bytes,32)) { case false: digitalWrite(GR_LED,HIGH); digitalWrite(RED_LED,LOW); break; case true: digitalWrite(RED_LED,HIGH); digitalWrite(GR_LED,LOW); break; } delay(1000); // !!!!!!!!!!!!!!!!!!!!!!!!! }
Как определяете что модуль не работает? И сделайте вывод регистров в отладку перед каждой отправкой с большим интервалом. Только так можно понять проблему