【ESP32】三个按键点亮三个LED,代码解析(调用RBD_Button库函数)

 使用的是ESP32S3开发板,完整代码如下:

#include "RBD_Button.h" // 引入RBD库中的Button类

// 定义按键接口
int button1Pin = 15;
int button2Pin = 32;
int button3Pin = 4;
// 定义LED接口
int led1Pin = 5;
int led2Pin = 21;
int led3Pin = 19;
// 定义LED状态变量,用于记录LED的当前状态(亮或灭)
int led1Status = 0;
int led2Status = 0;
int led3Status = 0;

// 创建按键对象,传入按键引脚和输入模式(上拉)
RBD::Button button1(button1Pin, INPUT_PULLUP);
RBD::Button button2(button2Pin, INPUT_PULLUP);
RBD::Button button3(button3Pin, INPUT_PULLUP);

void setup()
{
  // 设置LED引脚为输出模式
  pinMode(led1Pin, OUTPUT);
  pinMode(led2Pin, OUTPUT);
  pinMode(led3Pin, OUTPUT);
  // 设置按键消抖时间,单位毫秒
  button1.setDebounceTimeout(20);
  // 初始化时将所有LED设置为关闭状态
  digitalWrite(led1Pin, LOW);
  digitalWrite(led2Pin, LOW);
  digitalWrite(led3Pin, LOW);
}

void loop()
{
  // 检查按键1是否被按下
  if(button1.onPressed())
  {
    // 切换LED1的状态(开变关,关变开)
    led1Status = !led1Status;
    // 根据led1Status的值设置LED1的状态
    digitalWrite(led1Pin, led1Status);
  }

  // 检查按键2是否被按下
  if(button2.onPressed())
  {
    // 切换LED2的状态(开变关,关变开)
    led2Status = !led2Status;
    // 根据led2Status的值设置LED2的状态
    digitalWrite(led2Pin, led2Status);
  }

  // 检查按键3是否被按下
  if(button3.onPressed())
  {
    // 切换LED3的状态(开变关,关变开)
    led3Status = !led3Status;
    // 根据led3Status的值设置LED3的状态
    digitalWrite(led3Pin, led3Status);
  }
}

使用此段代码时应注意的事项:

  • 注意下载安装RBD_Button库函数

  •  注意修改按键与LED的引脚号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值