(3)换种方式学基础元器件之按键控制LED灯

发布时间:2023-01-30  

动图封面

代码:

void setup(){
  pinMode(2, OUTPUT);
  pinMode(1,INPUT);}void loop(){
  if(digitalRead(1))
  {
  	  digitalWrite(2, LOW);
  }
  else
  {
  	  digitalWrite(2, HIGH);
  }
  delay(10); // Wait for 10 millisecond(s)}

按 键

按键是我们用的非常多的一种输入设备,是单片机获取外部信号的一种重要方式,按键在实际电路中的变种也非常多,不管它怎么变,只要符合按键信号的要求,我们基本上都可以按照按键的方式来处理,大同小异。

轻触开关实物

机械尺寸

内部电路原理

这种开关也叫轻触开关,是电子产品中用途非常广泛,同时也是我们学习单片机、嵌入式过程中经常接触的开关。

我们平时用开关感觉这个玩意要么是关,要么是开,就这两个动作,但是真实的开关按下和弹回的过程中是这样的

理想波形和实际波形

接下来我们来实现按键控制LED灯亮灭实验:

实验材料:6*6轻触按键、5mm红色LED灯、电阻(270Ω)、可调电源

动图封面

实验结果:当轻触按键按下去LED灯就亮了,松开轻触按键LED灯就熄灭

思考??:我们能不能通过MCU接受轻触按键信号来实现对LED灯的控制呢?用按键实现LED灯的亮灭翻转,即使松开按键,LED灯也能亮?答案是肯定可以的,我们一起来实现下

实验原理图如下:

包含的器件有:6*6轻触按键一个,5mm红色LED灯一个,1/4W/270Ω直插电阻一个,1/4W/10K直插电阻一个,arduino uno开发板一块,Type USB线一根,连接导线若干

按键控制LED灯原理图

前面我们学会了如何控制LED灯亮灭,这里就不赘述了,我们接下来学习如何通过单片机即arduino来检测按键,在此之前我们先来了解一点点单片机知识。

高阻态(high-impedance state):arduino引脚默认就是高阻态,这个字面意思也好理解,就是电阻很大,一般都是MΩ级别的,所以这种状态下很不稳定,任何一个干扰信号都会造成误触发,这也是我为什么在原理图中接了个下拉电阻的原因

上拉(pullup):在单片机引脚和电源之间接个电阻,一般选择10K

上拉电阻

下拉(pulldown):在单片机引脚和地之间接个电阻,一般选择10K~47K都可以

下拉电阻

我这里使用的是默认的方式,所以我接了个下拉电阻,这样单片机在按键没有按下时输入引脚1就是低电平,当按键按下时就接到电源就是高电平,下面这段代码的意思就是当检测到引脚1为低电平时,把LED灯引脚设置为高电平,LED灯不亮; 当检测到引脚1为高电平时,把LED灯引脚设置为低电平,LED灯点亮。

void loop(){
  if(digitalRead(1))               // 如果输入引脚1为高电平时  {
  	  digitalWrite(2, LOW);    // LED灯亮 
  }
  else                             // 否则输入引脚为低电平  {
  	  digitalWrite(2, HIGH);   // LED灯灭  }
  delay(10); // Wait for 10 millisecond(s)  // 以10ms的周期检测按键}

实验现象:

动图封面

为了更直观地看到效果,我们添加两个电压表,分别测量引脚1和引脚2的电压,这样我们能更直观地看到LED灯和按键的电压变化效果。

动图封面

在上面例子中我们发现按键松了手之后LED灯立马熄灭,那么可不可以在电路不改的前提下按下按键让LED灯一直保持亮,再按下就保持熄灭了呢?聪明的先辈早就给我们想到了,我们下面来尝试着改下程序

代码如下:

代码原理:首先检测按键是否有按下,如果有按下先延时20ms消除下抖动,再检测有没有按下,如果有按下就对LED灯的状态进行翻转,digitalWrite(2,!digitalRead(2));,翻转的原理是读取当前引脚2的状态,然后将其取反操作

void setup(){
  pinMode(2, OUTPUT);
  pinMode(1,INPUT);}void loop(){
  if(1==digitalRead(1))
  {
    delay(20);
  	if(1==digitalRead(1))
    {
     	digitalWrite(2, !digitalRead(2)); 
    }
  }
  delay(10); // Wait for 10 millisecond(s)}

按键效果:

动图封面

上面实验中我们基本实现按键控制LED灯的状态保持,细心地朋友可能会发现,控制的很不溜,大家可以开动脑筋进一步优化代码,来达到你想要的效果,比如说状态机处理方式。


总结:

1、按键是我们生活中用的非常多的一种人机交互设备,按键手感的好坏会直接影响到体验效果

2、通过按键其实我们可以进一步引申出按键的变种,原理都是一样的,只是用途不一样罢了

自锁开关

微动开关

行程开关

3、进一步的,如果我们一个电路模块输出的信号也是这种高低按键电平信号,同样可以当做按键处理

热式红外感应模块

光电开关

电磁感应开关

4、同样的电路,代码不一样,就能实现不同的效果,这也是编程的乐趣所在,后面随着我们基础知识的积累,我们会进一步发现编程的乐趣


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    结束。   51单片机流水灯电路图(四)   51单片机爱心流水灯原理及制作   51单片机流水灯电路图(五)   如图所示的彩灯控制电路有x路输出,可通过外接驯动电路控制30只灯作流水运动,可作为大型装饰彩灯控制器......
    声光控制电路图解(50例); 目录 1.手机照相机闪光灯控制电路 2.数码照相机闪光灯灯控制电路......
    模块、交通灯显示模块等组成,如图1所示。其中,单片机系统为系统的主控制器,用以控制其他模块协调工作;按键模块采用外部中断INT0的方式;串口通信模块采用RS—485接口;LED显示模块用以显示交通灯控制......
    模块(STM32)和负载模块(LED灯)。其中,控制模块分为以STM32为核心的风光互补控制模块和LED灯控制模块。此外还设计了市电备用电路,在因特殊情况导致蓄电池不能对外供电,或蓄......
    以AT89C52单片机为控制器的交通灯控制系统,该系统通过红外接收器接收信号实现特种车辆(119、120等)自动放行;通过车辆检测电路采集路况信号,经单片机处理后,分配各车道的绿灯时间,实现......
    怎么亮,就可以由软件来控制,这个控制器的制作非常简单,按照《速锐得LIN总线在灯光控制系统的应用硬件设计》中的原理图,搭建好MOS管基本就可以得出如下硬件电路板: 经过讨论和总结还有这些补充: 1......
    可以防止蓄电池深度充电。如果蓄电池电压低于 12V,电路会自动为蓄电池充电。 12 伏充电器电路图 该充电器电路主要包括两个部分 - 电源部分和负载比较部分。 主电源电压 230V,50Hz,连接......
    要通过一个“三极管”来间接控制。这么设计的原因是为了降低CPU在控制各种外围设备时被外围设备的合计电流烧毁的风险。拿LED灯控制电路来说,一个LED灯通常都是供3.3v的电压,并接入一个 1k 的电......
    浴室自动风扇控制器电路原理图讲解;这种自动浴室风扇控制器电路设计是灯和风扇电机控制,带有延迟关闭。这种自动风扇控制通常用于厕所和浴室。当开关S1关闭时,风扇电机和灯打开。当开关S1打开(关闭)时......
    配置: 如何操作调频远程编码器和解码器电路? 按照电路图进行连接。 在解码器输出端连接 LED。 为发射器和接收器部分提供 5V 电源。 最初,所有 LED 都会发光。 现在按下发射器部分的第一个按钮,可以......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>