基于[CW32数字电压电流表软件教程-实验七:基本数据处理算法(均值滤波)],可以对电压电流进行同时采集显示。
电流检测电路如下:
本项目设计的采样电流为3A,选择的采样电阻为100mΩ。AIN接入CW32芯片内部的AIN11通道,PB05端口上。
电流计算方法为(A为单位):AIN电压/0.1欧。
AIN电压计算方法与电压通道分压输入计算相同,V为单位时:
VIN=ADC转换值/4096*1.5V.
核心代码参考如下:
ADC初始化如下,完成两路AD转换通道初始化,使用序列扫描模式:
void ADC_init(void)
{
ADC_InitTypeDef ADC_InitStructure; //ADC配置结构体
ADC_SerialChTypeDef ADC_SerialChStructure; //ADC序列通道结构体
GPIO_InitTypeDef GPIO_Init_Struct;
__RCC_GPIOB_CLK_ENABLE(); //打开ADC对应引脚时钟
__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; //参考电压设置为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序列连续转换模式配置
ADC_ClearITPendingAll(); //清除ADC所有中断状态
ADC_Enable(); // ADC使能
ADC_SoftwareStartConvCmd(ENABLE); //ADC转换软件启动命令
数据采集处理代码如下:
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
*/
}
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
电压电流表
+关注
关注
0文章
25浏览量
2073 -
CW32
+关注
关注
1文章
196浏览量
598
发布评论请先 登录
相关推荐
模电怎么判断电压电流反馈器的好坏
对于保证电路的稳定性和可靠性至关重要。 1. 电压电流反馈器的基本原理 电压电流反馈器是一种具有电压反馈和电流反馈功能的放大器。其基本原理是
电流表电压表无示数的原因
引言 电流表和电压表是电气工程中不可或缺的测量工具。它们能够测量电路中的电流和电压,为电路设计、调试和维护提供重要数据。然而,在实际使用过程中,有时会出现
CW32数字电压电流表软件进阶教程-3.电压电流标定
标定是通过测量标准器的偏差来补偿仪器系统误差,从而改善仪器或系统准确度、精度的操作。为了提高电压电流表在测量时的测量精度和准确度,需要对电压电流进行标定校准。 常见的标定原理如下:假设一个采样系统
CW32数字电压电流表软件教程-实验七:基本数据处理算法(均值滤波)
有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=∑f(x,y)/m,m为该模板中包含当前像素在内的像素总个数。这本是数字图像处理的一种方法,但也可以用在我们数字电压电流表
CW32数字电压电流表软件教程-实验五:ADC采样及显示
的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。 6.1.2.
CW32数字电压电流表软件教程-实验四:数码管动态显示
5.1.数码管动态显示原理 所谓动态扫描显示即轮流向各位数码管送出段码和位码,利用发光管的余辉和人眼视觉暂留作用,使人眼的感觉好像各位数码管同时都在显示。明确了原理,我们要使
CW32数字电压电流表软件教程(三):数码管显示数字
数码管的显示原理是由多个发光的二极管共阴极或者共阳极组成的成“8”字形的显示器件。数码管通过不同的组合可用来显示数字0~9、字符A ~ F及小数点“.”。
CW32数字电压电流表-产品制作注意事项
焊接排针再焊接数码管,且需要像上图一样确保排针底部不要凸出PCB,否则会与数码管发生干涉 2、外壳安装 如果您计划使用淘宝或其他渠道购买的公版外壳,在焊接数码管前请先仔细阅读下方内容 注:建议先焊接数码管,再焊接连接器 上图为两种型号的电压电流
评论