Прием-передача и передача-прием 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(); }
Надо сделать так........
Легко