ESP32 使用按键控制LED灯
单灯
int led1_pin = 12;
int button1_pin = 4;
bool logic1 = false;
void setup() {
pinMode(led1_pin, OUTPUT);
pinMode(button1_pin, INPUT_PULLDOWN); // 使用下拉电阻
}
void loop() {
//-------------------------------
if (digitalRead(button1_pin) == HIGH) {
delay(10); // 简单消抖
if (digitalRead(button1_pin) == HIGH) {
// 切换 LED 状态
if (logic1) {
digitalWrite(led1_pin, LOW);
} else {
digitalWrite(led1_pin, HIGH);
}
logic1 = !logic1; // 翻转标志
// 可选:等待按钮释放,防止一次按下多次触发
while (digitalRead(button1_pin) == HIGH) {
delay(10);
}
}
}
}双灯
int led1_pin = 12;//led灯阳脚
int led2_pin = 1;
int button1_pin = 4;
int button2_pin = 5;
bool logic1 = false;
bool logic2 = false;
void setup() {
pinMode(led1_pin, OUTPUT);
pinMode(led2_pin, OUTPUT);
pinMode(button1_pin, INPUT_PULLDOWN); // 使用下拉电阻
pinMode(button2_pin, INPUT_PULLDOWN); // 使用下拉电阻
}
void loop() {
//-------------------------------
if (digitalRead(button1_pin) == HIGH) {
delay(10); // 简单消抖
if (digitalRead(button1_pin) == HIGH) {
// 切换 LED 状态
if (logic1) {
digitalWrite(led1_pin, LOW);
} else {
digitalWrite(led1_pin, HIGH);
}
logic1 = !logic1; // 翻转标志
// 可选:等待按钮释放,防止一次按下多次触发
while (digitalRead(button1_pin) == HIGH) {
delay(10);
}
}
}
//--------------------------------
if (digitalRead(button2_pin) == HIGH) {
delay(10); // 简单消抖
if (digitalRead(button2_pin) == HIGH) {
// 切换 LED 状态
if (logic2) {
digitalWrite(led2_pin, LOW);
} else {
digitalWrite(led2_pin, HIGH);
}
logic2 = !logic2; // 翻转标志
// 可选:等待按钮释放,防止一次按下多次触发
while (digitalRead(button2_pin) == HIGH) {
delay(10);
}
}
}
}转载请注明出处。


