按键开关简介


  按键是一种常用的控制电器元件,常用来接通或断开电路,从而达到控制电机或者其他设备运行的开关。按键的外观多种多样,本次实验使用的是这种微型按键,6mm的,如下图:
在这里插入图片描述
由图可知:按键没按下时候:1,2号脚相连,3,4号脚相连。
     按键按下去时候,1,2,3,4号脚就全部接通。


按键开关实验


试验一:按键控制LED亮灭


实验说明:


  通过串口监视器查看按键输入是高电平(1)还是低电平(0)。


电路搭建:


在这里插入图片描述


参考程序:


const int switchPin = 10;  // 按键开关连接引脚10

void setup() {
pinMode(switchPin, INPUT); // 设置引脚10为输入模式
Serial.begin(9600); // 设置串口波特率为9600
}
void loop() {
int switchValue = 0; //定义变量并赋初值为0
switchValue = digitalRead(switchPin); //读取引脚7的值
Serial.print(“ Value of switch = “); //输出到串口监视器
Serial.println(switchValue); //将读取的按键值输出到串口监视器
}

    实验结果


    当按键还没按下的时候,串口监视器输出数字1.当按键按下时候,串口监视器输出数字0.
    这是上拉电阻的实验结果,大家可以搭建下拉电阻查看情况如何?或者不加电阻的情况如何。


    试验二:按键控制LED亮灭


    实验说明:


      一般情况是直接把按键开关串联在led的电路中来开关,这种应用情况比较单一。这次实验通过间接的方法来控制,按键接通后判断按键电路中的输出电压,如果电压大于4.88V,就使给LED电路输出高电平,反之就输出低电平。使用逻辑判断的方法来控制LED亮或者灭,此种控制方法应用范围较广。


    电路搭建:


    在这里插入图片描述


    参考程序:


    const int redLedPin = 10;  // 红色LED灯连接引脚10
    const int switchPin = 13; // 按键开关连接引脚13

    void setup() {
    pinMode(redLedPin, OUTPUT); //设置引脚10为输出模式
    pinMode(switchPin, INPUT); // 设置引脚13为输入模式
    Serial.begin(9600); // 设置串口波特率为9600
    }

    void loop() {
    int switchValue = 0; //定义变量并赋初值为0
    switchValue = digitalRead(switchPin); //读取引脚13的值
    if (switchValue == 0) { //判断键值等于0,执行下面的程序
    digitalWrite(redLedPin, HIGH); //点亮红色LED
    }
    else { //判断键值不为0,将执行下面的语句
    digitalWrite(redLedPin, LOW); //熄灭红色LED
    }
    }

    试验三:按键消抖


    实验说明:


      当你按下按钮的时候,可能期待的结果就是从1到0(从上拉电阻到按钮按下)的变化。但是实际操作起来可能会跟你想象的不太一样。
      若没有消除抖动的话,LED的开关就取决于抖动的
    次数是奇数还是偶数,存在偶然性。若使用延时消抖动,加了延时之后,200ms之内不会发生任何事,这么长的时间,无论抖动多少次都足够。
      通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键的开关都会
    瞬间伴随一连串的抖动,如下图所示:
    在这里插入图片描述


    实验要求:


       使用按键开关切换LED的亮暗。也就是:按下按钮时,LED被点亮并保持长亮,若再按一次按钮,则关闭LED。
    还有一个有趣的副作用:如果按钮按住不松的话,LED会闪烁


    电路搭建:


    在这里插入图片描述


    参考程序:


    int buttonPin = 2;
    int ledPin = 9;
    int ledValue = LOW;
    void setup() {
    pinMode(buttonPin,INPUT_PULLUP);
    pinMode(ledPin,OUTPUT);
    Serial.begin(9600);
    }

    void loop() {
    if(digitalRead(buttonPin) == LOW)
    {
    ledValue = !ledValue;
    digitalWrite(ledPin,ledValue);
    delay(200);//延时消抖
    }
    }

    按键开关分类


    轻触开关


    特点:通过金属弹片/硅胶受力实现通断。
    应用产品:几乎所有电子产品。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    拨码开关


    特点:拨动金属位置实现通断。
    应用产品:开发板配置信号
    在这里插入图片描述


    拨动开关


    特点:拨动金属位置实现通断。
    应用产品:几乎所有电子产品,用于电源。
    在这里插入图片描述
    在这里插入图片描述


    触摸屏


    电阻屏


    特点:压力造成两层接插,即:电阻值变化。
    应用:手机,平板等。
    在这里插入图片描述


    电容屏


    在这里插入图片描述