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
Arduino按钮触发器不';不要将状态从低变高_Arduino_Arduino Uno - Fatal编程技术网

Arduino按钮触发器不';不要将状态从低变高

Arduino按钮触发器不';不要将状态从低变高,arduino,arduino-uno,Arduino,Arduino Uno,功能: 当用户按下大圆顶按钮时,Arduino的串行监视器上的Arduino状态应从“0”/低变为“1”/高 问题: 当我在大圆顶按钮上触发时,状态并没有从低到高触发,它仍然保持低 我已将连接的“按键制作”端连接到数字插脚2,连接记录如下: 但此时,触发器状态不工作,请协助 const int buttonPin=2//按钮pin(数字pin)的编号 uint8_t btnCnt=1; bool outputState=false; 无效设置(){ Serial.begin(9600); //用

功能:

当用户按下大圆顶按钮时,Arduino的串行监视器上的Arduino状态应从“0”/低变为“1”/高

问题:

当我在大圆顶按钮上触发时,状态并没有从低到高触发,它仍然保持低

我已将连接的“按键制作”端连接到数字插脚2,连接记录如下:

但此时,触发器状态不工作,请协助

const int buttonPin=2//按钮pin(数字pin)的编号
uint8_t btnCnt=1;
bool outputState=false;
无效设置(){
Serial.begin(9600);
//用于按钮销
pinMode(按钮输入,输入);
}
void循环(){
outputState |=digitalRead(buttonPin);//如果按钮处于高位,则设置outputState(低位不执行任何操作)
//打印输出
如果(输出状态){
交换机(btnCnt++){
案例100:
--btnCnt;
outputState=false;
打破
}
序列号。打印号(“1”);
}否则{
Serial.println(“0”);
btnCnt=0;
}
延迟(100);
}

语句
outputState |=digitalRead(buttonPin)
正在使用OR赋值,因此一旦
outputState
设置为1(高),它将永远不会再次返回0(低)。这是因为对任何事物和1执行OR将始终导致1


如果按如下所示将此行更改为一个赋值,您应该会看到预期的状态更改

代码
outputState |=digitalRead(按钮输入)
假设返回的
HIGH
将等同于
true
LOW
等同于
false
。尝试替换为
outputState=(HIGH==digitalRead(buttonPin))@J.Piquard,还是没有triggering@Luke这是一个很容易调试的问题,您可以随意使用硬件。。您可以首先在上述指令之后添加
Serial.println(outputState)
,然后查看该变量中的值。
outputState = digitalRead(buttonPin);