Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谁能解释一下为什么我的c++;arduino的代码不起作用 我用C++编码,以便从用户输入,然后点亮相应的LED。 这是我的密码 int rPin = 13;` int gPin = 12; int yPin = 11; int dTime = 500; String input; //Strings //String red = "red"; String prompt1 = "Enter the color : "; String conformation = "Entered color is "; void setup(){ pinMode(rPin,OUTPUT); pinMode(gPin,OUTPUT); pinMode(yPin,OUTPUT); Serial.begin(9600); } void loop() { Serial.println(prompt1); input = Serial.readString(); while(Serial.available() == 0) { } if (input == "red"){ digitalWrite(rPin,HIGH); delay(dTime); digitalWrite(rPin,LOW); delay(dTime); } else if (input == "green"){ digitalWrite(gPin,HIGH); delay(dTime); digitalWrite(gPin,LOW); delay(dTime); } else if (input == "yellow"){ digitalWrite(yPin,HIGH); delay(dTime); digitalWrite(yPin,LOW); delay(dTime); } // digitalWrite(gPin,HIGH); // digitalWrite(yPin,HIGH);_Arduino_Arduino C++ - Fatal编程技术网

谁能解释一下为什么我的c++;arduino的代码不起作用 我用C++编码,以便从用户输入,然后点亮相应的LED。 这是我的密码 int rPin = 13;` int gPin = 12; int yPin = 11; int dTime = 500; String input; //Strings //String red = "red"; String prompt1 = "Enter the color : "; String conformation = "Entered color is "; void setup(){ pinMode(rPin,OUTPUT); pinMode(gPin,OUTPUT); pinMode(yPin,OUTPUT); Serial.begin(9600); } void loop() { Serial.println(prompt1); input = Serial.readString(); while(Serial.available() == 0) { } if (input == "red"){ digitalWrite(rPin,HIGH); delay(dTime); digitalWrite(rPin,LOW); delay(dTime); } else if (input == "green"){ digitalWrite(gPin,HIGH); delay(dTime); digitalWrite(gPin,LOW); delay(dTime); } else if (input == "yellow"){ digitalWrite(yPin,HIGH); delay(dTime); digitalWrite(yPin,LOW); delay(dTime); } // digitalWrite(gPin,HIGH); // digitalWrite(yPin,HIGH);

谁能解释一下为什么我的c++;arduino的代码不起作用 我用C++编码,以便从用户输入,然后点亮相应的LED。 这是我的密码 int rPin = 13;` int gPin = 12; int yPin = 11; int dTime = 500; String input; //Strings //String red = "red"; String prompt1 = "Enter the color : "; String conformation = "Entered color is "; void setup(){ pinMode(rPin,OUTPUT); pinMode(gPin,OUTPUT); pinMode(yPin,OUTPUT); Serial.begin(9600); } void loop() { Serial.println(prompt1); input = Serial.readString(); while(Serial.available() == 0) { } if (input == "red"){ digitalWrite(rPin,HIGH); delay(dTime); digitalWrite(rPin,LOW); delay(dTime); } else if (input == "green"){ digitalWrite(gPin,HIGH); delay(dTime); digitalWrite(gPin,LOW); delay(dTime); } else if (input == "yellow"){ digitalWrite(yPin,HIGH); delay(dTime); digitalWrite(yPin,LOW); delay(dTime); } // digitalWrite(gPin,HIGH); // digitalWrite(yPin,HIGH);,arduino,arduino-c++,Arduino,Arduino C++,我的arduino电路连接没有问题,我对它进行了三次检查…它表明在arduino IDE中蝙蝠右侧示例的第一行中有额外的字符。至于程序的逻辑,我假设问题出在input=Serial.readString()放置在任何串行数据可用之前 但是,在等待任何串行输入时使用循环应该有这样的原因,否则我建议重新考虑这个实现,我在下面所做的。以下是更正的版本: int rPin = 13; int gPin = 12; int yPin = 11; int dTime = 500; //Strings //S

我的arduino电路连接没有问题,我对它进行了三次检查…

它表明在arduino IDE中蝙蝠右侧示例的第一行中有额外的字符。至于程序的逻辑,我假设问题出在
input=Serial.readString()放置在任何串行数据可用之前

但是,在等待任何串行输入时使用循环应该有这样的原因,否则我建议重新考虑这个实现,我在下面所做的。以下是更正的版本:

int rPin = 13;
int gPin = 12;
int yPin = 11;
int dTime = 500;
//Strings
//String red = "red";
String prompt1 = "Enter the color : ";
String conformation = "Entered color is ";

void setup(){
  pinMode(rPin,OUTPUT);
  pinMode(gPin,OUTPUT);
  pinMode(yPin,OUTPUT);
  Serial.begin(9600);
  Serial.println(prompt1);
}
void loop() {
  String input;
  while (Serial.available() > 0) {
    String input = Serial.readStringUntil('\n'); // Read until newline
    input.trim(); // Clean up whitespace 
    if (input == "red"){
      digitalWrite(rPin,HIGH);
      delay(dTime);
      digitalWrite(rPin,LOW);
      delay(dTime);
    } else if (input == "green"){
      digitalWrite(gPin,HIGH);
      delay(dTime);
      digitalWrite(gPin,LOW);
      delay(dTime);
    } else if (input == "yellow"){
      digitalWrite(yPin,HIGH);
      delay(dTime);
      digitalWrite(yPin,LOW);
      delay(dTime);
   }
  }
}

在调用
Serial.available()
的循环之后,您不需要调用
Serial.readString()
?你在输入之前调用它。我的ARDINO不工作的C++代码不是一个好的问题描述。你应该描述你对输入的期望和你得到的。什么是
String
?如果是C样式字符串的typedef,则必须使用
strcmp()
来比较它们,而不是
=
。但是如果它像C++代码> STD::String 那么代码> = = /COD>可以。您可以在尝试读取<代码>输入< /代码>时,尝试发布更多有用的帮助。