Не работает скетч для NRF24l01

goldpistol
Offline
Зарегистрирован: 01.10.2014

Ребят,помогите со скетчем...Пробовал во всех версиях arduino ide
и везде ругается на одну и ту же строку "data = radio.read( &dataIn, sizeof(dataIn));"
Сама ошибка "priemnik_3_int.cpp: In function 'void loop()':
priemnik_3_int:39: error: void value not ignored as it ought to be
"

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include "printf.h"
RF24 radio(9,10); // Определяем рабочие ножки;
const uint64_t pipe = 0xE8E8F0F0E1LL; // Определяем адрес рабочей трубы;
LiquidCrystal_I2C lcd(0x27,16,2);
int data;
void setup() {
  
radio.begin(); // Старт работы;
radio.enableAckPayload();  // Разрешение отправки нетипового ответа передатчику;
radio.openReadingPipe(1,pipe);  // Открываем трубу и
radio.startListening();  //начинаем слушать;
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(5, HIGH);
 digitalWrite(6, LOW);

lcd.init();                      // initialize the lcd 
  lcd.backlight();
 lcd.print("Data monitor");
}



void loop() {
  
  uint32_t message = 111;  //Вот какой потенциальной длины сообщение - uint32_t!
//туда можно затолкать значение температуры от датчика или еще что-то полезное.
radio.writeAckPayload( 1, &message, sizeof(message) ); // Грузим сообщение для автоотправки;
if ( radio.available() ) { //Просто читаем и очищаем буфер - при подтверждении приема
    int dataIn;  //передатчику приемник протолкнет ему в обратку наше сообщение;
    bool done = false;
    while (!done) {
     data = radio.read( &dataIn, sizeof(dataIn));
      if(data > 0) {
        bool done= true;
      }
        //done =  // Значение dataIn в данном случае
        //не важно. Но его можно использовать и как управляющую команду.
        
    }
    
    
    
    lcd.clear();
  lcd.print(dataIn);
    
}
  


}

 

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

message это сообщение или длинна? В комментарии написано длинна, в writeAckPayload вторым параметром передается указатель на буфер получается message и есть сообщение. bool done=true заменить на done=true.

read вызывается без параметров, судя по вашему вызову должно быть написано не read а readBytes это у него такие параметры, ну а дальше смотреть что получится