当前位置:首页 > 文章 > 硬件 > 正文内容

ESP32 使用按键控制LED灯

硬件2周前 (08-13)

单灯

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);
      }
    }
  }




}


转载请注明出处。

本文链接:http://pythonopen.com/?id=7962

返回列表

上一篇:2841AS

没有最新的文章了...

相关文章

内存条的4RX4和8RX4分别是什么

内存条的 4Rx4 和 8Rx4 是描述其物理 Bank 组织和数据位宽的编码方式,具体含义如下:1...

5161AS共阴极数码管+5161BS共阳极数码管

5161AS共阴极数码管+5161BS共阳极数码管

5161AScom接GND,针脚接1k电阻接GPIO,int pin_1 =&n...

2510SR-1

2510SR-1

gpio接1k电阻接1脚,20脚接GND,以此类推。  int pin...

2841AS

2841AS

com接1k电阻接gpioint pin1 = 4; int&nbs...