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