四、按钮的用法

您所在的位置:网站首页 按钮开关怎么取下来 四、按钮的用法

四、按钮的用法

2023-06-30 18:54| 来源: 网络整理| 查看: 265

 独立按键未按下时只有两组引脚连接,按下之后,四个引脚连接在一起。未按下时在桥的同侧共通,不同侧不共通。按下时都共通。所以可以利用这一特性给单片机充当开关。当按键同侧有电压时,将另一侧与引脚相连,当按键按下时引脚的电平会被拉高,此时只需要检测引脚的电平状态就能判断按键是否按下,若按下时单片机执行什么操作,本例是让它点灯。

 

按住按钮点灯代码 

int buttonState = 0; void setup() { pinMode(2, INPUT); pinMode(LED_BUILTIN, OUTPUT); } void loop() { // 读取2引脚电平状态并储存在buttonState中 buttonState = digitalRead(2); // 判断按钮是否按下 if (buttonState == HIGH) { // 按下点灯 digitalWrite(LED_BUILTIN, HIGH); } else { //没按下关灯 digitalWrite(LED_BUILTIN, LOW); } delay(10); //延时

 按一次按键led灯状态翻转

int buttonState = 0; //初始化状态储存值 void setup() //初始化函数 { pinMode(2, INPUT); //初始化2引脚为输入模式 pinMode(LED_BUILTIN, OUTPUT); //初始化13引脚为输入模式 Serial.begin(9600); //打开串口通讯 } void loop() //循环主函数 { buttonState = digitalRead(2);//读取2引脚的电平状态并储存在buttonState中 if (buttonState == HIGH) { //判断函数 delay(100); //延时函数 if(buttonState == HIGH){ //二次判断函数消抖 if(digitalRead(13)==LOW){ //led反转判断 digitalWrite(LED_BUILTIN, HIGH); } else{ //led反转判断 digitalWrite(LED_BUILTIN, LOW); } while(buttonState==digitalRead(2)); //循环按键消抖 } Serial.println(buttonState); //串口通信打印出2引脚电平状态 } delay(10); //延时函数 }

 当按键按下时由于是弹簧金属触片接触瞬间存在接触不良的情况,电平状态混乱,因此我们设计延时并使它二次判断减少接触误差,当时还是会存在误差的,所以我们用while循环使它一直卡在电平稳定的时段。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3