Уважаемые знатоки, пытаюсь настроить передачу с двух ардуинок соединенных с модулем nrf24L01 на один общий приемник по разным трубам, но сигнал приходит только по 1 трубе, а по остальным нет. Никак не могу понять в чем дело. Скетч Передатчика №1 Код (C++): #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" RF24 radio(9, 10); byte data = 10; unsigned long tmp_time = 0; //uint8_t pipe; void setup() { Serial.begin(9600); radio.begin(); radio.setAutoAck(1); radio.setRetries(0, 15); radio.enableAckPayload(); radio.setPayloadSize(32); radio.openWritingPipe (0xAABBCCDD11LL); radio.setChannel(0x60); radio.setDataRate (RF24_250KBPS); radio.setPALevel (RF24_PA_MAX); radio.powerUp(); radio.stopListening(); } void loop () { if (millis() - tmp_time > 1000) { if (radio.write(&data, sizeof(data)) ){ Serial.print ("OK sent: "); Serial.println(data); } else { Serial.print ("Not sent: "); Serial.println(data); } tmp_time = millis(); } if (millis() == 0) { tmp_time = 0; } } Скетч передачика №2 Код (C++): #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" RF24 radio(9, 10); byte data = 20; unsigned long tmp_time = 0; //uint8_t pipe; void setup() { Serial.begin(9600); radio.begin(); radio.setAutoAck(1); radio.setRetries(0, 15); radio.enableAckPayload(); radio.setPayloadSize(32); radio.openWritingPipe (0xAABBCCDD22LL); radio.setChannel(0x60); radio.setDataRate (RF24_250KBPS); radio.setPALevel (RF24_PA_MAX); radio.powerUp(); radio.stopListening(); } void loop () { if (millis() - tmp_time > 1000) { if (radio.write(&data, sizeof(data)) ){ Serial.print ("OK sent: "); Serial.println(data); } else { Serial.print ("Not sent: "); Serial.println(data); } tmp_time = millis(); } if (millis() == 0) { tmp_time = 0; } } Скетч приемника Код (C++): #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" RF24 radio(9, 10); byte myData; unsigned long tmp_time = 0; uint8_t pipe; void setup() { Serial.begin(9600); radio.begin(); radio.setAutoAck(1); radio.setRetries(0, 15); radio.enableAckPayload(); radio.setPayloadSize(32); radio.openReadingPipe (1, 0xAABBCCDD11LL); radio.openReadingPipe (2, 0xAABBCCDD22LL); radio.setChannel(0x60); radio.setDataRate (RF24_250KBPS); radio.setPALevel (RF24_PA_MAX); radio.powerUp(); radio.startListening(); } void loop () { if(radio.available(&pipe)){ if(pipe==1){ radio.read( &myData, sizeof(myData) ); Serial.print("Recieved: "); Serial.println(myData); } if(pipe==2){ radio.read( &myData, sizeof(myData) ); Serial.print("Recieved: "); Serial.println(myData); } if(pipe==3){ radio.read( &myData, sizeof(myData) ); Serial.print("Recieved: "); Serial.println(myData); } if(pipe==4){ radio.read( &myData, sizeof(myData) ); Serial.print("Recieved: "); Serial.println(myData); } if(pipe==5){ radio.read( &myData, sizeof(myData) ); Serial.print("Recieved: "); Serial.println(myData); } if(pipe==6){ radio.read( &myData, sizeof(myData) ); Serial.print("Recieved: "); Serial.println(myData); } } }
строчка Код (C++): radio.setAutoAck(1); работает только если у вас строго 1 приемник и один передатчик. откажитесь от использования подтверждения передачи и пробуйте без нее