这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » Let'sDo第2期活动-过程帖-按键控制LED

共3条 1/1 1 跳转至

Let'sDo第2期活动-过程帖-按键控制LED

菜鸟
2024-07-28 13:54:21     打赏

LCD板子上有4个按键,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。按键消抖目的:按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。

测试使用GP15,LED使用GP6

屏幕截图 2024-07-28 120624.png程序

const int buttonPin = 15;
const int ledPin = 6;
int buttonState = 0;
int flag=0;

void setup() {

  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  buttonState = digitalRead(buttonPin);
  if(buttonState==LOW)
  {
    delay(20);
    buttonState = digitalRead(buttonPin);
    if(buttonState==LOW)
    {
      flag=flag==0?1:0;
       while(digitalRead(buttonPin)==0);
    }
  }
    if (flag == 1) 
    {
    digitalWrite(ledPin, HIGH);
  }
   else 
   {
    digitalWrite(ledPin, LOW);
  }                  
}

效果

11.gif


助工
2024-07-29 00:13:19     打赏
2楼

这动图咋做到的?


院士
2024-07-30 06:28:51     打赏
3楼

谢谢楼主分享~!


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]