基于[CW32數(shù)字電壓電流表軟件教程-實驗七:基本數(shù)據(jù)處理算法(均值濾波)],可以對電壓電流進行同時采集顯示。
電流檢測電路如下:
本項目設(shè)計的采樣電流為3A,選擇的采樣電阻為100mΩ。AIN接入CW32芯片內(nèi)部的AIN11通道,PB05端口上。
電流計算方法為(A為單位):AIN電壓/0.1歐。
AIN電壓計算方法與電壓通道分壓輸入計算相同,V為單位時:
VIN=ADC轉(zhuǎn)換值/4096*1.5V.
核心代碼參考如下:
ADC初始化如下,完成兩路AD轉(zhuǎn)換通道初始化,使用序列掃描模式:
void ADC_init(void)
{
ADC_InitTypeDef ADC_InitStructure; //ADC配置結(jié)構(gòu)體
ADC_SerialChTypeDef ADC_SerialChStructure; //ADC序列通道結(jié)構(gòu)體
GPIO_InitTypeDef GPIO_Init_Struct;
__RCC_GPIOB_CLK_ENABLE(); //打開ADC對應(yīng)引腳時鐘
__RCC_ADC_CLK_ENABLE(); // 打開ADC時鐘
GPIO_Init_Struct.IT = GPIO_IT_NONE;
GPIO_Init_Struct.Mode = GPIO_MODE_ANALOG;//將GPIO的模式配置成模擬功能
GPIO_Init_Struct.Pins = GPIO_PIN_1; // PB01是電壓采集引腳
GPIO_Init(CW_GPIOB, &GPIO_Init_Struct);
PB01_ANALOG_ENABLE(); //使能模擬引腳
PB05_ANALOG_ENABLE();
ADC_StructInit(&ADC_InitStructure); // ADC默認值初始化
ADC_InitStructure.ADC_ClkDiv = ADC_Clk_Div4; //ADC工作時鐘配置 PCLK/4 = 6/4 = 1.5Mhz
/*信號電壓較低時,可以降低參考電壓來提高分辨率。改變參考電壓后,同樣二進制表示的電壓值就會不一樣,
最大的二進制(全1)表示的就是你的參考電壓,在計算實際電壓時,就需要將參考電壓考慮進去。*/
ADC_InitStructure.ADC_VrefSel = ADC_Vref_BGR1p5; //參考電壓設(shè)置為1.5V
ADC_InitStructure.ADC_SampleTime = ADC_SampTime10Clk; //由于電壓信號為慢速信號,ADC采樣時間為十個ADC采樣周期以確保準確
ADC_SerialChStructure.ADC_Sqr0Chmux = ADC_SqrCh9; //配置ADC序列,PB01是ADC的第9通道
ADC_SerialChStructure.ADC_Sqr1Chmux = ADC_SqrCh11;
ADC_SerialChStructure.ADC_SqrEns = ADC_SqrEns01;
ADC_SerialChStructure.ADC_InitStruct = ADC_InitStructure; //ADC初始化
ADC_SerialChContinuousModeCfg(&ADC_SerialChStructure); //ADC序列連續(xù)轉(zhuǎn)換模式配置
ADC_ClearITPendingAll(); //清除ADC所有中斷狀態(tài)
ADC_Enable(); // ADC使能
ADC_SoftwareStartConvCmd(ENABLE); //ADC轉(zhuǎn)換軟件啟動命令
數(shù)據(jù)采集處理代碼如下:
void Volt_Cal(void)
{
ADC_GetSqr0Result(&sampledata); ///當前采集值顯示出來
V_Buffer = (sampledata * ADC_REF_VALUE > > 12) * (R2 + R1)/R1;
// 四舍五入
if(V_Buffer % 10 >= 5)
{
V_Buffer = V_Buffer / 10 + 1;
}
else
{
V_Buffer = V_Buffer / 10;
}
ADC_GetSqr1Result(&I_Buffer); ///當前采集值顯示出來
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
*/
}
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
- 電壓電流表
-
CW32
+關(guān)注
關(guān)注
1文章
203瀏覽量
645
發(fā)布評論請先 登錄
相關(guān)推薦
模電怎么判斷電壓電流反饋器的好壞
對于保證電路的穩(wěn)定性和可靠性至關(guān)重要。 1. 電壓電流反饋器的基本原理 電壓電流反饋器是一種具有電壓反饋和電流反饋功能的放大器。其基本原理是
電流表電壓表無示數(shù)的原因
引言 電流表和電壓表是電氣工程中不可或缺的測量工具。它們能夠測量電路中的電流和電壓,為電路設(shè)計、調(diào)試和維護提供重要數(shù)據(jù)。然而,在實際使用過程中,有時會出現(xiàn)
基于CW32F003E4P7的數(shù)字電壓電流表產(chǎn)品方案
產(chǎn)品實物: 一、產(chǎn)品概述 數(shù)字電壓電流表,又稱為數(shù)顯電流電壓表,是以數(shù)字形式顯示,能夠同時檢測
CW32數(shù)字電壓電流表軟件進階教程-3.電壓電流標定
標定是通過測量標準器的偏差來補償儀器系統(tǒng)誤差,從而改善儀器或系統(tǒng)準確度、精度的操作。為了提高電壓電流表在測量時的測量精度和準確度,需要對電壓電流進行標定校準。 常見的標定原理如下:假設(shè)一個采樣系統(tǒng)
CW32數(shù)字電壓電流表軟件進階教程-2.電壓電流值做均值濾波
在實驗運行7.1章節(jié)例程時 [CW32數(shù)字電壓電流表軟件進階教程-1.
CW32數(shù)字電壓電流表軟件教程-實驗七:基本數(shù)據(jù)處理算法(均值濾波)
有像素的均值,再把該均值賦予當前像素點(x,y),作為處理后圖像在該點上的灰度g(x,y),即g(x,y)=∑f(x,y)/m,m為該模板中包含當前像素在內(nèi)的像素總個數(shù)。這本是數(shù)字圖像處理的一種方法,但也可以用在我們數(shù)字電壓電流表
CW32數(shù)字電壓電流表軟件教程-實驗五:ADC采樣及顯示
的數(shù)字信號。由于數(shù)字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數(shù)轉(zhuǎn)換器都需要一個參考模擬量作為轉(zhuǎn)換的標準,比較常見的參考標準為最大的可轉(zhuǎn)換信號大小。而輸出的數(shù)字量則表示輸入信號相對于參考信號的大小。 6.1.2.
CW32數(shù)字電壓電流表軟件教程-實驗四:數(shù)碼管動態(tài)顯示
5.1.數(shù)碼管動態(tài)顯示原理 所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出段碼和位碼,利用發(fā)光管的余輝和人眼視覺暫留作用,使人眼的感覺好像各位數(shù)碼管同時都在顯示。明確了原理,我們要使
CW32數(shù)字電壓電流表軟件教程(三):數(shù)碼管顯示數(shù)字
數(shù)碼管的顯示原理是由多個發(fā)光的二極管共陰極或者共陽極組成的成“8”字形的顯示器件。數(shù)碼管通過不同的組合可用來顯示數(shù)字0~9、字符A ~ F及小數(shù)點“.”。
CW32數(shù)字電壓電流表軟件教程(一):LED原理與驅(qū)動基礎(chǔ)知識詳解
LED 驅(qū)動指的是通過穩(wěn)定的電源為 LED 提供合適的電流和電壓,使其正常工作點亮。LED 驅(qū)動方式主要有恒流和恒壓兩種。
CW32數(shù)字電壓電流表-產(chǎn)品硬件設(shè)計要點
主要功能: 1、對5-99V的電壓與0.1-3A的電流進行測量與顯示 2、通過藍牙發(fā)送測得的數(shù)據(jù) 3、作為一款CW32+數(shù)碼管的迷你開發(fā)板
CW32數(shù)字電壓電流表-產(chǎn)品制作注意事項
焊接排針再焊接數(shù)碼管,且需要像上圖一樣確保排針底部不要凸出PCB,否則會與數(shù)碼管發(fā)生干涉 2、外殼安裝 如果您計劃使用淘寶或其他渠道購買的公版外殼,在焊接數(shù)碼管前請先仔細閱讀下方內(nèi)容 注:建議先焊接數(shù)碼管,再焊接連接器 上圖為兩種型號的電壓電流
評論