发布信息

数字I/O通过控制数字引脚输出来控制LED灯亮灭

作者:软荐小编      2024-03-01 16:07:37     221

前面介绍了Arduino数字I/O,通过控制数字引脚输出来控制LED灯。 本文将介绍数字I/O的输入功能led限流电阻计算软件,通过检测按钮状态来控制LED灯的亮灭,实现人为可控LED灯的亮灭。

1. 实验材料

Uno R3开发板

支持USB数据线

面包板和支撑电缆

1 个 LED 灯

1 220Ω电阻

1 个触摸按钮

在实验中,我们使用了触摸按钮。 常见的有2针按钮和4针按钮。 它们的内部结构如下图所示:

led限流电阻计算软件_led限流电阻计算器下载_限流电阻计算器

按键内部结构

当按下按钮时,按钮两端接通led限流电阻计算软件,松开时,两端再次断开。

2. 实验步骤

根据原理图搭建电路

直插式LED灯负极接开发板的GND,正极接220Ω限流电阻,电阻另一端接开发板数字脚9木板。 按钮一端连接开发板的GND,另一端连接数字引脚2。

实验原理图如下所示:

限流电阻计算器_led限流电阻计算器下载_led限流电阻计算软件

实验示意图

物理连接图如下所示:

物理连接图

led限流电阻计算软件_led限流电阻计算器下载_限流电阻计算器

新建一个草图,复制以下代码替换自动生成的代码并保存。

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()跳过抖动不稳定的状态,即在软件中消除抖动。

不使用内部上拉电阻,而是在电路上为按钮添加上拉电阻或下拉电阻,也可以达到同样的效果。

相关内容 查看全部