подсчет среднего ADC

This commit is contained in:
Mit4el
2025-01-06 21:06:55 +03:00
parent 68fea2ae37
commit 025bf94abc

View File

@@ -17,6 +17,7 @@ class AnalogAdc : public IoTItem {
unsigned int _pin; unsigned int _pin;
unsigned int _avgSteps, _avgCount; unsigned int _avgSteps, _avgCount;
unsigned long _avgSumm; unsigned long _avgSumm;
float adCresult;
public: public:
//======================================================================================================= //=======================================================================================================
@@ -45,6 +46,7 @@ class AnalogAdc : public IoTItem {
// и выполнить за несколько тактов // и выполнить за несколько тактов
void doByInterval() { void doByInterval() {
if (_avgSteps <= 1) value.valD = IoTgpio.analogRead(_pin); if (_avgSteps <= 1) value.valD = IoTgpio.analogRead(_pin);
value.valD = adCresult;///
regEvent(value.valD, "AnalogAdc"); //обязательный вызов хотяб один regEvent(value.valD, "AnalogAdc"); //обязательный вызов хотяб один
} }
@@ -56,7 +58,8 @@ class AnalogAdc : public IoTItem {
void loop() { void loop() {
if (_avgSteps > 1) { if (_avgSteps > 1) {
if (_avgCount > _avgSteps) { if (_avgCount > _avgSteps) {
value.valD = _avgSumm / _avgSteps; // value.valD = _avgSumm / (_avgSteps + 1);
adCresult = _avgSumm / (_avgSteps + 1);
_avgSumm = 0; _avgSumm = 0;
_avgCount = 0; _avgCount = 0;
} }