极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15537|回复: 6

关于 读取按钮按下的次数问题(详细版)

[复制链接]
发表于 2015-8-12 16:24:28 | 显示全部楼层 |阅读模式
认真学习了   Arduino入门教程--第四课--按钮控制的LED延时开关 的教程,该教程的用按钮控制led灯,连接图和代码如下:

************************************************************
const int ledPin = 13;
const int buttonPin = 2;
int buttonState = 0;
  
void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}
void loop()
{
  buttonState = digitalRead(buttonPin);
  if(buttonState == HIGH)
    digitalWrite(ledPin, HIGH);
  else
    digitalWrite(ledPin, LOW);
}
************************************************************

在这基础上,能否实现读取按钮按下的次数,求教大神代码如何实现?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-8-12 19:07:52 | 显示全部楼层
可以用 定时器 来做,例如:在500ms内记录按钮按下的次数,再根据次数决定程序的具体流向。
回复 支持 反对

使用道具 举报

发表于 2015-8-12 20:02:22 | 显示全部楼层
楼上正解
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-12 20:26:22 | 显示全部楼层
xinhoujue 发表于 2015-8-12 19:07
可以用 定时器 来做,例如:在500ms内记录按钮按下的次数,再根据次数决定程序的具体流向。

初学者,不是很理解  请大神指点:1、定时器是算法实现还是硬件呢? 2、关键的500ms内记录按钮按下的次数不知道怎么实现?感谢感谢
回复 支持 反对

使用道具 举报

发表于 2015-8-12 20:32:55 | 显示全部楼层
类似这样。。。
//************************************************************
const int ledPin = 13;
const int buttonPin = 2;
boolean buttonState = 0;
boolean OldState = 0;
int buttonPressCount = 0;

void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}
void loop()
{
  buttonState = digitalRead(buttonPin);
  if (buttonState & !OldState) {
    buttonPressCount++;
    delay(40);
  }
  OldState = buttonState;
  if (buttonState == HIGH)
    digitalWrite(ledPin, HIGH);
  else
    digitalWrite(ledPin, LOW);
}
//************************************************************
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-12 23:01:39 | 显示全部楼层
lkc8210 发表于 2015-8-12 20:32
类似这样。。。
//************************************************************
const int ledPin = 1 ...

学习了,收获很大,非常感谢!
回复 支持 反对

使用道具 举报

发表于 2015-8-13 12:57:36 | 显示全部楼层
初学者学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 00:22 , Processed in 0.037204 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表