久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: Arduino教程-求均值 [打印本頁]

作者: 51黑電子論壇    時間: 2016-3-3 01:53
標題: Arduino教程-求均值
Hi,大家好!今天,我們將一起學習一種求均值的方法。有時候,我們會碰到一些傳感器,它們所產生的數值之間,有可能不連貫,或者說具有跳躍性,但我們又不想被某些“不和諧”的數值所干擾,所以我們就需要取之前的一小撮數,通過計算均值的方式,對數值進行處理。
好!簡單說明之后,讓我們看看,具體是怎樣實現的吧。
硬件方面
圖片來源:Arduino電路連接
具體包括:
上面的配件,我們之前都已經見過,不用再多說什么。
軟件方面Arduino官方提供的IDE
連接電路
圖片來源:Arduino電路連接
電路的連接非常的簡單,不多講。
下面是最后一步,也是最重要的一步!
添加幾行代碼首先,新建一個項目窗口。

圖片來源:Arduino官方IDE
向其中添加幾行代碼:


  1. // 定義讀取數值的數目,
  2. // 初始化為 10
  3. const int numReadings = 10;
  4. // 定義存儲讀入數值的數組
  5. int readings[numReadings];
  6. // 定義指示數組數值的索引
  7. int readIndex = 0;
  8. // 定義存儲數組數值的總數
  9. int total = 0;
  10. // 定義數組數值的平均數
  11. int average = 0;
  12. // 定義旋轉電位計的模擬信號輸入針腳
  13. int inputPin = A0;
  14. // 對Arduino電路板或相關狀態進行初始化方法
  15. void setup() {
  16.   // 開啟串行通信,并設置其頻率為9600。
  17.   // 如果沒有特別要求,此數值一般都為9600。
  18.   Serial.begin(9600);
  19.   // 初始化存儲讀入數值的數組,
  20.   // 講每個數值設置為 0 。
  21.   for (int thisReading = 0; thisReading < numReadings; thisReading++) {
  22.     readings[thisReading] = 0;
  23.   }
  24. }
  25. // 系統調用,無限循環方法
  26. void loop() {
  27.   // 總值中,減去數組的最后一個數值
  28.   total = total - readings[readIndex];
  29.   // 讀入當前旋轉電位計的數值,
  30.   // 并將其存儲到數組的最后一位。
  31.   readings[readIndex] = analogRead(inputPin);
  32.   // 將最新讀入的數值加入到總值中
  33.   total = total + readings[readIndex];
  34.   // 將數組指示索引值加1
  35.   readIndex = readIndex + 1;
  36.   // 判斷數組指示索引是否超出數組范圍,
  37.   // 如果是,將數組指示索引重置為0
  38.   if (readIndex >= numReadings) {
  39.     readIndex = 0;
  40.   }
  41.   // 計算平均值
  42.   average = total / numReadings;
  43.   // 將最終計算的平均值輸出到串行調試窗口。
  44.   Serial.println(average);
  45.   // 延遲一毫秒,
  46.   // 進入下一個循環。
  47.   delay(1);
  48. }
復制代碼



輸入完畢!上面的代碼里,沒有新方法,也沒有復雜的數據結構,只有一個數組而已。用到的算法也是蠻簡單,每次循環的時候,減去數組最后的一個數值,隨后將從旋轉電位計新讀入的數值存入其中,然后計算總值以及最終的平均值,每次只修改數組的最后一個數值,并計算平均值。

圖片來源:Arduino官方IDE的文件編輯菜單選項
點擊上圖中,最右側放大鏡圖標的按鈕,打開串口調試窗口,大致如下圖所示。

圖片來源:Arduino串口調試窗口
總結通過這次學習,我們了解了如何對讀取到的數值進行平均化,去掉當中偏大或偏小的數值。這是一種防止數值跳變的好方法。
下期預告我們已經學習了二十個星期,接下來,休息,休息一下!



作者: 海洋lhk    時間: 2017-3-27 21:08
必須給樓主一個贊
作者: zmc419    時間: 2017-4-28 18:21
很好,簡單易用
作者: chaoyangengr    時間: 2018-5-4 13:52
總值中,減去數組的最后一個數值為什么呢?
作者: kevin10120    時間: 2018-5-5 02:42
哇 謝謝樓主 初學者的福利啊
作者: 787384900    時間: 2022-10-27 18:28
樓主寫的真好,贊一個,專門登錄論壇賬號來贊美樓主,代碼以修改到自己的程序了,相當經典而且寫的通俗易懂!
作者: zmc419    時間: 2023-2-2 20:37
滑動濾波算法?




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品亚洲视频在线 | 91久久久www播放日本观看 | 毛片免费观看视频 | 欧美日韩中文在线 | www.男人天堂.com | 国产免费拔擦拔擦8x高清 | 国产精品永久免费视频 | 午夜在线小视频 | 亚洲一区视频在线 | 一级大片网站 | 国产在线精品一区二区三区 | 国产精品久久欧美久久一区 | 亚洲高清视频在线观看 | 日韩精品久久一区二区三区 | 久久久一| 亚洲一区国产 | 99re在线观看| 日韩综合在线 | 男女下面一进一出网站 | 中文字幕在线观看第一页 | 国产激情一区二区三区 | 精品国产一级 | 日韩网| 欧美中文字幕一区二区三区亚洲 | 一区二区不卡 | 中文字幕第十页 | 国产高清视频一区 | 91观看 | 国产精品嫩草影院精东 | 91高清视频| 视频一区二区三区中文字幕 | 亚洲欧美日韩成人在线 | 亚洲97 | 欧美精品免费观看二区 | 亚洲欧美网站 | 久久新 | 狠狠天天 | 天天草天天操 | 欧美视频日韩 | 成人一区二区三区在线观看 | 一区二区三区免费 |