一、前言
不知道该说些什么,给大家来一句名言吧(狗头):
辛勤的蜜蜂永没有时间悲哀。——布莱克
二、准备工作
硬件:
- 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灯的介绍就到这里了,如果有帮助到您,留个痕迹,点个赞即可哦,咱们后会有期!