功能性:
当用户按下大圆顶按钮时,Arduino的状态应在Arduino的串行监视器上从' 0' / LOW变为' 1' / HIGH。
问题:
当我在大圆顶按钮上触发时,状态没有从低到高触发,它仍然保持低电平。
我已连接" Push To Make"在连接写入之后,连接到数字引脚2的一侧:BIG DOME PUSH BUTTON。
但此时,触发状态无效,请协助。
const int buttonPin = 2; //the number for the pushbutton pin (DIGITALPIN)
uint8_t btnCnt = 1;
bool outputState = false;
void setup() {
Serial.begin(9600);
//for Push button pin
pinMode(buttonPin, INPUT);
}
void loop() {
outputState |= digitalRead(buttonPin); // if pushButton is high, set outputState (low does nothing)
// Print the output
if (outputState) {
switch (btnCnt++) {
case 100:
--btnCnt;
outputState = false;
break;
}
Serial.println("1");
} else {
Serial.println("0");
btnCnt = 0;
}
delay(100);
}
答案 0 :(得分:1)
语句outputState |= digitalRead(buttonPin);
正在使用OR赋值,因此一旦outputState
设置为1(HIGH),它将永远不会再次返回0(LOW)。这是因为对任何事物和1执行OR将始终导致1。
如果您将此行更改为仅如下所示的分配,您应该会看到您期望的状态更改。
outputState = digitalRead(buttonPin);