我正在尝试编写代码,以使LED在关闭时点亮,并在打开时使用触觉按钮开关关闭。我已经写好了connectionPicture库中正确的代码,但是我只能在关闭时打开它,然后再关闭它。在极少数情况下,在多次按下此键后,当我按下按钮时,LED会熄灭,但是我确定那不是应该的。
#include <wiringPi.h>
int main (void)
{
wiringPiSetup ();
pinMode (0, OUTPUT);
pinMode (1, INPUT);
digitalWrite (0, LOW);
for(;;)
{
if(digitalRead (1) == LOW)
{
if(digitalRead (0) == HIGH)
digitalWrite (0, LOW);
else if(digitalRead (0) == LOW)
digitalWrite (0, HIGH);
}
}
return 0;
}
我已经附上了电路接线图。
2
您的媒体库中是否包含此开关的去抖动功能?如果不是,您可能成功关闭了LED,然后立即将其重新打开。一旦检测到状态变化,请在短时间内忽略所有进一步的检测。
保持包含led(ON / OFF)当前状态(可能通过枚举)的局部变量不要尝试读取输出引脚的状态。而是检测输入状态的边沿从输入引脚的高到低变化。然后更新局部变量的当前状态:outputimagevar =(outputimagevar == HIGH)?低高; 然后digitalWrite(0,outputimagevar); 然后,当输入从LOW变为HIGH时,将HIGH复位为LOW检测逻辑。同样,确保“去抖动”输入状态,也许可以确保(例如)连续3次读取都显示相同状态。