一、轻触开关分类 目前市面上的轻触开关很多,比如: 四脚轻触开关 轻触开关模块 两脚轻触开关 二、工作原理 相对来说,“两脚轻触开关”和“轻触开关模块”的工作原理比较简单:按键按下,内部线路连通;按键抬起,内部线路断开。这里不做重点讨论。接下来,重点介绍四脚轻触开关的工作原理。 如下图所示,四脚轻触开关有四个引脚,其中1、2号引脚在同一侧,3、4号引脚在另一侧。内部接线来看,1、3号引脚是相联的,2、4号引脚是相联的。那么这样的开关,我们应该怎么使用呢? 原来,四脚轻触开关的接线方法是“对角线相连”。也就是要么连接1、4号引脚,要么连接2、3号引脚。连线完成后,按下开关,对角线方向的引脚就联通了,即1、4号引脚联通,2、3号引脚联通;松开开关,对角线方向的引脚断开。 三、实际应用:轻触开关控制LED灯的亮灭 电路图如下所示。此时只需要按下轻触开关不松手,LED灯就会亮起;松开开关,LED灯熄灭。此实验中,轻触开关与LED灯串联使用,不需要编程。 四、利用“串口监视器”观察轻触开关的按键状态 1、电路图 要注意:这个接线方式非常危险,弄不好会把UNO开发板直接烧坏!!! 接下来,说一下接线的重点:一定要把一个10KΩ的电阻与轻触开关串联!!! 接线方式如下: 轻触开关、10KΩ的电阻直接串联在了开发板的5V、GND接口之间。 同时,在轻触开关与电阻之间引出一条杜邦线(下图中的红色导线)连接在数字端口8上。这条线非常重要,用来读取轻触开关的状态读数。 2、代码 int buttonState = 0; void setup() { pinMode(8, INPUT); Serial.begin(9600); } void loop() { buttonState = digitalRead(8); Serial.println(buttonState); delay(100); } 3、代码解释: ①int buttonState = 0; 定义一个整型变量buttonState,这个变量用来存储按键的状态。实际上,四脚轻触开关的状态只有两种:1=接通,0=断开 ②pinMode(8, INPUT); pinMode这个指令一直被我们用来把数字接口定义为输出端。但本实验,我们将尝试第一次用数字接口作为输入端,用来接收四脚轻触开关接通或断开的状态。 ③buttonState = digitalRead(8); digitalRead(数字引脚) 这个指令是用来读取数字端口接收的数据的。 同时,用赋值符号“=”将读取到的数据赋值给buttonState。 4、实验结果: 松开开关时,串口监视器的读数是0;按下开关后(不松手),串口监视器的读数是1。 5、决定读数的关键 ①读数永远是0 如果用来读取开关状态的这条红色导线的另一端位于电阻与GND之间,那么读数永远是0。因为导线实际上相当于已经连接在GND(负极)上。 ②读数永远是1 如果用来读取开关状态的这条红色导线的另一端位于5V与轻触开关之间,那么读数永远是1。因为导线实际上相当于已经连接在5V(正极)上。 因此,这条红色导线的连接非常重要,一定不要接错! |
|