NRF24L01 радио модуль. Как реализовать переключение каналов.

SVD
Offline
Зарегистрирован: 05.04.2018

Доброго времени суток. Подскажите пожалуйста, как реализовать переключение каналов на радио модуле NRF24L01 (на принимающем устройстве)? Не могу понять как нужно изменить скетч? Переключать планирую от нажатия кнопки. Вот кусок кода. 

[code]

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

  radio.openReadingPipe(1, address[0]);     //хотим слушать трубу 0
  radio.setChannel(0x70);  //выбираем канал (в котором нет шумов!)

  radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
  radio.setDataRate (RF24_1MBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
  //должна быть одинакова на приёмнике и передатчике!
  //при самой низкой скорости имеем самую высокую чувствительность и дальность!!
  // ВНИМАНИЕ!!! enableAckPayload НЕ РАБОТАЕТ НА СКОРОСТИ 250 kbps!

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

void loop(void) {
  int gotByte[4];
  byte pipeNo;
  while ( radio.available(&pipeNo)) {  // слушаем эфир со всех труб
    radio.read( &gotByte, sizeof(gotByte) );         // чиатем входящий сигнал
  }
}
[/code]

 

IVAN222
Offline
Зарегистрирован: 19.04.2017

В Вашем коде и близко не пахнет переключения канала с помощью кнопки. 

radio.setChannel(0x70); эта команда отвечает за номер канала (всего их 128) 

вот и делайте, при нажатии кнопки изменяйте (что в скобках).