完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本篇我们主要介绍通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的。 一、按键开关介绍
按键开关主要是指轻触式按键开关,也称之为轻触开关。按键开关是一种电子开关,属于电子元器件类,最早出现在日本[称之为:敏感型开关],使用时以满足操作力的条件向开关操作方向施压开关功能闭合接通,当撤销压力时开关即断开,其内部结构是靠金属弹片受力变化来实现通断的。 按键开关由嵌件、基座、弹片、按钮、盖板组成,其中防水类轻触开关在弹片上加一层聚酰亚胺薄膜。 按键开关有接触电阻荷小、精确的操作力误差、规格多样化等方面的优势,在电子设备及白色家电等方面得到广泛的应用如:影音产品、数码产品、遥控器、通讯产品、家用电器、安防产品、玩具、电脑产品、健身器材、医疗器材、验钞笔、雷射笔按键等等。 二、一个开关控制一个LED灯 1、所需器材 Uno R3开发板 配套USB数据线 面包板及配套连接线 1个LED灯 2个220Ω电阻W 1个轻触按键 2、面包板视图: 3、搭设说明: 见面包板示意图 4、Mixly程序: 5、程序编写: int led=8; int aj=3; int value; void setup() { Serial.begin(9600); pinMode(led,OUTPUT); pinMode(aj,INPUT_PULLUP); //设置按键管脚上拉输入模式 } void loop() { value=digitalRead(aj); Serial.println(value); delay(100); if(value==0) { digitalWrite(led,HIGH); } else { digitalWrite(led,LOW); } } 四、多个按键开关控制多个LED 1、所需器材 Uno R3开发板 配套USB数据线 面包板及配套连接线 2个LED灯 4个220Ω电阻W 2个轻触按键 2、面包板视图: 3、实现功能 按下红色的按键,红灯亮,绿灯灭 按下绿色的按键,绿灯亮,红灯灭 4、Mixly程序: 5、程序编写: int led1=9; int led2=10; int anjian1=3; int anjian2=4; int value1,value2; void setup() { Serial.begin(9600); pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(anjian1,INPUT); pinMode(anjian2,INPUT); } void loop() { value1=digitalRead(anjian1); value2=digitalRead(anjian2); delay(300); if(value1==0) { digitalWrite(led1,HIGH); digitalWrite(led2,LOW); } if(value2==0) { digitalWrite(led1,LOW); digitalWrite(led2,HIGH); } } 五、实现按一下LED亮,再按一下LED灭 1、所需器材 Uno R3开发板 配套USB数据线 面包板及配套连接线 1个LED灯 2个220Ω电阻W 1个轻触按键 2、面包板视图: 3、Mixly程序: 4、程序编写: int led=10; int aj=3; int num=0; void setup() { Serial.begin(9600); pinMode(led,OUTPUT); pinMode(aj,INPUT_PULLUP); } void loop() { int ajvalue=digitalRead(aj); Serial.println(ajvalue); delay(300); if(ajvalue==0) { num++; if(num%2==1) { digitalWrite(led,HIGH); } else { digitalWrite(led,LOW); } } } 六、函数介绍 digitalRead() 描述:读取指定数字引脚的值 函数原型:digitalRead(pin) 参数:要读取的数字引脚编号 返回值:HIGH(1)或LOW(0) 七、总结分析 通过digitalRead()函数来读取数字I/O引脚状态,然后根据状态去点亮或者熄灭LED灯。需要注意: 1、由于Arduino上电后,数字I/O管脚处于悬空状态,此时通过digitalRead()读到的是一个不稳定的值(可能是高,也可能是低)。所以通过pinMode()函数设置按键引脚为上拉输入模式。即使用内部上拉电阻,按键未按下时,引脚将为高电平,按键按下为低电平。 2、按键在按下的过程中,有一段接触未接触的不稳定过程,即按键的抖动。在判断按键状态时,通过delay()延时跳过抖动的不稳定状态,即软件上进行消抖。 |
|
|
|
只有小组成员才能发言,加入小组>>
2510 浏览 0 评论
1075浏览 2评论
689浏览 1评论
448浏览 0评论
187浏览 0评论
316浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-17 10:18 , Processed in 1.183978 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号