前面介绍了Arduino数字I/O通过控制数字引脚输出来控制LED灯亮灭。本篇将介绍数字I/O的输入功能通过检测用按键控制led灯亮灭状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的
实验Φ我们用到了轻触用按键控制led灯亮灭,常见的有2脚用按键控制led灯亮灭和4脚用按键控制led灯亮灭其内部结构如下图所示:
当按下用按键控制led燈亮灭时,用按键控制led灯亮灭两端接通当放开时,两端再次断开
-
直插式LED灯负极接开发板GND,正极接220Ω限流电阻,电阻另一端接开发板数字9引脚用按键控制led灯亮灭一端接开发板GND,另一端接数字引脚2
实验原理图如下图所示:
实物连接图如下图所示:
- 新建sketch,拷贝如下代码替換自动生成的代码并进行保存
-
连接开发板,设置好对应端口号和开发板类型进行程序下载。
按下用按键控制led灯亮灭LED灯点亮。放开用按键控制led灯亮灭LED灯熄灭。
- 描述:读取指定数字引脚的值
- 参数:要读取的数字引脚编号
通过digitalRead()函数来读取数字I/O引脚状态然后根据状态去点煷或者熄灭LED灯。需要注意:
-
由于Arduino上电后数字I/O管脚处于悬空状态,此时通过digitalRead()读到的是一个不稳定的值(可能是高也可能是低)。所以通过pinMode()函數设置用按键控制led灯亮灭引脚为上拉输入模式即使用内部上拉电阻,用按键控制led灯亮灭未按下时引脚将为高电平,用按键控制led灯亮灭按下为低电平
-
用按键控制led灯亮灭在按下的过程中,有一段接触未接触的不稳定过程即用按键控制led灯亮灭的抖动。在判断用按键控制led灯煷灭状态时通过delay()延时跳过抖动的不稳定状态,即软件上进行消抖
-
可以不使用内部上拉电阻,在电路上添加用按键控制led灯亮灭的上拉电阻或下拉电阻可达到相同效果。
更多内容欢迎关注我的公众号。 微信扫一扫下方二维码即可关注: