Arduino基础入门篇07—按键控制LED灯

前面介绍了Arduino数字I/O,通过控制数字引脚输出来控制LED灯亮灭。本篇将介绍数字I/O的输入功能,通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的。

1. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • 1个LED灯
  • 1个220Ω电阻
  • 1个轻触按键

实验中我们用到了轻触按键,常见的有2脚按键和4脚按键,其内部结构如下图所示:

按键内部结构

当按下按键时,按键两端接通,当放开时,两端再次断开。

2. 实验步骤

  1. 根据原理图搭建电路

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

    实验原理图如下图所示:

实验原理图

实物连接图如下图所示:

实物连接图

  1. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
/*
 * Digital_Button
 * 通过按键控制LED灯亮灭
 */

int buttonPin = 2;     // 按键的管脚定义
int ledPin =  9;      // LED灯管脚定义

void setup() {
  pinMode(ledPin, OUTPUT);  //设置LED管脚输出模式
  pinMode(buttonPin, INPUT_PULLUP); //设置按键管脚上拉输入模式
}

void loop() {
  if (digitalRead(buttonPin) == LOW) { // 若按键被按下
    delay(80); //等待跳过按键抖动的不稳定过程
    if (digitalRead(buttonPin) == LOW) // 若按键被按下
    {      
      digitalWrite(ledPin, HIGH); // 点亮LED灯
    }
  }
  else {   
    digitalWrite(ledPin, LOW); // 熄灭LED灯
  }

}
  1. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

    程序下载

3. 实验现象

按下按键,LED灯点亮。放开按键,LED灯熄灭。

实验现象

4. 函数介绍

digitalRead()

  • 描述:读取指定数字引脚的值
  • 函数原型:digitalRead(pin)
  • 参数:要读取的数字引脚编号
  • 返回值:HIGH(1)或LOW(0)

5. 总结分析

通过digitalRead()函数来读取数字I/O引脚状态,然后根据状态去点亮或者熄灭LED灯。需要注意:

  • 由于Arduino上电后,数字I/O管脚处于悬空状态,此时通过digitalRead()读到的是一个不稳定的值(可能是高,也可能是低)。所以通过pinMode()函数设置按键引脚为上拉输入模式。即使用内部上拉电阻,按键未按下时,引脚将为高电平,按键按下为低电平。

  • 按键在按下的过程中,有一段接触未接触的不稳定过程,即按键的抖动。在判断按键状态时,通过delay()延时跳过抖动的不稳定状态,即软件上进行消抖。

  • 可以不使用内部上拉电阻,在电路上添加按键的上拉电阻或下拉电阻,可达到相同效果。

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:
扫码加入微信公众号:TonyCode

  • 53
    点赞
  • 289
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: Arduino是一种简单易用的微控制器,它可以通过编程实现各种电子设备的控制。其中,按键控制LED是一项非常基础和重要的任务。 在这个任务中,我们需要将一个按键连接到Arduino数字输入端口,并将LED连接到数字输出端口。通过编写程序,可以使得按键按下时,控制LED的状态发生改变。具体步骤如下: 1.将按键的一端连接到数字输入端口,另一端接地。将LED的一端连接到数字输出端口,另一端接地。 2.定义数字输入和输出端口。对于按键,可以使用digitalRead()函数读取数字输入端口的状态。对于LED,可以使用digitalWrite()函数设置数字输出端口的状态。 3.编写程序实现按键控制LED。可以使用if语句判断按键的状态,如果按键按下,则将LED的状态改变。 4.测试程序,观察LED的状态是否能够随着按键的状态而改变。 总的来说,按键控制LED是一项基本的电子实验任务,通过这个任务可以学习到Arduino数字输入和输出操作,以及简单的逻辑控制语句。深入掌握这些基础知识,可以进一步实现各种复杂的电子控制系统。 ### 回答2: Arduino是一种基于开源硬件和软件的微控制器平台,可以用于实现各种电子项目,其中包括按键控制LED按键控制LED的基本原理是在Arduino板子上设置一个按钮和一个LED,当按钮按下时,LED亮起,当按钮释放时,LED熄灭。 实现这个任务的关键在于如何编写代码。以下是一个基本的代码示例: ``` int ledPin = 13; //定义LED的引脚为13 int buttonPin = 2; //定义按键的引脚为2 void setup() { pinMode(ledPin, OUTPUT); //将LED引脚设置为输出 pinMode(buttonPin, INPUT); //将按键引脚设置为输入 } void loop() { int buttonState = digitalRead(buttonPin); //读取按键的状态 if (buttonState == HIGH) { //如果按键被按下 digitalWrite(ledPin, HIGH); //将LED引脚输出高电平,即点亮LED } else { //如果按键被释放 digitalWrite(ledPin, LOW); //将LED引脚输出低电平,即熄灭LED } } ``` 在上述代码中,首先通过`pinMode()`函数将LED引脚和按键引脚设置为输出和输入,然后在`loop()`函数里采用`digitalRead()`函数读取按键的状态,如果按键被按下,通过`digitalWrite()`函数将LED引脚输出高电平,点亮LED,如果按键被释放,则将LED引脚输出低电平,熄灭LED。 需要注意的是,如果按键被按下时,由于按钮可能会反弹导致多次触发,因此可以采用延时函数或者添加一个状态变量来消除反弹。同时,如果需要实现多个按键控制多个LED,可以使用多个引脚和对应的代码来实现。 总之,通过编写简单的代码,可以轻松地实现按键控制LED的功能。 ### 回答3: 在实现arduino按键控制led的过程中,需要一些相关的硬件和软件准备。首先,需要准备好一个arduino主板以及一个led和一个按钮开关。接着,需要连接按钮开关的一端到ground,另一端连接到arduino主板的数字引脚。最后,需要将led连接到arduino主板的数字引脚上。 在软件方面,需要使用arduino IDE进行编程。首先需要定义两个变量,一个表示按钮引脚,一个表示led引脚。然后设置这两个引脚的输入和输出模式。接着,在主循环中,通过digitalRead()函数获取按钮引脚的状态。如果按钮被按下,则digitalWrite()函数会将led引脚设置为高电平,从而让led点亮。如果按钮没有被按下,则digitalWrite()函数会将led引脚设置为低电平,从而让led熄灭。 在代码编写过程中,还需要考虑到防止按钮抖动的问题。这可以通过设置一定的延迟来解决。具体来说,在每次检测到按钮状态改变后,可以等待一小段时间,再进行下一次检测,从而避免因为按钮抖动而产生错误。 总的来说,arduino按键控制led是一项比较简单的任务,只需要一些基础的硬件和软件准备,以及一些基本的编程知识和技能即可实现。这项任务可以帮助我们了解如何使用arduino进行硬件控制,并且为我们今后进行更复杂的arduino项目打下基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值