用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏

该用户从未签到

下面是我们的一部分代码,测试中发生了问题,按道理说每按一次button应该只能换一次档,但是我们如果一直摁着就会一直不停地换挡,就是担心如果在开车的时候驾驶员一直摁着就会发生问题,所以现在就是想怎样在代码中改变,然后就算一直按着也只能换一次档[img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\765583632\QQ\WinTemp\RichOle\{}GXNCP3WJ1~8@5IUVYU6X2.png[/img]
{}GXNCP3WJ1~8@5IUVYU6X2.png
求大神帮忙回答啊
那你就不能一直判断某个状态  只能判断从x状态转成y状态的过程  比如踩下到放开才算一次
打赏作者鼓励一下!
这个简单啊,你设置两个参数都用来检测按钮状态,只有当旧低新高时才能换挡。
去下一个 button 库,就可以了,用过,非常稳,应该是用状态机弄吧。
可以有  button.pressed()    released()    toggled()

button 库

button 库
打赏作者鼓励一下!
参考按键控制LED的代码……有一种是按住LED就亮着,松开就熄灭;还有一种是按下去变亮,等到下次再按的时候才会变灭………
LANDI_Arduino 发表于 2018-3-12 19:05
参考按键控制LED的代码……有一种是按住LED就亮着,松开就熄灭;还有一种是按下去变亮,等到下次再按的时候 ...

不好意思,对这个不太熟悉,哪边有相对应的代码啊,想看一下
bool IsOn=false;
int gear=0;
void setup() {
  // put your setup code here, to run once:

}

void loop()
{
  // put your main code here, to run repeatedly:  
if(upButtonState==HIGH&&!IsOn)
{
  switch(gear)
  {
    case 0:
      HalfUp();
      break;
    case 1:
      FullDown();
      break;
  }  
  if(gear<6)
    gear++;
}
  IsOn=upButtonState==HIGH;
}
发新帖
发表评论
高级模式  
您需要登录后才可以回帖 登录 | 立即注册  
关闭

推荐主题 上一条 /2 下一条