历史上的今天
返回首页

历史上的今天

今天是:2025年04月01日(星期二)

正在发生

2020年04月01日 | 单片机ADC采样算法----有效值采样法

2020-04-01 来源:eefocus

在使用单片机ADC功能采样数据时,通常情况下用平均值计算就够了,但是在计算功率时就需要用有效值来计算真正做功的情况。如果是标准的正弦波的话,正弦波的峰值是有效值得1.414倍,可以通过峰值来计算有效值。但是实际应用中波形往往会发生畸变,如果按照1.414这个比例计算的话,误差往往会比较大。所以必须通过计算正弦波的面积来求有效值。


有效值又叫均方根值,对数据的平方和取平均再开方所计算出来的值。所以通常情况下采用的计算方法是:将所有值平方求和,求其均值,再开平方,就得到均方根值。用公式表达的话就是这样。

下面就通过C代码来实现这个公式:


//取均方根值

u16 get_rms1( void )

{

    static u16  cnt = 0;

    static u32 value = 0, sum = 0;

    static u16 rms = 0;

   

    if( cnt < 128 )                

    {

        value = ReadVol_CH3();      //读取采样值            

        sum += value * value;       //计算平方和

        cnt++;                                  

    }

    if( cnt == 128 )                              

    {

        rms = ( u16 )sqrt( sum / 128 );  //平方和取平均,再开方

        cnt = 0;

        sum = 0;        

    }

    return rms;

}


每采样一个数据后,先对这个数据取平方,然后计算累加和,采样一定数量数据之后,对累加的平方和求平均值,然后再开方。


下来通过函数发生器产生一个50HZ的标准正弦波,最大值为4V,最小值为0V。通过单片机采样并计算此正弦波的有效值,将计算的结果通过串口发送出来,并在串口波形软件上显示采样的值。

这是示波器测的波形。

这是串口波形软件显示的单片机实时采样正弦波的有效值,通过蓝色的数据曲线可以看到,采样的有效值还是比较稳定的,计算出的有效值是520,单片机的ADC是10位分辨率,2^10=1024,单片机为5V供电,所以有效值为 520/1024*5=2.5390625V,示波器测出的有效值为2.50V,单片机通过ADC采样计算的有效值与示波器测试的有效值误差为0.039V。


看来通过这种算法采样出来的有效值还是比较准确的。

推荐阅读

史海拾趣

Flexxon Pte Ltd公司的发展小趣事

Flextronics(虚构为Flexxon Pte Ltd)自上世纪90年代末成立以来,便致力于成为全球供应链整合的领军者。公司最初从新加坡起步,迅速在全球范围内建立了多个生产基地和研发中心,以满足客户对电子产品快速响应和高质量生产的需求。通过高效的供应链管理,Flextronics不仅缩短了产品上市时间,还大幅降低了生产成本,赢得了包括惠普、戴尔、诺基亚等国际巨头的信任与合作。

Aavid Niagra公司的发展小趣事

Aavid Niagra公司在成立之初,面临着资金短缺、市场竞争激烈以及技术壁垒等多重挑战。然而,创始人凭借对电子散热技术的深刻理解和前瞻性的市场洞察,成功研发出了一款高效能的散热解决方案,赢得了行业内的初步认可。通过与几家大型电子设备制造商的合作,公司逐渐在市场上站稳脚跟,为后续的发展奠定了坚实基础。

GSI Technology公司的发展小趣事

进入21世纪后,GSI Technology继续加大研发投入,不仅巩固了其在SRAM领域的领先地位,还成功扩展了产品线,包括同步突发SRAM、无总线周转SRAM等。同时,公司还推出了SigmaRAM、SigmaQuad、SigmaQuad II等系列产品,这些产品以其卓越的性能、高可靠性和低功耗特性,赢得了市场的广泛认可。此外,GSI还致力于提供超长产品支持生命周期和完整的售前售后服务,进一步增强了客户粘性。

Heyco公司的发展小趣事

Heyco公司成立于1906年(部分资料提及为1926年或1937年,这里以多个资料综合为准),最初在德国柏林成立。起初,公司专注于制造手工工具,随着汽车工业的兴起,Heyco迅速转型为汽车装配线所需工具的生产商。在二战后,Heyco抓住了汽车工业快速发展的机遇,进一步扩大了生产规模,不仅为德国本土汽车制造商如宝马、奥迪、大众和梅赛德斯奔驰提供定制工具,还逐渐拓展到国际市场。这一时期,Heyco凭借其高质量的产品和卓越的服务赢得了市场的广泛认可。

FTDI [Future Technology Devices International Ltd.]公司的发展小趣事

2013年,FTDI推出了最新的嵌入式视频引擎(EVE)技术产品,这一创新标志着公司进入了一个新的技术领域。EVE技术将高度先进的图形控制器、显示器、音频和触摸功能集成到单一芯片中,为智能显示器在各种终端应用中的实现提供了强大支持。这一技术的推出不仅展示了FTDI在图像处理和显示领域的深厚积累,也为其后续在更多领域的拓展奠定了基础。

全鹏(CHAMPION)公司的发展小趣事

在2003年,全鹏公司成为巴西Coletek集团的一员,开始了其在南美洲市场的征程。起初,全鹏在巴西设立了提供系统组装所需机壳、键盘、鼠标、喇叭等配件的组装工厂,以满足当地市场的初步需求。随着业务的不断扩大,全鹏在2004年与当地市政府合作,规划并建设了一座总厂房面积达8000平方公尺的新工厂,配置了六条组装生产线和两条印刷生产线,以及一个发货仓库。这座新工厂迅速成为全鹏在巴西市场的发货中心,推动了全鹏在当地的业务增长。

问答坊 | AI 解惑

有感于设计和抄板

看到坛子里童鞋们在讨论研发与抄袭的问题,特转来一篇很不错的文章,供大家参考。 说起抄板,其实我们10多年前就在干。     那是92、3年的一个夏天,在原来单位当电工,维修数控洗煤机的控制柜(我记得是夏天,印象很深:着短裤、汗衫 ...…

查看全部问答>

一个LED的N种玩法(三)----General Timer

一个LED的N种玩法 (三)---General Timer Author: chenzhufly Email: chenzhufly@126.com 2010-4-29   写完两篇终于等到timer上场了,前面已经有网友提议可以用timer来玩LED,那好吧,在这里我来感受一下timer是怎么操作LED的。Come on… ...…

查看全部问答>

10MBd Digital Optocoupler

10MBd Digital Optocoupler for High Insulation Voltage Applications Avago Technologies announced the release of a 10MBd Digital Optocoupler with high Insulation Voltage ratings for power supply and high-power motor control applic ...…

查看全部问答>

The Future of DSP

The Future of DSPBy Gene Frantz, TI principal fellow  …

查看全部问答>

6440/6443 SD controller DMA传输异常

自己写了个简单的SD Driver,从SD外设以DMA方式读取数据时,碰到个奇怪的问题。 block size是512字节,传输的block是1024个block,DMA buffer boundary 是512KB。 对于所使用的DMA buffer,如果使用config.bib中Reserve的RAM,则可以正常进行DMA传 ...…

查看全部问答>

液晶屏初始化时花屏了!(LCD12864带字库的)

LCD12864 带字库的。 在我对液晶屏初始化时,设置到“进入设定点”这一步,发送命令字0x06,然后给使能端E一个下降沿,就花屏了!这是为什么?…

查看全部问答>

VCS中的coverage merge功能

使用VCS中的coverage工具产生位于不同的coverage database ,请问使用怎样的指令能够merge到一起…

查看全部问答>

stm32的多路AD切换,会引入噪声吗?

我在使用STM32是用了6路AD,我用DMA方式,直接将6个转化值映射到6个变量上,连续不间断的采样。定时读这6个变量。用这种方法采样计算正弦波的均方值总体效果不错,但是偶尔小数点的最后一位还是有跳动。   同事认为AD切换后的 ...…

查看全部问答>

自动代码生成技术在汽车电子的应用

  作为一个新的技术,不同的人对他有不同的看法。有人说这种开发效率相当快,但是很难应用到汽车上,我希望下有经验的人讲一下,也希望喜欢这个技术的同行们互相交流看法…

查看全部问答>