c - 真/假开关切换回零
问题描述
所以我尝试制作一个脚本,在真假之间切换布尔值。出于某种原因,每次我按下连接按钮时,布尔值都会变为 1,但随后立即变回 0
bool on = false;
if(digitalRead(inputOn) == HIGH && on == false){
on = true;
digitalWrite(outputLedGreen6, HIGH);
Serial.print("OnStatus");
Serial.println(on);
delay(500);
} else if(digitalRead(inputOn) == HIGH){
on = false;
digitalWrite(outputLedGreen6, LOW);
Serial.print("OnStatus");
Serial.println(on);
delay(500);
}
解决方案
bool on = false;
if(digitalRead(inputOn) == HIGH && on == false){
on = true;
digitalWrite(outputLedGreen6, HIGH);
Serial.print("OnStatus");
Serial.println(on);
delay(500);
}
else if(digitalRead(inputOn) == HIGH ){ //CHANGE THIS LINE HERE
//In the question, there was no else statement. Only 2 ifs. So whenever the first if statement executed, the second would also execute.
on = false;
digitalWrite(outputLedGreen6, LOW);
Serial.print("OnStatus");
Serial.println(on);
delay(500);
}
推荐阅读
- anypoint-studio - 如何在 Mule 4 中使用 Dataweave 显示 json 模式?
- r - 如何按每一行取消列出并在列表中获取唯一元素和原始大小
- typescript - TypeScript 泛型类型推断
- google-cloud-platform - GCP 日志是否包含指标数据
- keras - 如何设计一个接受多个输入的 LSTM 网络
- elasticsearch - kibana 中的 OSmetrics
- http - HTTP 空头
- python - seaborn regplot 非连续拟合问题
- c# - 如何将字符串输出到多个文件
- html - 如何在 XSS 模拟中对 HTML 进行转义