'String' не был объявлен в этой области ошибка
Я знаю, что исправление, вероятно, очень простое, но в следующем коде, внизу вы увидите
return string(range);Для этого я получаю ошибку, которая говорит: error: 'string' не был объявлен в этой области.
Как мне это исправить ????
#include <Wire.h> #include <Adafruit_VL6180X.h> Adafruit_VL6180X vl = Adafruit_VL6180X(); //sets if armed boolean alarmState = false; //uint8_t change = null; void setup() { for(int i = 0; i < 4; i++){ pinMode(i, OUTPUT); } Serial.begin(115200); // wait for serial port to open on native usb devices while (!Serial) { delay(1); } Serial.println("Adafruit VL6180x test!"); if (! vl.begin()) { Serial.println("Failed to find sensor"); while (1); } Serial.println("Sensor found!"); } void loop() { for(int i = 0; i < 4; i++){ vl = Adafruit_VL6180X(); digitalWrite(i, HIGH); sensor(); delay(100); digitalWrite(i, LOW); } } String sensor(){ float lux = vl.readLux(VL6180X_ALS_GAIN_5); Serial.print("Lux: "); Serial.println(lux); uint8_t range = vl.readRange(); uint8_t status = vl.readRangeStatus(); if (status == VL6180X_ERROR_NONE) { Serial.print("Range: "); Serial.println(range); } // Some error occurred, print it out! if ((status >= VL6180X_ERROR_SYSERR_1) && (status <= VL6180X_ERROR_SYSERR_5)) { Serial.println("System error"); } else if (status == VL6180X_ERROR_ECEFAIL) { Serial.println("ECE failure"); } else if (status == VL6180X_ERROR_NOCONVERGE) { Serial.println("No convergence"); } else if (status == VL6180X_ERROR_RANGEIGNORE) { Serial.println("Ignoring range"); } else if (status == VL6180X_ERROR_SNR) { Serial.println("Signal/Noise error"); } else if (status == VL6180X_ERROR_RAWUFLOW) { Serial.println("Raw reading underflow"); } else if (status == VL6180X_ERROR_RAWOFLOW) { Serial.println("Raw reading overflow"); } else if (status == VL6180X_ERROR_RANGEUFLOW) { Serial.println("Range reading underflow"); } else if (status == VL6180X_ERROR_RANGEOFLOW) { Serial.println("Range reading overflow"); } return string(range); } void setAlarm(boolean state){ alarmState = state; }
Что я уже пробовал:
Ссылка Arduino уроки на область видимости переменной плюс Arduino и форумы и StackOverflow.
KarstenK
Компилятор сказал вам правду. Вам нужно изучить синтаксис языка. Это позволит вам сэкономить много времени.