Прием-передача и передача-прием nrf24l01
- Войдите на сайт для отправки комментариев
Пт, 06/10/2017 - 21:19
Здравствуйте, перейду сразу к делу. У меня есть машина с радиоуправление (начинка ардуино). Использую радиомодуль 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();
}
Надо сделать так........
Легко