У меня проблема с моим nano Arduino и nrf24l01 в качестве приемника.
Здравствуйте, у меня проблема с моим nano Arduino и nrf24l01 в качестве приемника. Я пытаюсь загрузить свой код на плату, но там говорится, что в моем коде есть ошибка:
Получатель:45:10: ошибка: значение void не игнорируется, как должно быть
статус выхода 1 значение void не игнорируется, как должно быть
Полный код:
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
//Код получателя (Рука)
#include <Servo.h> //библиотека, которая помогает нам управлять серводвигателем
#include <SPI.h> //интерфейс связи с модемом
#include "RF24.h" //библиотека, которая помогает нам управлять радиомодемом
//определяем имя сервопривода
Servo myServo1;
Servo myServo3;
Servo myServo4;
Servo myServo2;
Servo myServo5;
RF24 radio(9,10); /*This object represents a modem connected to the Arduino.
Arguments 9 and 10 are a digital pin numbers to which signals
CE and CSN are connected.*/
const uint64_t pipe = 0xE8E8F0F0E1LL; //адрес модема, который будет получать данные от Arduino.
int msg[5];
void setup(){
//определяем входные контакты сервопривода
myServo1.attach(15); //А1
myServo2.attach(16); //А2
myServo3.attach(17); //А3
myServo4.attach(18); //А4
myServo5.attach(19); //А5
radio.begin(); //он активирует модем.
radio.openReadingPipe(1, pipe); //определяем адрес нашего модема, на который приходят данные.
radio.startListening(); //включаем получение данных через модем
}
void loop(){
if(radio.available()){
bool done = false;
while (!done){
done = radio.read(msg, sizeof(msg));
myServo1.write(msg[2]); //А1
myServo2.write(msg[4]); //А2
myServo3.write(msg[3]); //А3
myServo4.write(msg[1]); //А4
myServo5.write(msg[0]); //А5
}
}
}
и проблема вот в чем:
done = radio.read(msg, sizeof(msg));
Я не знаю, как это сделать в виде кода. Мне жаль. Я пытаюсь запрограммировать бионическую руку, но только начал работать с платами Arduino и соответствующей программой. Если кто-то может мне помочь, я был бы очень благодарен. спасибо
@nathan, 👍0
1 ответ
radio.read()
не возвращает значение. Вы не можете присвоить логическому значению «нет значения».
Если radio.available()
истинно, то radio.read()
выполнится успешно. Нет необходимости проверять, сработало это или нет.
- Пустое значение не игнорируется, как должно быть.
- ESP32 отправляет данные на другой ESP32 без установления соединения Wi-Fi
- Проблема с NRF24L01
- Модуль nRF24L01 с использованием библиотеки Mirf работал, а затем остановился
- NRF24L01+ (библиотека TMRH20): Получатель получает пустые данные
- Как автоматически сбросить модуль NRF24L01
- nRF24L01 - Измерение расстояния по прошедшему времени
- Как погасить светодиод за определенное время с помощью FastLED