#include <EncButton.h>
Button b(3);
uint32_t claptime = 0;
uint32_t timeout_befor = 30000; //перед контрольным сигналом должна быть тишина 30 секунд
uint32_t timeout_after = 10000; //после контрольного сигнала подать команду в течении не более 10 секунд
uint32_t interval = 0;
bool b_flag = false;
uint8_t n_claps = 0;
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
Serial.begin(115200);
}
void loop() {
b.tick();
digitalWrite(16, b.press());
digitalWrite(15, b.pressing());
digitalWrite(14, b.hold());
digitalWrite(13, b.holding());
digitalWrite(12, b.step());
digitalWrite(11, b.release());
digitalWrite(10, b.click());
digitalWrite(9, b.waiting());
digitalWrite(8, b.hasClicks());
digitalWrite(7, b.releaseHold());
digitalWrite(6, b.releaseStep());
digitalWrite(5, b.busy());
digitalWrite(4, b.timeout(500));
if (b.hasClicks()) {
n_claps = b.getClicks(); //получили количество хлопков
interval = millis() - claptime; //получили интервал от последнего хлопка
claptime = millis(); //запомнили время текущего хлопка
Serial.print(interval/1000);
Serial.print(" сек. интервал. Грязных хлопков ");
Serial.println(n_claps);
}
/*
if (n_claps > 0) {
interval = millis() - claptime; //получили интервал от последнего хлопка
claptime = millis(); //запомнили время текущего хлопка
Serial.print(interval/1000);
Serial.print(" сек. интервал. Грязных хлопков ");
Serial.println(n_claps);
}
*/
delay(20);
}