在實驗運行7.1章節例程時 [CW32數字電壓電流表軟件進階教程-1.電壓電流同時顯示] ,會發現實時顯示更新的數據是當前采集值,并未做數據濾波處理。由于采集到的原始數據有一定的波動,因此在顯示更新速度較快時,數字有跳動現象。
因此,在數據處理前,可以增加常見的均值濾波算法。均值濾波原理在實驗七中已有講述。
在7.1實驗例程基礎上,增加均值濾波的核心代碼如下:
void Volt_Cal(void)
{
V_Buffer = Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
I_Buffer = Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
V_Buffer = (V_Buffer * ADC_REF_VALUE > > 12) * (R2 + R1)/R1;
// 四舍五入
if(V_Buffer % 10 >= 5)
{
V_Buffer = V_Buffer / 10 + 1;
}
else
{
V_Buffer = V_Buffer / 10;
}
I_Buffer=I_Buffer * ADC_REF_VALUE > > 12;
/**
mv =I_Buffer * ADC_REF_VALUE > > 12,
R = 100mr,
10ma = mv/R/10=mv/0.1/10 = mv
*/
}
在上述例程中,可以看到使用了均值濾波函數:
Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值濾波
其中,原始數據為每1MS采集一個數據點,共采集100次,即100MS內的定時數據值。單點數據采集在定時器BTIM1中斷函數中完成。
均值濾波函數定義如下:
uint32_t Mean_Value_Filter(uint16_t *value, uint32_t size) //均值濾波
{
uint32_t sum = 0;
uint16_t max = 0;
uint16_t min = 0xffff;
int i;
for(i = 0; i < size; i++)
{
sum += value[i];
if(value[i] > max)
{
max = value[i];
}
if(value[i] < min)
{
min = value[i];
}
}
sum -= max + min;
sum = sum / (size - 2);
//if(sum >1)sum+=4; 后期校準
return sum;
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據采集
+關注
關注
41文章
8003瀏覽量
120692 -
定時器
+關注
關注
23文章
3367瀏覽量
122977 -
均值濾波
+關注
關注
0文章
10瀏覽量
7257 -
CW32
+關注
關注
1文章
299瀏覽量
1812
發布評論請先 登錄
相關推薦
熱點推薦
電壓電流采集模塊:電力物聯網的感知核心與數據基石
電壓電流采集模塊是電力物聯網(IoE)的核心感知單元,將物理世界的電力參數轉化為數字世界的可用數據,為電力系統的智能化、數字化和網絡化提供了關鍵支撐。
工業級電壓電流采集模塊:±0.2%精度,隔離防雷防浪涌
電壓電流采集模塊是工業物聯網、電力監測、工控系統中核心的信號感知與轉換設備,核心作用是將現場的模擬電壓/電流信號精準采集、處理后,轉換為可被控制器、PLC、物聯網平臺識別的數字信號(或
AD8212 高電壓電流分流監測器:特性、應用與操作原理
AD8212 高電壓電流分流監測器:特性、應用與操作原理 在電子工程師的日常設計工作中,對于高精度、高可靠性的電流監測方案的需求始終存在。今天,我們就來深入探討一款高性能的高電壓電流分流監測器
CW32 電容式觸摸按鍵設計指南
前言 CW32 電容式觸摸按鍵設計指南向客戶提供一種利用 CW32 內部資源結合軟件編程實現電容式觸摸按鍵有效 觸摸檢測的方法。本指南的內容重點在于工作原理、軟件檢測過程以及調試指引。
發表于 12-09 06:53
基于芯源半導體MCU cw32芯片制作的USB電壓電流表
1、項目功能介紹
基于芯源半導體MCU cw32芯片制作 USB電壓電流表
基于芯源半導體MCU cw32芯片+INA199芯片制作 USB電壓電流表,精度1%。可以檢測
發表于 12-02 06:39
CW32 MCU的工作電壓、工作溫度是多少?
CW32通用型MCU工作電壓是1.65V~5.5V,射頻MCU工作電壓則是1.8V/2.2V~3.6V;通用型CW32F系列MCU,比如:CW
發表于 11-12 06:49
逆變器中電壓電流傳感器應用
前言:逆變器作為一個組件,有很多的應用領域,也是新能源系統的一個重要單元。逆變器的性能直接影響電池利用率、設備的使用壽命。電壓、電流傳感器作為逆變器重要的“感知器官”,實時的監測、反饋關鍵參數,并由
INA232 高精度數字電流/電壓/功率監測器技術解析與應用指南
Texas Instruments INA232電流/電壓/功率監控器是一款16位數字電流監控器,具有兼容I^2^C/SMBus的接口。該器
電容降壓式直流穩壓電源__電容值&電流計算與穩壓電路
廉、可靠性高、無干擾輻射等明顯優勢。本文給出了降壓電容與輸出電流的簡單計算公式,并設計需求電流>30mA 的穩壓電路,在交流輸入上、下限電壓
發表于 06-19 16:35
電壓環路:電池 → 升壓電路 → 降壓電路 → 電池
因產品需要,設計電路產生了疑難問題。例如:一12v電池接DC-DC升壓電路,電壓升至18v。輸出又接一DC-DC降壓電路,降至12v,輸出又接至電池。由于電壓不可能精準等于理想
發表于 06-13 09:16
常規的電壓電流測量方式有哪些?
常規的電壓電流測量通常采用均值檢波法、峰值檢波法、真有效值法三種方式,本文對比每種方式適應場合以及優勢。 一均值檢波法 采用均值檢波法將交流
CW32數字電壓電流表軟件進階教程-2.電壓電流值做均值濾波
評論