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

Arduino入门教程:使用按键开关控制LED灯

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

Arduino入门教程:使用按键开关控制LED灯

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

Arduino是一种非常流行的开源电子原型平台,它可以让用户通过编程来控制各种电子元件。本文将介绍如何使用Arduino开发板和按键开关来控制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-else语句:

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

运行结果

完成硬件连接并上传代码后,打开Arduino IDE的串口监视器,设置波特率为9600。此时,每当你按下开关按钮,LED灯的状态就会在亮和灭之间切换,同时串口监视器会显示按钮的状态信息。

总结

通过本教程,你已经学会了如何使用Arduino开发板和按键开关来控制LED灯。这是一个非常基础但非常实用的项目,可以帮助你理解Arduino的基本输入输出控制原理。希望这个教程对你有所帮助,如果有什么问题,欢迎在评论区留言讨论。

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