C++ 为什么我没有在Arduino的作用域中声明变量而收到错误消息?

C++ 为什么我没有在Arduino的作用域中声明变量而收到错误消息?,c++,C++,我正在制作一个紫外线指数仪,这是我从无人机工作室(32:16)得到的,目前我刚刚按照他使用的代码进行操作,但是我收到了一条错误消息。我已经检查了代码,它似乎与视频中的相同 我复制了下面的代码 // Include Wire Library for I2C #include <Wire.h> // Include Liquid NewLiquidCrystal for I2C #include <LiquidCrystal_I2C.h> // Include AdaFr

我正在制作一个紫外线指数仪,这是我从无人机工作室(32:16)得到的,目前我刚刚按照他使用的代码进行操作,但是我收到了一条错误消息。我已经检查了代码,它似乎与视频中的相同

我复制了下面的代码

// Include Wire Library for I2C
#include <Wire.h>

// Include Liquid NewLiquidCrystal for I2C
#include <LiquidCrystal_I2C.h>

// Include AdaFruit SI1145 Library
#include <Adafruit_SI1145.h>

// Define LCD pinout
const int en = 2, rw = 1, rs = 0, d4 = 4, d5 = 5, d6 = 6, d7 = 7, bl=3;

// Define I2C Address
const int i2c_addr = 0x3F;

// Define object lcd
LiquidCrystal_I2C lcd(i2c_addr, en, rw, d4, d5, d6, d7, bl, POSITIVE);

// Define object uv
Adafruit_SI1145 uv = Adafruit_SI1145();

void setup() {
  // Set display type as 16 char, 2 rows
  lcd.begin(16,2);

  // Initialise UV sensor
  uv.begin();
  }

void loop() {
  // Read UV level
  float UVindex = uv.readUV();
  // Divide by 100 for UV index
  UVindex /= 100.0;

  // Display UV Index on LCD

  // Clear the display
  lcd.clear();

  // Print on top line
  lcd.setCursor(0,0);
  lcd.print("Uv Index: ");
  lcd.print(UVindex);

  // Print bottom line
  lcd.setCursor(0,1);

  if (UVindex < 3.0) {
    lcd.print("Low UV Level");
    }
  else if (UVindex >= 3 && UVindex < 6) {
    lcd.print("Medium UV Level");
    }
  else if (UVindex >= 6 && UVindex < 8) {
    lcd.print("High UV Level");
    }
  else {
    lcd.print("Extreme High UV Level");
    }
  
  delay (1000);
  }
//包括I2C的导线库
#包括
//包括用于I2C的液晶
#包括
//包括AdaFruit SI1145库
#包括
//定义LCD引脚
常数int en=2,rw=1,rs=0,d4=4,d5=5,d6=6,d7=7,bl=3;
//定义I2C地址
常数int i2c_addr=0x3F;
//定义对象lcd
液晶显示器(I2C地址、en、rw、d4、d5、d6、d7、bl、正极);
//定义对象uv
Adafruit_SI1145 uv=Adafruit_SI1145();
无效设置(){
//将显示类型设置为16字符,2行
lcd.begin(16,2);
//初始化紫外线传感器
uv.begin();
}
void循环(){
//读取紫外线电平
float UVindex=uv.readUV();
//除以100表示紫外线指数
紫外线指数/=100.0;
//在LCD上显示紫外线指数
//清除显示器
lcd.clear();
//在顶行打印
lcd.setCursor(0,0);
lcd.打印(“紫外线指数:”);
打印(UVindex);
//打印底线
lcd.setCursor(0,1);
如果(紫外线指数<3.0){
lcd.打印(“低紫外线水平”);
}
否则如果(UVindex>=3&&UVindex<6){
lcd.打印(“中等紫外线水平”);
}
否则如果(UVindex>=6&&UVindex<8){
lcd.打印(“高紫外线水平”);
}
否则{
lcd.打印(“极高紫外线水平”);
}
延迟(1000);
}
我收到的错误消息如下:

UV_传感器_v1:17:61:错误:未在此范围内声明“正” 液晶显示器(I2C地址、en、rw、d4、d5、d6、d7、bl、正极); ^~~~~~~~ 退出状态1
“阳性”未在此范围内声明

我们需要查看所有代码,以便有上下文来诊断问题。您似乎没有
包括库。您必须包含文件目录和代码,以便我们能够查看您是否真的包含了库或放错了地方。@Isabella Chapman您希望哪个头文件为
正片
?@SCCC-liquidcystal for I2C-在上下文中,它们应该是连接到LCDdisplay@icuser快速浏览头文件不会显示符号正数的任何定义。grep查找arduino include目录中的正字符串。我怀疑代码的原始作者会修改其中一个头文件并定义这个符号