Arduino程序设计(二) 按键控制LED灯
创始人
2024-01-21 21:12:04
0

按键控制LED灯程序设计

  • 前言
  • 一、按键控制LED灯——内部上拉(基础)
  • 二、按键控制LED灯——外部上拉(基础)
  • 三、按键控制LED灯(进阶)
  • 总结
  • 参考文献


前言

  • 本文主要介绍三种按键控制LED灯的实现方式,分别是内部上拉实现,外部上拉实现以及按键控制LED灯升级版。
  • 通过软硬件结合的方式,更好地理解Arduino编程,熟悉库函数的使用。

一、按键控制LED灯——内部上拉(基础)

  • 结合数字输入输出功能,制作一个可控制的LED。
  • 功能实现:按住按键时,点亮LED,放开按键后,熄灭LED的效果。
  • 常见的2脚按键和4脚按键,内部如下图所示:

在这里插入图片描述

  • 上述按键为常开按键,当按下按键时,就会接通按键两端,放开时,两端会再次断开。
  • 使用内部上拉电阻,实现按键控制LED灯的电路图如下图所示:
    在这里插入图片描述
    在这里插入图片描述

代码实现:

//内部上拉,按键控制LED亮灭int Button = 12;                     //定义全局变量Button,Button对应GPIO12
int MCU_LED = 2;                     //定义全局变量MCU_LED,MCU_LED对应GPIO2void setup() {pinMode(Button, INPUT_PULLUP);     //Button定义为内部上拉模式pinMode(MCU_LED, OUTPUT);          //MCU_LED定义为输出引脚digitalWrite(MCU_LED, HIGH);       //初始状态,熄灭灯
}void loop() {if(digitalRead(Button) == LOW){digitalWrite(MCU_LED, LOW);     //按键按下,点亮灯}else{digitalWrite(MCU_LED, HIGH);    //按键未按下,熄灭灯}
}

二、按键控制LED灯——外部上拉(基础)

  • 上拉电阻:电阻连接到VCC,可以稳定I/O口电平,将引脚稳定在高电位。
  • 使用外部上拉电阻,实现按键控制LED灯的电路图如下图所示:

在这里插入图片描述
代码实现:

//外部上拉,按键控制LED亮灭int Button = 12;
int MCU_LED = 2;void setup() {pinMode(Button, INPUT);       //Button定义为外部上拉模式pinMode(MCU_LED, OUTPUT);      //MCU_LED定义为输出引脚digitalWrite(MCU_LED, HIGH);   //初始状态,熄灭灯
}void loop() {if(digitalRead(Button) == LOW){digitalWrite(MCU_LED, LOW);   //按键按下,点亮灯}else{digitalWrite(MCU_LED, HIGH);   //按键未按下,熄灭灯}
}

三、按键控制LED灯(进阶)

  • 使用外部上拉电阻,按键控制LED灯,硬件电路图同第二部分,按键控制LED灯——外部上拉(基础)。
  • 实现功能:按一下按键,点亮LED;再按一下按键,熄灭LED。
  • 实验现象
  • ① 按一下按键,点亮LED;
  • ② 再按一下按键,熄灭LED;
  • ③ 长按按键,LED灯闪烁,500ms点亮,500ms熄灭。

代码实现:

//外部上拉,按键控制LED。
//按一下按键,点亮LED;再按一下按键,熄灭LED。int Button = 12;
int MCU_LED = 2;
boolean LED_State = false;               //定义boolean全局变量,boolean定义的变量只有true和false两种状态void setup() {pinMode(Button, INPUT);               //Button定义为外部上拉模式pinMode(MCU_LED, OUTPUT);             //MCU_LED定义为输出引脚digitalWrite(MCU_LED, HIGH);          //初始状态,熄灭灯
}void loop() {if(digitalRead(Button) == LOW){      //判断按键按下delay(500);                        //延时500ms,按键消抖LED_State = !LED_State;            //LED灯状态取反}if(LED_State == true){              //判断LED灯状态为真digitalWrite(MCU_LED, LOW);      //按键按下,点亮灯}else{digitalWrite(MCU_LED, HIGH);     //按键未按下,熄灭灯}
}

总结

  • 本文主要介绍三种按键控制LED灯的实现方式,其中,第三部分介绍按键控制LED灯,实现按键控制LED灯启闭,满足了日常生活中按键控制LED灯基本功能。

参考文献

参考文献1: 按键控制LED实验
参考文献2: Arduino程序设计(一) 流水灯+呼吸灯

上一篇:图像生成模型简介

下一篇:39、Spring AMQP

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...