как подключить 2 и более nRF24L01+ к ардуино

romiras
Offline
Зарегистрирован: 12.07.2015

Подскажите, как подключить 2 и более nRF24L01+ к ардуино. Что нужно поменять в кодах? 

передача:

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

const uint64_t pipe = 0xE8E8F0F0E1LL; // адрес канала передачи
RF24 radio(7, 8);
byte msg[3];

void setup() {
  //============================================================Модуль NRF24
  radio.begin();                      // Включение модуля
  radio.setAutoAck(1);                // Установка режима подтверждения приема;
  radio.setRetries(1, 1);             // Установка интервала и количества попыток
  radio.setDataRate(RF24_250KBPS);    // Устанавливаем скорость
  radio.setPALevel(RF24_PA_MAX);      // Установка максимальной мощности;
  radio.setChannel(10);               // Устанавливаем канал
  radio.openWritingPipe(pipe);        // Открываем канал передачи
}

void loop() {
  msg[0] = 19;
  msg[1] = 12;
  radio.write(&msg, sizeof(msg));
}

прием:

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

const uint64_t pipe = 0xE8E8F0F0E1LL; // адрес канала передачи
RF24 radio(7, 8);
byte msg[3];

void setup() {
  Serial.begin(9600);
  //============================================================Модуль NRF24
  radio.begin();                      // Включение модуля
  radio.setAutoAck(1);                // Установка режима подтверждения приема;
  radio.setDataRate(RF24_250KBPS);    // Устанавливаем скорость
  radio.setChannel(10);               // Устанавливаем канал
  radio.openReadingPipe(1, pipe);   // Открываем 1 канал приема
  radio.startListening();             // Начинаем слушать эфир

}

void loop() {
  if (radio.available()) {
    while (radio.available()) {
      radio.read(&msg, sizeof(msg));
      Serial.println(msg[0]);
      Serial.println(msg[1]);

    }
  }
}

 

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

сначала обьясните для чего вам это надо?

romiras
Offline
Зарегистрирован: 12.07.2015

температуру передавать с двух разных мест. Один датчик вешается без проблем, как второй подцепить, как инициировать прием и передачу второго nRF24?

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

можно менять номер канала

romiras
Offline
Зарегистрирован: 12.07.2015

это в передатчике,  а в приемнике, как настроить прием на втором канале? На двух сразу или по очереди?

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

по номеру канала это не есть гуд, можно передавать посылку вроде пароля от каждого датчика,

romiras
Offline
Зарегистрирован: 12.07.2015

Еще бы знать, как это сделать(( Гуглил - подобного решения вопроса не находил

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

передавайте в трубу еще какое то число например массив увеличиваете до 3 и добавляете пароль

msg[2] = 1234321;

romiras
Offline
Зарегистрирован: 12.07.2015

Пробовал, увеличивал массив, бесполезно. Только с паролем не эксперементировал, потому что не знаю, как и куда его прилепить

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

на приемнике пишите

if (msg[2] == 1234321) {
// куда там у вас записываются msg[0]  и msg[1] первый датчик
}
else if (msg[2] == 4321234) {
// куда там у вас записываются msg[0]  и msg[1] второй датчик
}

 

romiras
Offline
Зарегистрирован: 12.07.2015

Спасибо всем! Нашел решение http://arrduinolab.blogspot.ru/2014/12/nrf24l01-arduino_30.html

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

radio.setRetries(1, 1);

Н Надежность