之前我们的LED灯在我们点亮以后,他只能一直在那里工作,如果我们想要随时打开或者关闭它该怎么办呢?一个很简单的方法就是加上一个按键控制,使我们的LED可以控制。
电脑,windows系统
零知开发板
micro-usb线
LED灯一个
按键开关1个
220Ω 电阻1个
10kΩ 电阻1个
面包板一个+若干跳线
1、打开零知实验室软件开发工具,然后新建项目,输入以下代码:
2、按照之前的方式先【编译】,然后【上传】到开发板中。
/**
* 文件: KEY-LED-test.ino
* 作者: 零知实验室
* 时间: 2018/06/25 11:38
* 说明:
**/
int ledPin = 3;//LED连接到零知开发板的3脚
int keyPin = 6;//按键连接到零知开发板的6脚用于检测按键的状态
int inputValue = 0;//用于存放6脚按键的电平状态
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(keyPin, INPUT);
digitalWrite(ledPin, HIGH);
}
void loop() {
inputValue = digitalRead(keyPin);//读取6脚的电平状态,并赋值给inputValue
delay(200);
inputValue = digitalRead(keyPin);
if(inputValue == HIGH)//按键按下
{
digitalWrite(ledPin, LOW);
}else{ //按键释放
digitalWrite(ledPin, HIGH);
}
}
上面步骤成功完成后,我们就可以看到预期的结果了,如下
补充:简介10kΩ电阻的作用以及按键消抖
电路中用到的 10kΩ 电阻是下拉电阻,其作用是将原本不稳定的6号脚保持在一个确定的低电平状态。结合教程直观说明,如果不加下拉电阻,不稳定的电路容易产生干扰信号,容易产生高电平误判,导致未按下按键时LED也亮了,与之对应的还有上拉电阻,感兴趣的小伙伴可以去学习相关电路知识。
或许有些小伙伴会发现我们读取了两次6号脚的状态,并且在第一次读取后还加入了一段延时,其实这个作用就是按键消抖,我们使用的按键并不是按下后马上达到闭合状态,松开不是马上就完全断开,在过程中会有不可避免的抖动,为了保证按键每次按下只产生一次闭合作用,我们就需要使用消抖。