Arduino编程if else错误

时间:2017-10-30 21:49:42

标签: c++ arduino

我有一个问题,我的代码最终在else块中。由于没有明显的原因,它会为继电器供电,然后跳转到其他地方。

int relayValue = 0;
#define delays 10

void loop() {
  if(relayValue = 1) {
    analogWrite(relay, 255);
    delay(delays);
    relayValue = 0;
  }
  if (relayValue = 0) {
    analogWrite(relay, 0);
    delay(delays);
    relayValue = 1;
  } else {
    analogWrite(fan, 255);
    relayValue = 0;
  }
}

任何建议都会很棒。

2 个答案:

答案 0 :(得分:1)

要比较if语句中的两个值,请使用两个等号。

<强>错误

if(relayValue = 1)

<强>正确

if(relayValue == 1)

http://www.cplusplus.com/doc/tutorial/control/

一个&#39; =&#39; sign是为变量赋值。

int x = 5 //Variable x with type 'Integer' has value 5
x == 6 //Comparison: Does x equals to 6?? Will return false because x is 5

答案 1 :(得分:-3)

这是因为语法错误。 你已经再次使用了If If。它应该是:if ..else if ..else

此外,“=”应替换为“==”。符号“=”指定一个varibale值,bu“==”测试它是否相等 变化:

"o

致:

 if (relayValue = 0)

语法(https://www.tutorialspoint.com/cplusplus/cpp_if_else_statement.htm) C ++中if ... else if> else语句的语法是 -

else if (relayValue = 0)