基于[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
*/
}
審核編輯 黃宇
-
電壓電流表
+關(guān)注
關(guān)注
0文章
25瀏覽量
2193 -
CW32
+關(guān)注
關(guān)注
1文章
255瀏覽量
1251
發(fā)布評論請先 登錄
常規(guī)的電壓電流測量方式有哪些?

高壓電阻箱如何進行負載測試?


倍壓電路電流會有多少
前級功放輸出電壓電流多少
電流計改裝成電壓表時刻度怎么刻
開關(guān)電源改可調(diào)電壓電流怎么改
用INA226做了個電壓電流顯示板,芯片在輸出的時候,沒有電流的信息,為什么?
基于CW32的儀表精度測量實現(xiàn)(三):標定與校準

評論