欢迎光临
我们一直在努力

按键开关、大按键开关使用讲解



轻触开关介绍:
轻触开关是一种电子开关,属于电子元器件类。又叫按键开关,最早出现在日本[称之为:敏感型开关]使用时以满足操作力的条件向开关操作方向施压开关功能闭合接通,当撤销压力时开关即断开,其内部结构是靠金属弹片受力变化来实现通断的。轻触开关有接触电阻荷小、精确的操作力误差、规格多样化等方面的优势,在电子设备及白色家电等方面得到广泛的应用如:影音产品、数码产品、遥控器、通讯产品、家用电器、安防产品、玩具、电脑产品、健身器材、医疗器材、验钞笔、雷射笔按键等等。因为轻触开关对环境的条件(施压力小于2倍的弹力/环境温湿度条件以及电气性能)大型设备及高负荷的按钮都使用导电橡胶或锅仔开关五金弹片直接来代替,比如医疗器材、电视机遥控器等。轻触开关分成两大类:利用金属簧片作为开关接触片的称轻触开关,接触电阻小,簇20mn。手感好,有“滴答”清脆声。利用导电橡胶作为接触通路的开关习惯称为导电橡胶开关。开关手感好,但接触电阻大,一般在100一300n。轻触开关的结构是靠按键向下移动,使接触簧片或导电橡胶块接触焊片,形成通路。

轻触开关视频讲解:点我跳转到视频网站观看。

示例程序(按键去抖动):

//中贝斯特UltiRobot光敏电阻示例教程
//程序效果:按下按键开关(大按键模块)按钮,LED发光二极管高电平,亮;再次按下按键开关(大按键模块)按钮,LED发光二极管低电平,灭。
//淘宝店地址:zhongbest.taobao.com
//专业Arduino资料网站:www.arduino365.com

#define LED 13  
#define KEY 2  

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

void setup()  
{  
   pinMode(LED,OUTPUT);          //定义LED为输出引脚  
   pinMode(KEY,INPUT_PULLUP);        //定义KEY为带上拉输入引脚  
}  

void loop()  
{  
   ScanKey();                //按键扫描程序,当按键按下时候,该子程序会修改KEY_NUM的值  
   if(KEY_NUM == 1)          //是否按键按下,如果<span style="font-family: Arial, Helvetica, sans-serif;">ScanKey函数扫描到按键就会设置KEY_NUM值为1</span>  
   {     
     digitalWrite(LED,!digitalRead(LED));        //LED的状态翻转  
   }  
}  

void ScanKey()                      //按键扫描程序  
{  
   KEY_NUM = 0;                  //清空变量  
   if(digitalRead(KEY) == LOW)           //有按键按下
   {  
     delay(20);              //延时去抖动
     if(digitalRead(KEY) == LOW)     //有按键按下
     {  
       KEY_NUM = 1;          //变量设置为1
       while(digitalRead(KEY) == LOW);   //等待按键松手
     }
   }  
}

知识扩展:
当什么时候需要设置IO为上拉状态?
答:一般情况下,IO口不接任何电平,用digitalRead()去读它的状态时,读到的是一个不确定的值,不一定是0也不一定是1。这时候观察硬件是否有接一个上拉电阻(提供一个稳定的高电平),如果没有接的话便可以通过软件设置IO口内部加上上拉,也就是 这里的pinMode(KEY,INPUT_PULLUP);
消除抖动是否还有其他方法?
答:另外一种消抖方式为硬件消抖,常用的硬件消抖方式有利用电容的放电延时,采用并联电容法,也可以实现硬件消抖。

未经允许不得转载:Arduino-Maker » 按键开关、大按键开关使用讲解

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育