3.按键控制LED灯亮灭

本次实验使用按键控制LED灯的亮灭。按键按下时,LED点亮;再次按下,LED熄灭。理论部分涵盖按键状态扫描、防抖动处理。通过Arduino的数字IO口监测按键,利用上拉电阻和低电平检测判断按键是否按下。为消除20ms左右的按键抖动,采用延迟20ms的软件去抖动方法,并通过无限循环检测按键松开状态。
摘要由CSDN通过智能技术生成

实验现象:本实验通过一个按键来控制一个发光二极管的亮灭。按键按一下LED点亮。再按一下LED熄灭。

理论学习

该实验主要难点

 如何扫描按键的状态?

 如何防抖动?

 原理讲解

   按键检测原理:通过把Arduino的数字IO设置为输入状态来监控按键是否按下,当按键未按下的时候因为有上拉电阻的存在,读到的电平为HIGH,当按键按下时候因为按键引脚接地,所以读回来的电平为LOW,由此判断按键是否按下。
   按键去抖动原理:因为人手的机械动作使按键按下时候会产生大概20ms左右的按键抖动,如果Arduino在这20ms内去检测IO口的电平很可能会检测出来不稳定的信号。因此,在检测到低电平后延迟20ms再检测可以起到软件去抖动的作用。
   松手检测原理:所谓的松手检测就是程序无线循环等待按键松开,即让程序不停的去检测IO状态,如果恢复了HIGH就跳出循环。
代码为while(diitalRead(KEY)==0);

程序代码
#define LED 13
#define KEY 2

int KEY_NUM = 0;			//按键键值存放变量

void setup()
{
  pinMode(LED,OUTPUT);			//定义LED为输出引脚
  pinMode(
  • 15
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值