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
    }
  • 相关阅读:
    hadoop集群管理之 SecondaryNameNode和NameNode
    无法fsck问题解决
    处世
    [THUSC2016]成绩单
    Python安装官方whl包、tar.gz包、zip包
    poj1159 Palindrome 动态规划
    hoj1249 Optimal Array Multiplication Sequence 矩阵链乘
    hoj分类(转)
    hoj 2012 winter training Graph Day1 106 miles to Chicago图论最短路dijkstra算法
    poj1050 To the Max
  • 原文地址:https://www.cnblogs.com/meetrice/p/14078274.html
Copyright © 2011-2022 走看看