简介:
  算数平均滤波法简单有效,可用于上下变跳波动较小的数据,不适合拥有大范围跳变的讯号。
  
  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();
  
   
 
  } 
                
        
    
                    转载请注明原文地址: https://ju.6miu.com/read-358.html