基于STC12C5A60S2单片机的交流电压采集问题
这是信号采集电路,第一级运放提供一个1/2Vcc的偏置电压,把交流信号提升到正电压以上,避免出现负压,第二级是I/V转换电路,互感器的电流在R3上转换成电压后输出,直接到...
这是信号采集电路,第一级运放提供一个1/2Vcc的偏置电压,把交流信号提升到正电压以上,避免出现负压,第二级是I/V转换电路,互感器的电流在R3上转换成电压后输出,直接到单片机AD口,单片机以312微妙的间隔采样128个点的两个周期的交流电信号,下图是采集的数据通过串口发送到PC端,在EXCEL里通过图表还原后的波形。
从图表里看,采集到的数据非常完整。
那么,在单片机里我该如何去计算有效值,从网上看了,做均方根,但我写了个函数,结果不正确。还请那位高手帮我解决下。
以下是均方根的函数:
/****************************************** 均方根值函数******************************************/double Calc (double *pData,int nNum){ double fsum=0; unsigned char i; //求平方和 for( i=0;i<nNum;++i) { fsum+=pData[i]*pData[i]; } //平均 开方 return sqrt(fsum/nNum);}在线等!!!! 展开
从图表里看,采集到的数据非常完整。
那么,在单片机里我该如何去计算有效值,从网上看了,做均方根,但我写了个函数,结果不正确。还请那位高手帮我解决下。
以下是均方根的函数:
/****************************************** 均方根值函数******************************************/double Calc (double *pData,int nNum){ double fsum=0; unsigned char i; //求平方和 for( i=0;i<nNum;++i) { fsum+=pData[i]*pData[i]; } //平均 开方 return sqrt(fsum/nNum);}在线等!!!! 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询