Я обнаружил, что библиотека фильтров предоставила пользовательский метод для получения правильного значения на датчике ACS712. Я подключил Arduino Uno к ACS 712 20A и использую библиотеку фильтров для кодирования. Это было успешно. Это как это видео здесь
#include <FilterDerivative.h>
#include <FilterOnePole.h>
#include <Filters.h>
#include <FilterTwoPole.h>
#include <FloatDefine.h>
#include <RunningStatistics.h>
#include <Filters.h> //This library does a massive work check it's .cpp file
#define ACS_Pin A0 //Sensor data pin on A0 analog input
float ACS_Value; //Here we keep the raw data valuess
float testFrequency = 50; //
float windowLength = 40.0/testFrequency; // how long to average the signal, for statistist
float intercept = 0; // to be adjusted based on calibration testing
float slope =0.04458 ; // to be adjusted based on calibration testing 0.0752 /test2 0.04458
float Amps_TRMS; // estimated actual current in amps
unsigned long printPeriod = 5000; // in milliseconds It should be not shorten than this value
// Track time in milliseconds since last reading
unsigned long previousMillis = 0;
void setup() {
Serial.begin( 115200 ); // Start the serial port
pinMode(ACS_Pin,INPUT); //Define the pin mode
}
void loop() {
RunningStatistics inputStats; // create statistics to look at the raw test signal
inputStats.setWindowSecs( windowLength ); //Set the window length
while( true ) {
ACS_Value = analogRead(ACS_Pin); // read the analog in value:
inputStats.input(ACS_Value); // log to Stats function
if((unsigned long)(millis() - previousMillis) >= printPeriod) { //every second we do the calculation
previousMillis = millis(); // update time
Amps_TRMS = intercept + slope * inputStats.sigma();
Serial.print( "\t Amps: " );
Serial.print( Amps_TRMS/2 );
Serial.println();
}
}
}
Однако, когда я использую этот код для загрузки на плату NodeMcu ESP8266 и датчик ACS712-20A. Не работает Как мне отредактировать этот код, чтобы он работал нормально? Спасибо
Примечание. Если я использую другой код без библиотеки фильтров. Они оба хорошо работают