问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Arduino基础入门:按键开关控制LED灯

创作时间:
作者:
@小白创作中心

Arduino基础入门:按键开关控制LED灯

引用
CSDN
1.
https://blog.csdn.net/2401_85774947/article/details/141719159

按键开关控制LED灯

一、前言

让我们开始学习如何使用Arduino开发板控制LED灯。这是一个基础的入门项目,通过按键开关来控制LED灯的亮灭。

二、准备工作

硬件:

  • Arduino Uno开发板
  • 3~5V的LED灯(发光二极管)一个
  • 220Ω电阻一个
  • 直插式四脚开关按钮一个
  • 公对公杜邦线若干和面包板一个

软件:

  • Arduino IDE(未安装的读者可以参考我的另一篇博客进行安装)

电路图:

三、程序代码

#define pin_led 7 // 控制LED的亮灭
#define pin_button 6  // 用于读取按钮状态
bool flag = false;  // 切换LED状态的标志位(每次按下取反)
bool button_down_flag = false;  // 用于消抖,表按钮按下

void setup() {
  Serial.begin(9600);
  pinMode(pin_led, OUTPUT);  // LED引脚设为输出模式
  pinMode(pin_button, INPUT_PULLUP); // 把控制开关引脚设为上拉状态(高电平)
}

void loop() {
  if(digitalRead(pin_button) == LOW){
    button_down_flag = true;  // 表示按钮已经按下(没弹起)
    Serial.println("按钮按下");
    delay(50);  // 延迟50ms
    // 再次检测,如果pin_button为高电平,表示已经弹起
    if(digitalRead(pin_button) == HIGH && button_down_flag){
      Serial.println("按钮弹起");
      flag = !flag;  // 切换状态
      digitalWrite(pin_led, flag == true ? HIGH : LOW);  // 写入 
      button_down_flag = false;  // 重新赋值
    }
  }
}

对于这一行代码

digitalWrite(pin_led, flag == true ? HIGH : LOW);

用到了三元运算符,等价于下面的代码。

if(flag == true){
  digitalWrite(pin_led, HIGH);
} else {
  digitalWrite(pin_led, LOW);
}

四、运行结果

完成准备工作后,为Arduino烧录上面的代码,成功后打开串口调试,并设置波特率为9600。然后我们可以开始测试,多次按下按键,可以发现LED灯的状态一直在开、关、开…,灵敏度相当不错,并且串口调试窗口会打印当时按钮的状态,如果对应上了,说明操作成功。

五、结束语

通过本教程,你已经学会了如何使用Arduino和按键开关控制LED灯。希望这个基础项目能帮助你更好地理解Arduino开发板的基本操作和编程逻辑。如果有任何问题或建议,欢迎在评论区留言。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号