Прием-передача и передача-прием nrf24l01

Valerkaaa
Valerkaaa аватар
Offline
Зарегистрирован: 08.09.2017

Здравствуйте, перейду сразу к делу. У меня есть машина с радиоуправление (начинка ардуино). Использую радиомодуль nrf24l01 с библиотеку RF24 https://github.com/maniacbug/RF24.
Надо сделать так, что бы передавался сигнал с передатчика на приемник и наоборот. Поясню. Сначала идет сигнал с master'a на slave. А далее надо с приемника отправить на передатчик, что машина включена.

Оставлю тут свои скетчи (они у меня не работали) может кто-то из вас захочет их поправить.

Заранее спасибо.

Передатчик.


//передатчик
#include <SPI.h>                       // Подключаем библиотеку для работы с шиной SPI
#include <nRF24L01.h>                  // Подключаем файл настроек из библиотеки RF24
#include <RF24.h>                      // Подключаем библиотеку для работы с nRF24L01+
RF24  radio(9, 10); 
int SteeringPin ;
int ThrottlePin ;
int broadcast = 0;
int data[2]; 
int Stop = 0;
int radioNumber = 0;

void setup() {
Serial.begin(115200); 
radio.begin();                            
radio.setChannel(111);               
radio.setDataRate     (RF24_1MBPS);       
radio.setPALevel      (RF24_PA_HIGH);     
//radio.openWritingPipe (0x1234567890LL);   
//radio.openReadingPipe (1, 0xABCDEF1234LL);;   
}

void loop() {
if (radioNumber = 0) {  
    radio.openWritingPipe (0x1234567890LL);   
    data[0] = broadcast + 1;
    radio.write(&data, sizeof(data)); 
}  
radioNumber = 1;
if (radioNumber = 1) {    
  radio.openReadingPipe (1, 0xABCDEF1234LL);
  radio.startListening();
  if (radio.available()){  
        radio.read(&data, sizeof(data)); 
        Stop = data[1];
  }
    if (Stop == 0) {
        ThrottlePin =0;
        SteeringPin =0;
    }
    else if (Stop == 1) {
        ThrottlePin =1;
        SteeringPin =1;
    }
}  
      //Serial.print(ThrottlePin);
      Serial.print(broadcast   );
      Serial.println();
      //Serial.print(SteeringPin);
      Serial.print(    Stop);
      //Serial.println();
      radio.stopListening();
}

 

Приемник.

//приемник
#include <SPI.h>                       // Подключаем библиотеку для работы с шиной SPI
#include <nRF24L01.h>                  // Подключаем файл настроек из библиотеки RF24
#include <RF24.h>                      // Подключаем библиотеку для работы с nRF24L01+
RF24  radio(9, 10); 
int SteeringPin ;
int ThrottlePin ;
int broadcast = 0;
int data[2]; 
int Stop = 0;
int radioNumber = 0;

void setup() {
Serial.begin(115200); 
radio.begin();                            
radio.setChannel(111);               
radio.setDataRate     (RF24_1MBPS);       
radio.setPALevel      (RF24_PA_HIGH);     
radio.openWritingPipe (0xABCDEF1234LL);   
radio.openReadingPipe (1, 0x1234567890LL);; 
radio.startListening();
}

void loop () {
if (radioNumber ==0) {    
  if (radio.available()){  
       radio.read(&data, sizeof(data)); 
       Stop = data[0];
  }
    if (Stop == 0) {
       ThrottlePin =0;
       SteeringPin =0;    
    }
    else if (Stop == 1) {
       ThrottlePin =1;
       SteeringPin =1;    
    }
}
radioNumber = 1;
if (radioNumber ==1) { 
    radio.stopListening(); 
    data[1] = broadcast +1; 
    radio.write(&data, sizeof(data));     
}    
      //Serial.print(ThrottlePin);
      Serial.print(broadcast);
      Serial.println();
      //Serial.print(SteeringPin);
      Serial.print(    Stop);
      //Serial.println(); 
radio.startListening();
}

 

mobistrike
mobistrike аватар
Offline
Зарегистрирован: 19.08.2016

Valerkaaa пишет:

Надо сделать так........

Легко