如何做到按一次按键灯亮,按二次灯灭
时间: 2024-05-06 17:14:54 浏览: 182
您可以使用一个计数器来实现这个功能。每次按下按钮时,计数器加 1。当计数器为奇数时,灯亮;当计数器为偶数时,灯灭。
以下是一个简单的示例代码:
```C
#include <stdio.h>
#include <wiringPi.h>
#define BUTTON_PIN 17
#define LED_PIN 18
int main(void)
{
int count = 0;
wiringPiSetupGpio();
pinMode(BUTTON_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
while (1) {
if (digitalRead(BUTTON_PIN) == LOW) {
delay(20); // 延时去抖动
if (digitalRead(BUTTON_PIN) == LOW) {
count++;
if (count % 2 == 1) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
while (digitalRead(BUTTON_PIN) == LOW) {
delay(10); // 延时等待按钮释放
}
}
}
}
return 0;
}
```
在这个示例中,我们使用了 Raspberry Pi 的 GPIO 接口来连接按钮和 LED 灯。其中 `BUTTON_PIN` 定义为按钮的 GPIO 编号,`LED_PIN` 定义为 LED 灯的 GPIO 编号。
在 `main` 函数中,我们首先进行了 GPIO 的初始化,并进入了一个死循环。在循环中,我们检测按钮是否被按下,如果是,就增加计数器的值,并根据计数器的奇偶性来控制 LED 灯的状态。同时,我们也加入了延时去抖动和延时等待按钮释放的代码,以保证程序的稳定性。
希望这个示例能够帮助您实现按一次按键灯亮,按二次灯灭的功能。
阅读全文