我的Arduino代码未上传到此错误消息,我也找不到原因

时间:2018-07-14 10:02:29

标签: arduino

我正在尝试使用我的arduino制作一个反应游戏,它选择一个随机的时间长度,然后再打开内置LED并等待您按下按钮,然后给您快速或慢速的分数,问题是,当我尝试将其上传到arduino(所有设置均正确)时,在某些行上会出现一条错误消息,该行与另一个不同的程序完全相同,并且使用相同的东西并起作用。

const int buttonPin = 4;
const int ledPin1 = 3;
const int ledPin2 = 2;
//~~~~~~~~~~##~~~~~~~~~~\\
int buttonState = 0;
int oldButtonState = 0;
int wait = 0;
bool isLoop = true;
//~~~~~~~~~~##~~~~~~~~~~\\
void setup() {
  Serial.begin(9600);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(buttonPin, INPUT);
}
digitalWrite(LED_BUILTIN, LOW);
//~~~~~~~~~~##~~~~~~~~~~\\
void loop() {
  // put your main code here, to run repeatedly:
  randInt = random(500, 5001);
  delay(randInt);
  digitalWrite(LED_BUILTIN, HIGH);
  while (isLoop == true){
    buttonState = digitalRead(buttonPin);
    if (buttonState == LOW){
      isLoop = false;
    }
  }
  wait = millis() - randInt
  Serial.println(String(wait));
  if (wait <= 1000){
    digitalWrite(ledPin1, HIGH);
  }else{
    digitalWrite(ledPin2, HIGH);
  }
  delay(2000);
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);
}

上面是我的代码,当我尝试上传它时,出现以下错误消息:

  

Arduino:1.8.5(Windows应用商店1.8.10.0)(Windows 10),主板:   “ Arduino / Genuino Uno”

     

Reaction_Game:11:错误:“序列”未命名类型

     

Serial.begin(9600);

     

^

     

Reaction_Game:12:错误:预期的构造函数,析构函数或类型   '('令牌之前的转换

     

pinMode(ledPin1,OUTPUT);

      ^
     

Reaction_Game:13:错误:预期的构造函数,析构函数或类型   '('令牌之前的转换

     

pinMode(ledPin2,OUTPUT);

      ^
     

Reaction_Game:14:错误:预期的构造函数,析构函数或类型   '('令牌之前的转换

     

pinMode(LED_BUILTIN,OUTPUT);

      ^
     

Reaction_Game:15:错误:预期的构造函数,析构函数或类型   '('令牌之前的转换

     

pinMode(buttonPin,INPUT);

      ^
     

Reaction_Game:16:错误:'}'令牌之前的预期声明

     

}

     

^

     

退出状态1“序列”未命名类型

     

此报告将包含“显示详细输出”的更多信息   在文件编辑->首选项中启用了“编译期间”选项。

这是事实,尽管这一行确切:

Serial.begin(96000);

在另一个运行完美的程序中(相同的地方,所有的东西)

有人可以帮我吗?一无所获,我几乎放弃了。

2 个答案:

答案 0 :(得分:0)

1摆脱这些奇怪的无用评论

//~~~~~~~~~~##~~~~~~~~~~\\

2这是无效设置之外的

digitalWrite(LED_BUILTIN, LOW);

这里缺少3个分号

wait = millis() - randInt

4声明randInt,在此行之前插入int

randInt = random(500, 5001);

5个提示1

while (isLoop == true){

可以写为

while (isLoop) {

6技巧2,您不必冗长地字符串化

Serial.println(String(wait));

答案 1 :(得分:0)

以下行在void设置功能之外:

digitalWrite(LED_BUILTIN, LOW);

您还需要输入分号

wait = millis() - randInt

中将int声明为数据类型
randInt = random(500, 5001);