zslibra 发表于 2012-7-14 19:43:26

Arduino有没有统计某针脚触发次数的库函数?

本帖最后由 zslibra 于 2012-7-15 09:44 编辑

Arduino有没有统计某针脚触发次数的库函数?

比如说arduino基础中的按钮实验,统计一下按钮按下次数。
个人感觉这个函数还是很有用的,可以通过按键次数来触发某些过程。

davidce 发表于 2012-7-14 20:25:23

pluseIn脉冲出发函数,然后计数。

zslibra 发表于 2012-7-14 21:03:53

pulseIn返回的是时间,怎样计数呢?能否写一个例程参考一下
请指教~~

zhangsiyan12134 发表于 2012-7-14 23:35:34

for循环不就好了么?一直检测0-13口的电位变化,变一次加一~

zslibra 发表于 2012-7-15 09:14:05

本帖最后由 zslibra 于 2012-7-15 09:43 编辑

看来没有系统标准库了,只能自己写个库解决了,发上来给大家看看

Pushcounter.h#ifndef Pushcounter_h
#define Pushcounter_h

class Pushcounter
{
public:
    Pushcounter(int buttonpin);
    int counter();
private:
    int _buttonpin;
    int _buttonpush1,_buttonpush2;
    int _buttonrelease1,_buttonrelease2;
    int _debounceDelay;
    unsigned int _count;
};
#endif

Pushcounter.cpp

#include "Arduino.h"
#include "Pushcounter.h"

Pushcounter::Pushcounter(int buttonpin)
{
pinMode(buttonpin, INPUT);
_buttonpin = buttonpin;
_count=1;
_debounceDelay=50;
}

int Pushcounter::counter()
{
while(true) {
    _buttonpush1=digitalRead(_buttonpin);
    delay(_debounceDelay);                                                                _buttonpush2=digitalRead(_buttonpin);
    if(_buttonpush1 && _buttonpush2) break;                                 //每个状态读取两次,防止因噪声造成误判
    else continue;
}

while(true) {
    _buttonrelease1=digitalRead(_buttonpin);
    delay(_debounceDelay);
    _buttonrelease2=digitalRead(_buttonpin);
    if(!_buttonrelease1 && !_buttonrelease2) break;
    else continue;
}

return(_count++);
}

林立 发表于 2012-10-30 09:05:04

zslibra 发表于 2012-7-15 09:14 static/image/common/back.gif
看来没有系统标准库了,只能自己写个库解决了,发上来给大家看看

Pushcounter.h#ifndef Pushcounter_h


楼主,能不能提供一个主程序范例。小弟初学,不太会看库程序。
页: [1]
查看完整版本: Arduino有没有统计某针脚触发次数的库函数?