Два NRF24L01 и ошибка при компиляции

kipishOok

✩✩✩✩✩✩✩
21 Авг 2019
7
0
Всем привет. Меня зовут Сергей и я в печале(
Есть у меня два NRF24L01, Arduino Nano, Arduino Uno, блок кнопок и джойстик.
Хочу сделать универсальный пульт (передатчик) и приемник для радиомоделей. В плане кодинга - все сложно, пытаюсь учить.
Нано отправляет (кнопка нажата), уно принимает и включает светодиод (пока-что так). Нано прошил успешно, а вот скетч на приемник дает ошибку компиляции.

err.png

А вот и сами коды:
Для нано (TX)
#include <SPI.h> // библиотека для работы с шиной SPI
#include "nRF24L01.h" // библиотека радиомодуля
#include "RF24.h" // ещё библиотека радиомодуля

int msg[1];

//Контакты от радиомодуля NRF24L01 подключаем к пинамнам -> Arduino
//SCK -> 13
//MISO -> 12
//MOSI -> 11
//CSN -> 10
//CE -> 9

RF24 radio(9, 10); // "создать" модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53); // для Меги

byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб

byte counter;

//кнопки подключены к этим пинам
int buttonPin1 = 2;
int buttonPin2 = 3;
int buttonPin3 = 4;
int buttonPin4 = 5;

void setup() {
Serial.begin(9600); //открываем порт для связи с ПК

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

radio.openWritingPipe(address[0]); //мы - труба 0, открываем канал для передачи данных
radio.setChannel(0x6e); //выбираем канал (в котором нет шумов!)

radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
//должна быть одинакова на приёмнике и передатчике!
//при самой низкой скорости имеем самую высокую чувствительность и дальность!!

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

void loop() {
if (digitalRead(buttonPin1) == HIGH){
msg[0] = 111;
radio.stopListening();
radio.write(msg, 1);
radio.startListening();
}
if (digitalRead(buttonPin2) == HIGH){
msg[0] = 112;
radio.stopListening();
radio.write(msg, 1);
radio.startListening();
}
if (digitalRead(buttonPin3) == HIGH){
msg[0] = 113;
radio.stopListening();
radio.write(msg, 1);
radio.startListening();
}
if (digitalRead(buttonPin4) == HIGH){
msg[0] = 114;
radio.stopListening();
radio.write(msg, 1);
radio.startListening();
}
}

Для УНО (RX)
//Подключаем к ArduinoUno №2 (приемник) радиомодуль NRF24L01 и драйвер двигателя L298N

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

int msg[1];

RF24 radio(9,10); // "создать" модуль на пинах 9 и 10 Для Уно

//Контакты от радиомодуля NRF24L01 подключаем к пинамнам -> Arduino

//SCK -> 13
//MISO -> 12
//MOSI -> 11
//CSN -> 10
//CE -> 9

//Контакты от драйвера двигателя L298N подключаем к пинамнам -> Arduino
int IN3 = 5; // Input3 подключен к выводу 5
int IN4 = 4; // Input4 подключен к выводу 4
int EBN = 3; // ШИМ подключен к выводу 3

//Тест на светодиодах

int LED_1 = 7; // Первый светодиод подключен к выводу 7
int LED_2 = 6; // Второй светодиод подключен к выводу 6

byte address[][6] = {"1Node","2Node","3Node","4Node","5Node","6Node"}; //возможные номера труб

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(0x6e); //выбираем канал (в котором нет шумов!)
radio.setPALevel (RF24_PA_HIGH); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
//должна быть одинакова на приёмнике и передатчике!
//при самой низкой скорости имеем самую высокую чувствительность и дальность!!
radio.powerUp(); //начать работу
radio.startListening(); //начинаем слушать эфир, мы приёмный модуль

pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
pinMode (EBN, OUTPUT);
}

void loop(void){
if (radio.available()){
bool done = false;
while (!done){
done = radio.read(msg, 1);
//если пришел пакет от Arduino №1 (111) включается светодиод (горит)LED_1, HIGH
if (msg[0] == 111){
delay(10);
digitalWrite(LED_1, HIGH);
}
else {
digitalWrite(LED_1, LOW);
}
delay(10);

//если пришел пакет от Arduino №1 (112) включается светодиод (горит)LED_2, HIGH
if (msg[0] == 112){
delay(10);
digitalWrite(LED_2, HIGH);
}
else {
digitalWrite(LED_2, LOW);
}
delay(10);
if (msg[0] == 113){
delay(10);

//На пару выводов подаем разноименные сигналы, мотор готов к запуску
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
//Плавный пуск через ШИМ
analogWrite(EBN, 55);
delay(1000);
analogWrite(EBN, 105);
delay(1000);
analogWrite(EBN, 255); //Максимальная скорость
}
else {
//Останавливаем мотор подав на ШИМ сигнал низкого уровня -> 0
analogWrite(EBN, LOW);
}
delay(10);
if (msg[0] == 114){
delay(10);

//Вращение мотора будет в обратную сторону
//На пару выводов подаем разноименные сигналы, мотор готов к запуску
digitalWrite(IN4, HIGH);
digitalWrite(IN3, LOW);
//Плавный пуск через ШИМ
analogWrite(EBN, 55);
delay(1000);
analogWrite(EBN, 105);
delay(1000);
analogWrite(EBN, 255); //Максимальная скорость
}
else {
//Останавливаем мотор подав на ШИМ сигнал низкого уровня -> 0
analogWrite(EBN, LOW);
}
delay(10);
}
}
}

Прошу пояснить, как для дурака) Спасибо
Текст ошибки оставлю в коментах
 

kipishOok

✩✩✩✩✩✩✩
21 Авг 2019
7
0
Arduino: 1.8.9 (Windows 10), Плата:"Arduino/Genuino Uno"

D:\Install\ArduinoUNO\Arduino\arduino-builder -dump-prefs -logger=machine -hardware D:\Install\ArduinoUNO\Arduino\hardware -hardware C:\Users\kipishOok\Documents\Arduino\hardware -tools D:\Install\ArduinoUNO\Arduino\tools-builder -tools D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -built-in-libraries D:\Install\ArduinoUNO\Arduino\libraries -libraries C:\Users\kipishOok\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=1A86_7523 -ide-version=10809 -build-path C:\Users\KIPISH~1\AppData\Local\Temp\arduino_build_141454 -warnings=none -build-cache C:\Users\KIPISH~1\AppData\Local\Temp\arduino_cache_839993 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -verbose D:\files\google\Arduino\Nrf_led, rxtx\Gamepad\RX\RX.ino
D:\Install\ArduinoUNO\Arduino\arduino-builder -compile -logger=machine -hardware D:\Install\ArduinoUNO\Arduino\hardware -hardware C:\Users\kipishOok\Documents\Arduino\hardware -tools D:\Install\ArduinoUNO\Arduino\tools-builder -tools D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -built-in-libraries D:\Install\ArduinoUNO\Arduino\libraries -libraries C:\Users\kipishOok\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=1A86_7523 -ide-version=10809 -build-path C:\Users\KIPISH~1\AppData\Local\Temp\arduino_build_141454 -warnings=none -build-cache C:\Users\KIPISH~1\AppData\Local\Temp\arduino_cache_839993 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=D:\Install\ArduinoUNO\Arduino\hardware\tools\avr -verbose D:\files\google\Arduino\Nrf_led, rxtx\Gamepad\RX\RX.ino
Using board 'uno' from platform in folder: D:\Install\ArduinoUNO\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: D:\Install\ArduinoUNO\Arduino\hardware\arduino\avr
Detecting libraries used...
"D:\\Install\\ArduinoUNO\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "C:\\Users\\KIPISH~1\\AppData\\Local\\Temp\\arduino_build_141454\\sketch\\RX.ino.cpp" -o nul
"D:\\Install\\ArduinoUNO\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\SPI\\src" "C:\\Users\\KIPISH~1\\AppData\\Local\\Temp\\arduino_build_141454\\sketch\\RX.ino.cpp" -o nul
"D:\\Install\\ArduinoUNO\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\SPI\\src" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\RF24-master" "C:\\Users\\KIPISH~1\\AppData\\Local\\Temp\\arduino_build_141454\\sketch\\RX.ino.cpp" -o nul
"D:\\Install\\ArduinoUNO\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\SPI\\src" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\RF24-master" "C:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\SPI\\src\\SPI.cpp" -o nul
"D:\\Install\\ArduinoUNO\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\SPI\\src" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\RF24-master" "C:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\RF24-master\\RF24.cpp" -o nul
Generating function prototypes...
"D:\\Install\\ArduinoUNO\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\SPI\\src" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\RF24-master" "C:\\Users\\KIPISH~1\\AppData\\Local\\Temp\\arduino_build_141454\\sketch\\RX.ino.cpp" -o "C:\\Users\\KIPISH~1\\AppData\\Local\\Temp\\arduino_build_141454\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"D:\\Install\\ArduinoUNO\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\KIPISH~1\\AppData\\Local\\Temp\\arduino_build_141454\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Компиляция скетча...
"D:\\Install\\ArduinoUNO\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Install\\ArduinoUNO\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\SPI\\src" "-IC:\\Users\\kipishOok\\Documents\\Arduino\\libraries\\RF24-master" "C:\\Users\\KIPISH~1\\AppData\\Local\\Temp\\arduino_build_141454\\sketch\\RX.ino.cpp" -o "C:\\Users\\KIPISH~1\\AppData\\Local\\Temp\\arduino_build_141454\\sketch\\RX.ino.cpp.o"
D:\files\google\Arduino\Nrf_led, rxtx\Gamepad\RX\RX.ino: In function 'void loop()':

RX:58:8: error: void value not ignored as it ought to be

done = radio.read(msg, 1);

^

Несколько библиотек найдено для "SPI.h"
Используется: C:\Users\kipishOok\Documents\Arduino\libraries\SPI
Не используется: D:\Install\ArduinoUNO\Arduino\hardware\arduino\avr\libraries\SPI
Используем библиотеку SPI версии 1.0 из папки: C:\Users\kipishOok\Documents\Arduino\libraries\SPI
Используем библиотеку RF24-master в папке: C:\Users\kipishOok\Documents\Arduino\libraries\RF24-master (legacy)
exit status 1
void value not ignored as it ought to be
 

Старик Похабыч

★★★★★✩✩
14 Авг 2019
1,662
409
Москва
при чтении и отсылке данных надо передавать ссылку на данные, а не сами данные. примерно так
C++:
RC_Car.(&trareadns_data, sizeof(trans_data) );
посмотрел код.. зачем транссиверу (передатчику) слушать эфир ?
 

kipishOok

✩✩✩✩✩✩✩
21 Авг 2019
7
0
при чтении и отсылке данных надо передавать ссылку на данные, а не сами данные. примерно так
C++:
RC_Car.(&trareadns_data, sizeof(trans_data) );
посмотрел код.. зачем транссиверу (передатчику) слушать эфир ?
Я только на первой ступеньке понимания кода. В интернете порылся и из того что было, то и слепил. Не могли бы поправить, как считаете нужным?
 

Старик Похабыч

★★★★★✩✩
14 Авг 2019
1,662
409
Москва
Синтаксис не проверял , но как то так

C++:
void loop() {
if (digitalRead(buttonPin1) == HIGH){
msg[0] = 111;
radio.write(&msg,sizeof(msg) );
}
if (digitalRead(buttonPin2) == HIGH){
msg[0] = 112;
radio.write(&msg, sizeof(msg) );
}
if (digitalRead(buttonPin3) == HIGH){
msg[0] = 113;
radio.write(&msg, sizeof(msg) );
}
if (digitalRead(buttonPin4) == HIGH){
msg[0] = 114;
radio.write(&msg, sizeof(msg) );
}
}
и аналогичным образом исправить radio.read
 
  • Лойс +1
Реакции: kipishOok