实验二 基于Arduino开发板的按键控制LED灯实验

本文详细描述了一项使用Arduino开发板通过按键控制LED灯的实验,涉及原理、步骤、电路设计和程序代码,旨在教授如何利用硬件和编程实现LED状态的切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

2.1 实验题目

2.2 实验目的

2.3 实验原理

2.4 实验步骤

2.5 实验仪器

2.6 电路设计

2.7 程序设计

2.8 实验总结


B站搜索:Wm锰

bb7e77ffa7c975e5eb688d9838c46c98.png


2.1 实验题目

  •  本次实验题目为:基于Arduino开发板的按键控制LED灯实验

2.2 实验目的

  • 通过基于Arduino开发板的按键控制LED灯实验,学习如何使用Arduino读取外部输入(按键输入)并通过程序控制LED灯的状态。

2.3 实验原理

  • 按键控制LED实验涉及读取数字输入引脚的状态,当按键按下时,Arduino将检测到引脚状态变化,从而改变LED的亮灭状态。

2.4 实验步骤

  1. 将按键连接到Arduino的数字引脚,LED通过电阻连接到另一数字引脚。
  2. 将按键连接到GND引脚,确保按键按下时与GND短接。
  3. 使用Arduino IDE编写程序,当按键按下时点亮LED,松开时熄灭LED。
  4. 上传程序到Arduino开发板。
  5. 观察LED的状态变化。

2.5 实验仪器

 完成本次实验所需的元器件如表 2所示。

表 2 器材清单

元器件

数量

备注

Arduino开发板

1个

/

串口线

1条

/

按钮

1个

/

LED灯

1个

/

1KΩ电阻

1个

/

杜邦线

若干

/


2.6 电路设计

如图 2所示,为本次实验的电路设计图。

99abf7f12a661386e177ca07c740df92.png

图 2 按键控制电路图


2.7 程序设计

以下是结合本次实验的电路设计图编写的实验程序,可以直接复制到Arduino单片机中进行烧录,烧录完成后即可实现本次实验要求达到的效果。

//引脚定义
const int buttonPin=2;//按键位置
const int ledPin=13;//led位置
//定义变量
int ledState=HIGH;//当前led状态
int buttonState;//读取的当前按键状态
int lastButtonState=LOW;//上次读取的按键状态
//使用长整型变量
long lastDebounceTime=0;//上次按键触发时间
long debounceDelay=50;//去抖时间,根据实际情况调整
void setup(){
pinMode(buttonPin,INPUT);
pinMode(ledPin,OUTPUT);
//初始化led的状态
digitalWrite(ledPin,ledState);
}
void loop(){
//读取按键状态赋值到一个变量
int reading=digitalRead(buttonPin);//如果按键状态变化,不过是由于抖动还是按键按下造成的,下面的程序都需要进行这一步处理
if(reading!=lastButtonState){
//复位去抖时间,就是把当前时间保存下来
lastDebounceTime=millis();
}
if((millis()-lastDebounceTime)>debounceDelay){
//等过了去抖时间,再次去检测按键的状态
if(reading!=buttonState){
buttonState=reading;
if(buttonState==HIGH){
ledState=!ledState;
}
}
}
//把led的最终结果输出到对应的引脚
digitalWrite(ledPin,ledState);
//保存当前值,一边下一个循环检测的时候使用
lastButtonState=reading;
}

2.8 实验总结

按下按键时,LED点亮;释放按键时,LED熄灭。实验成功,证明按键可以通过Arduino控制LED的亮灭状态。
通过这个实验,我学到了如何使用Arduino读取数字输入引脚的状态,并根据读取到的状态控制LED的亮灭。在实验中,我遇到了一些问题,例如电路连接错误或按键状态读取不准确,但通过仔细检查和调试,我成功解决了这些问题。这个实验为我理解Arduino数字输入输出和基本控制流程提供了实际经验。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值