前面介绍了Arduino数字I/O,通过控制数字引脚输出来控制LED灯。 本文将介绍数字I/O的输入功能led限流电阻计算软件,通过检测按钮状态来控制LED灯的亮灭,实现人为可控LED灯的亮灭。
1. 实验材料
Uno R3开发板
支持USB数据线
面包板和支撑电缆
1 个 LED 灯
1 220Ω电阻
1 个触摸按钮
在实验中,我们使用了触摸按钮。 常见的有2针按钮和4针按钮。 它们的内部结构如下图所示:
按键内部结构
当按下按钮时,按钮两端接通led限流电阻计算软件,松开时,两端再次断开。
2. 实验步骤
根据原理图搭建电路
直插式LED灯负极接开发板的GND,正极接220Ω限流电阻,电阻另一端接开发板数字脚9木板。 按钮一端连接开发板的GND,另一端连接数字引脚2。
实验原理图如下所示:
实验示意图
物理连接图如下所示:
物理连接图
新建一个草图,复制以下代码替换自动生成的代码并保存。
int 按钮引脚 = 2; //按钮引脚定义
int LEDPin = 9; // LED灯管脚定义
int 按钮状态 = 0; //存储按钮状态值
无效设置(){
pinMode(ledPin, 输出); //设置LED引脚输出模式
pinMode(buttonPin, INPUT_PULLUP); //设置按钮引脚上拉输入模式
无效循环(){
按钮状态 = digitalRead(buttonPin); //读取按钮返回状态值
if (buttonState == LOW) { // 如果按钮被按下
延迟(80); //等待跳过按键抖动不稳定的过程
if (buttonState == LOW) // 如果按钮被按下
digitalWrite(ledPin, 高); //点亮LED灯
别的 {
digitalWrite(ledPin, 低); // 关闭 LED 灯
连接开发板,设置对应的端口号和开发板类型,下载程序。
程序下载
3 实验现象
按下按钮,LED 灯就会亮起。 松开按钮,LED 灯将关闭。
实验现象
4. 功能介绍
数字读取()
说明: 读取指定数字引脚的值
函数原型:digitalRead(pin)
参数:要读取的数字引脚号
返回值:HIGH(1) 或 LOW(0)
由于Arduino上电后数字I/O引脚处于浮空状态,因此通过digitalRead()读取的是一个不稳定的值(可能是高电平,也可能是低电平)。 因此,通过pinMode()函数将按钮引脚设置为上拉输入模式。 即使有内部上拉电阻,当按钮未按下时该引脚将为高电平,而当按下按钮时该引脚将为低电平。
在按下按钮的过程中,存在一个接触和非接触的不稳定过程,即按钮抖动。 在判断按键状态时,通过delay()跳过抖动不稳定的状态,即在软件中消除抖动。
不使用内部上拉电阻,而是在电路上为按钮添加上拉电阻或下拉电阻,也可以达到同样的效果。