Что за ошибка exit status 1 array must be initialized with a brace-enclosed initializer

qwerty13rus
Offline
Зарегистрирован: 05.12.2018
int ppp[] = {1, 2, 3};
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <nRF24L01.h> // библиотека для nRF24L01+
#include <RF24.h>

#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

unsigned long delayTime;

const uint64_t pipe = 0xF0F1F2F3F4LL; // идентификатор передачи
RF24 radio(7, 8);
void setup() {
  Serial.begin(9600);
  while (!Serial);   // time to get serial running
  Serial.println(F("BME280 test"));

  unsigned status;

  // default settings
  // (you can also pass in a Wire library object like &Wire2)
  status = bme.begin();
  if (!status) {
    Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!");
    Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(), 16);
    Serial.print("        ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");
    Serial.print("   ID of 0x56-0x58 represents a BMP 280,\n");
    Serial.print("        ID of 0x60 represents a BME 280.\n");
    Serial.print("        ID of 0x61 represents a BME 680.\n");
    while (1);
  }

  Serial.println("-- Default Test --");
  delayTime = 1000;

  Serial.println();
  radio.begin();       // включаем радио модуль
  radio.setChannel(0); // выбираем канал (от 0 до 127)

  // скорость: RF24_250KBPS, RF24_1MBPS или RF24_2MBPS
  radio.setDataRate(RF24_1MBPS);
  // мощность: RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM
  radio.setPALevel(RF24_PA_HIGH);

  radio.openWritingPipe(pipe);      // открываем трубу на передачу
  radio.stopListening();
}


void loop() {
  int t = bme.readTemperature();
  int ppp[1] = t;
  int data = ppp[];        // читаем значение с датчика
  radio.write(&data, sizeof(data)); // отправляем данные и указываем байты
  Serial.println(data);             // выводим данные на монитор порта
  delay(1000);
}


void printValues() {
  Serial.print("Temperature = ");
  Serial.print(bme.readTemperature());
  Serial.println(" *C");

  Serial.print("Pressure = ");

  Serial.print(bme.readPressure() / 100.0F);
  Serial.println(" hPa");

  Serial.print("Approx. Altitude = ");
  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
  Serial.println(" m");

  Serial.print("Humidity = ");
  Serial.print(bme.readHumidity());
  Serial.println(" %");

  Serial.println();
}

 

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

ругается на 63 строку

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015
b707
Онлайн
Зарегистрирован: 26.05.2017

qwerty13rus пишет:

ругается на 63 строку

исправите строку 63 - будет ругаться на строку 64. Прочитайте внимательно главу учебника про массивы.

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

Прочел это http://arduino.ru/Reference/Array, разобрался более менее, спасибо. Но как не странно появилось еще одна проблема, причем довольно странная. При передачи переменной t и p все приходит как положено, но вот с переменной v проблема, приходит число 516, что не так?

передатчик:

int ppp[] = {1, 2, 3};
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <nRF24L01.h> // библиотека для nRF24L01+
#include <RF24.h>

#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

unsigned long delayTime;

const uint64_t pipe = 0xF0F1F2F3F4LL; // идентификатор передачи
RF24 radio(7, 8);
void setup() {
  Serial.begin(9600);
  while (!Serial);   // time to get serial running
  Serial.println(F("BME280 test"));

  unsigned status;

  // default settings
  // (you can also pass in a Wire library object like &Wire2)
  status = bme.begin();
  if (!status) {
    Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!");
    Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(), 16);
    Serial.print("        ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");
    Serial.print("   ID of 0x56-0x58 represents a BMP 280,\n");
    Serial.print("        ID of 0x60 represents a BME 280.\n");
    Serial.print("        ID of 0x61 represents a BME 680.\n");
    while (1);
  }

  Serial.println("-- Default Test --");
  delayTime = 1000;

  Serial.println();
  radio.begin();       // включаем радио модуль
  radio.setChannel(0); // выбираем канал (от 0 до 127)

  // скорость: RF24_250KBPS, RF24_1MBPS или RF24_2MBPS
  radio.setDataRate(RF24_1MBPS);
  // мощность: RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM
  radio.setPALevel(RF24_PA_HIGH);

  radio.openWritingPipe(pipe);      // открываем трубу на передачу
  radio.stopListening();
}


void loop() {
  int t = bme.readTemperature();
  Serial.print("темп = ");
  Serial.println(t);
  ppp[0] = t;
  int p = bme.readPressure() / 100.0F;
   Serial.print("давл = ");
  Serial.println(p);
  ppp[1] = p;
  int v = bme.readHumidity();
  Serial.print("влаж = ");
  Serial.println(v);
  ppp[2] = v;
  radio.write(&ppp, sizeof(ppp)); // отправляем данные и указываем байты
  // выводим данные на монитор порта
  delay(1000);
}


void printValues() {
  Serial.print("Temperature = ");
  Serial.print(bme.readTemperature());
  Serial.println(" *C");

  Serial.print("Pressure = ");

  Serial.print(bme.readPressure() / 100.0F);
  Serial.println(" hPa");

  Serial.print("Approx. Altitude = ");
  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
  Serial.println(" m");

  Serial.print("Humidity = ");
  Serial.print(bme.readHumidity());
  Serial.println(" %");

  Serial.println();
}

Приемник:

#include <SPI.h>      // библиотека для протокола SPI
#include <nRF24L01.h> // библиотека для nRF24L01+
#include <RF24.h>     // библиотека для радио модуля

int data[2];

const uint64_t pipe = 0xF0F1F2F3F4LL; // идентификатор передачи
RF24 radio(31,30); // Для MEGA2560 замените на RF24 radio(9,53);

void setup()
{
  Serial.begin(9600);  // запускаем последовательный порт
  radio.begin();       // включаем радио модуль
  radio.setChannel(0); // выбираем канал (от 0 до 127)

    // скорость: RF24_250KBPS, RF24_1MBPS или RF24_2MBPS
  radio.setDataRate(RF24_1MBPS);
    // мощность: RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM
  radio.setPALevel(RF24_PA_HIGH);

  radio.openReadingPipe(1, pipe);    // открываем первую трубу
  radio.startListening();            // начинаем слушать трубу
}

void loop() 
{
  if (radio.available())             // проверяем буфер обмена
  {
    radio.read(&data, sizeof(data)); // читаем данные
    Serial.print("темп = ");
    Serial.println(data[0]);  
    delay(10);
    Serial.print("давл = ");
    Serial.println(data[1]); 
    delay(10);
    Serial.print("влаж = ");
    Serial.println(data[2]);
    delay(10); 
  }
}

 

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

а сколько элементов в этом массиве  

int data[2];

?

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

Поменял в приемнике строку 5 на

int data[3];

И заработало

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

Valera19701 пишет:

а сколько элементов в этом массиве  

int data[2];

?

Помоему 3 элемента, 0, 1 и 2, разве нет?

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

Все понял, невнимательно читал оказывается