简介:
算数平均滤波法简单有效,可用于上下变跳波动较小的数据,不适合拥有大范围跳变的讯号。
const int Input = 1;//A1为电平输入口
const int Output = 0;//A0为电平输出口
const int savenum = 3;//每次存储多少个数
int OriginValue[savenum];//数组存储输入的电平大小
double AveValue = 0;//算数平均后得到的数值
int Acount = 0;//计数器
void setup() {
// put your setup code here, to run once: Serial.begin(9600); } void Receive()//将输入模拟信号存储到数组的函数 { if (Acount { OriginValue[Acount] = analogRead(Input); Acount++; } else { Acount= 0; Average(); } } void Average()//求平均值的函数 { int count; double Sum; for(count=0;count Sum += (double)(OriginValue[count]); AveValue = Sum / savenum; SignalOut(); } void SignalOut()//输出信号的函数 { analogWrite(Output,AveValue);//每次求平均值后输出 Serial.println(AveValue); } void loop() { // put your main code here, to run repeatedly: Receive(); }