mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
Impulse - два режима работы
This commit is contained in:
@@ -12,7 +12,9 @@ private:
|
||||
bool _lastButtonState = LOW;
|
||||
unsigned long _lastDebounceTime = 0;
|
||||
int _debounceDelay = 50;
|
||||
int _timeORcount = 0;
|
||||
int _count = 0;
|
||||
int CNT = 0;
|
||||
unsigned long timing;
|
||||
|
||||
public:
|
||||
@@ -22,6 +24,8 @@ public:
|
||||
jsonRead(parameters, F("pin"), _pin);
|
||||
jsonRead(parameters, F("pinMode"), _pinMode);
|
||||
jsonRead(parameters, F("debounceDelay"), _debounceDelay);
|
||||
jsonRead(parameters, F("count"), _count);
|
||||
jsonRead(parameters, F("timeORcount"), _timeORcount);
|
||||
jsonRead(parameters, "int", _int);
|
||||
_round = 0;
|
||||
|
||||
@@ -53,18 +57,31 @@ public:
|
||||
if (_reading != _buttonState)
|
||||
{
|
||||
_buttonState = _reading;
|
||||
_count++;
|
||||
CNT++;
|
||||
}
|
||||
if (_count == 1)
|
||||
if (CNT == 1)
|
||||
{
|
||||
timing = millis();
|
||||
}
|
||||
if (millis() - timing > _int * 1000 && _count > 1)
|
||||
{
|
||||
timing = millis();
|
||||
value.valD = _count;
|
||||
regEvent(value.valD, F("Impulse"));
|
||||
_count = 0;
|
||||
if (!_timeORcount)
|
||||
{ // работаем по времени
|
||||
if (millis() - timing > _int * 1000 && CNT > 1)
|
||||
{
|
||||
timing = millis();
|
||||
value.valD = CNT;
|
||||
regEvent(value.valD, F("Impulse"));
|
||||
CNT = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // работаем по количеству импульсов
|
||||
if (_count && CNT == _count)
|
||||
{
|
||||
value.valD = 1;
|
||||
regEvent(value.valD, F("Impulse"));
|
||||
CNT = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
"pin": 16,
|
||||
"pinMode": "INPUT",
|
||||
"debounceDelay": 3,
|
||||
"multiply": 1
|
||||
"multiply": 1,
|
||||
"count": 0,
|
||||
"timeORcount":0
|
||||
}
|
||||
],
|
||||
"about": {
|
||||
@@ -24,7 +26,7 @@
|
||||
"authorGit": "https://github.com/avaksru",
|
||||
"specialThanks": "",
|
||||
"moduleName": "Impulse",
|
||||
"moduleVersion": "2.0",
|
||||
"moduleVersion": "3.0",
|
||||
"usedRam": {
|
||||
"esp32_4mb": 15,
|
||||
"esp8266_4mb": 15
|
||||
@@ -35,7 +37,9 @@
|
||||
"int": "Период сбора импульсов в секундах",
|
||||
"pin": "Укажите GPIO номер пина для чтения импульсов",
|
||||
"pinMode": "Может быть INPUT_PULLUP INPUT_PULLDOWN INPUT",
|
||||
"debounceDelay": "Время обработки дребезга (миллисекунд)"
|
||||
"debounceDelay": "Время обработки дребезга (миллисекунд)",
|
||||
"count": "количество импульсов для выработки события c 1(единицей в данных). По событию можно прибавлять к другой переменной, так же домножить на multiply. Например 32имп = 0.1кВт => count=32, multiply=0.1",
|
||||
"timeORcount": "0 - выдает количество импульсов за int секунд; 1 - выдает событие с 1 когда количество импульсов наберется равным count"
|
||||
}
|
||||
},
|
||||
"defActive": true,
|
||||
|
||||
Reference in New Issue
Block a user