酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

51 按键按一下亮在按一下灭

以下以Arduino为例,给出实现按下一次按键,LED亮,再按一次按键,LED灭的代码。 ```cpp // 定义按键引脚 const int buttonPin = 2; // 定义LED引脚 const int ledPin = 13; // 按键的上一次状态 int lastButtonState = LOW; // 按键的当前状态 int buttonState; // 记录按键按下的次数 int pressCount = 0; // LED的状态 bool ledOn = false; void setup() { // 将按键引脚设置为输入模式 pinMode(buttonPin, INPUT_PULLUP); // 将LED引脚设置为输出模式 pinMode(ledPin, OUTPUT); } void loop() { // 读取按键的当前状态 buttonState = digitalRead(buttonPin); // 检测按键是否按下 if (buttonState == LOW && lastButtonState == HIGH) { // 按键按下,增加按下次数 pressCount++; // 当按下次数为奇数时,LED亮 if (pressCount % 2 == 1) { digitalWrite(ledPin, HIGH); ledOn = true; } // 当按下次数为偶数时,LED灭 else { digitalWrite(ledPin, LOW); ledOn = false; } // 延迟一小段时间,消除按键抖动 delay(50); } // 更新按键的上一次状态 lastButtonState = buttonState; } ``` 额外注意的逻辑点 1. 按键抖动问题:按键在按下和释放的瞬间,会产生短暂的电平抖动,可能会导致程序误判。上述代码中使用了 `delay(50)` 来简单消除抖动,但在对实时性要求较高的场景下,可使用硬件消抖电路或软件滤波算法。 2. 引脚定义:在实际使用时,要确保按键引脚和LED引脚的定义与硬件连接一致,否则程序将无法正常工作。 3. 输入模式:对于按键引脚,使用 `INPUT_PULLUP` 模式,这样按键未按下时引脚为高电平,按下时为低电平。如果使用 `INPUT` 模式,需要外接上拉电阻。 [2025-06-04 10:39:13 | AI写代码神器 | 519点数解答]

相关提问