利用面包板搭建三个LED灯电路(LED1、LED2、LED3)编写程序,完成以下功能。设置一个按钮,控制三个LED灯的亮灭,每按下一次按钮,会切换LED灯的状态。第一次按下按键,LED1和LED3亮,灭,第二次按下,LED2和LED3亮,LED1灭;LED灯选用PB□引脚。
时间: 2024-05-13 08:18:32 浏览: 179
按键控制LED灯的亮灭.C
5星 · 资源好评率100%
以下是实现功能的代码,使用了Arduino语言:
```
const int buttonPin = 2; // 定义按钮引脚
const int led1Pin = 5; // 定义LED1引脚
const int led2Pin = 6; // 定义LED2引脚
const int led3Pin = 7; // 定义LED3引脚
int led1State = LOW; // 初始LED1状态为灭
int led2State = LOW; // 初始LED2状态为灭
int led3State = HIGH; // 初始LED3状态为亮
int buttonState; // 记录按钮状态
int lastButtonState = LOW; // 初始按钮状态为松开
long lastDebounceTime = 0; // 最后一次按下或松开按钮的时间
long debounceDelay = 50; // 消除抖动的延时
void setup() {
pinMode(buttonPin, INPUT); // 按钮引脚设为输入模式
pinMode(led1Pin, OUTPUT); // LED1引脚设为输出模式
pinMode(led2Pin, OUTPUT); // LED2引脚设为输出模式
pinMode(led3Pin, OUTPUT); // LED3引脚设为输出模式
}
void loop() {
int reading = digitalRead(buttonPin); // 读取按钮状态
// 消除按钮抖动
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
// 按钮按下时切换LED状态
if (buttonState == HIGH) {
if (led1State == LOW && led2State == LOW && led3State == HIGH) {
led1State = HIGH;
led3State = LOW;
} else if (led1State == HIGH && led2State == LOW && led3State == LOW) {
led1State = LOW;
led2State = HIGH;
} else if (led1State == LOW && led2State == HIGH && led3State == LOW) {
led2State = LOW;
led3State = HIGH;
}
// 更新LED状态
digitalWrite(led1Pin, led1State);
digitalWrite(led2Pin, led2State);
digitalWrite(led3Pin, led3State);
}
}
}
lastButtonState = reading;
}
```
将以上代码复制到Arduino IDE中,上传到开发板后即可实现所需功能。按下按钮时,LED灯的状态会按照题目要求进行切换。
阅读全文