我有一个问题,我的代码最终在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;
}
}
任何建议都会很棒。
答案 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)