zoukankan      html  css  js  c++  java
  • 用Tinkercad学arduino之 平滑处理

    /*
    
      Smoothing
     平滑处理
    
      Reads repeatedly from an analog input, calculating a running average
      and printing it to the computer.  Keeps ten readings in an array and
      continually averages them.
       从模拟输入重复读取,计算运行平均值
       并将其打印到计算机上。 将十个读数保持在一个数组中
       不断求平均值。
    
      The circuit:
        * Analog sensor (potentiometer will do) attached to analog input 0
       电路:
         *模拟传感器(电位计可用)连接到模拟输入0
         
      Created 22 April 2007
      By David A. Mellis  <dam@mellis.org>
      modified 9 Apr 2012
      by Tom Igoe
      http://www.arduino.cc/en/Tutorial/Smoothing
    
      This example code is in the public domain.
    
    
    */
    
    
    // Define the number of samples to keep track of.  The higher the number,
    // the more the readings will be smoothed, but the slower the output will
    // respond to the input.  Using a constant rather than a normal variable lets
    // use this value to determine the size of the readings array.
    const int numReadings = 10;
    
    int readings[numReadings];      // the readings from the analog input
    int readIndex = 0;              // the index of the current reading
    int total = 0;                  // the running total
    int average = 0;                // the average
    
    int inputPin = A0;
    
    void setup() {
      // initialize serial communication with computer:
      Serial.begin(9600);
      // initialize all the readings to 0:
      for (int thisReading = 0; thisReading < numReadings; thisReading++) {
        readings[thisReading] = 0;
      }
    }
    
    void loop() {
      // subtract the last reading:
      total = total - readings[readIndex];
      // read from the sensor:
      readings[readIndex] = analogRead(inputPin);
      // add the reading to the total:
      total = total + readings[readIndex];
      // advance to the next position in the array:
      readIndex = readIndex + 1;
    
      // if we're at the end of the array...
      if (readIndex >= numReadings) {
        // ...wrap around to the beginning:
        readIndex = 0;
      }
    
      // calculate the average:
      average = total / numReadings;
      // send it to the computer as ASCII digits
      Serial.println(average);
      delay(1);        // delay in between reads for stability
    }
  • 相关阅读:
    变量的创建和初始化
    HDU 1114 Piggy-Bank (dp)
    HDU 1421 搬寝室 (dp)
    HDU 2059 龟兔赛跑 (dp)
    HDU 2571 命运 (dp)
    HDU 1574 RP问题 (dp)
    HDU 2577 How to Type (字符串处理)
    HDU 1422 重温世界杯 (dp)
    HDU 2191 珍惜现在,感恩生活 (dp)
    HH实习 acm算法部 1689
  • 原文地址:https://www.cnblogs.com/meetrice/p/14078274.html
Copyright © 2011-2022 走看看