找回密码
 立即注册
楼主: 梁***

交流电压/直流电压ADC测量, 计算有效值 ,送【STC-ISP|调试接口】显示

[复制链接]

该用户从未签到

46

主题

2932

回帖

6611

积分

超级版主

积分
6611
 楼主| 发表于 2024-4-8 22:53:55 | 显示全部楼层
liushiming82 发表于 2024-4-8 22:15
这个公式SQRT(X*25/16/800)=SQRT(X/512)中参数是什么意思?怎么来的,谢谢

程序中没找到你说的这句代码。
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    昨天 22:50
  • 签到天数: 133 天

    [LV.7]常住居民III

    1

    主题

    45

    回帖

    885

    积分

    高级会员

    积分
    885
    发表于 2024-4-9 08:58:22 | 显示全部楼层
    liushiming82 发表于 2024-4-8 22:15
    这个公式SQRT(X*25/16/800)=SQRT(X/512)中参数是什么意思?怎么来的,谢谢

    不是程序中的,是你举的例子中的
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    1

    回帖

    11

    积分

    新手上路

    积分
    11
    发表于 2024-4-10 23:35:39 来自手机 | 显示全部楼层
    梁工 发表于 2024-1-6 13:13
    确实是的,做多路电压、电流采集卡非常不错,做交流采样计算电压电流有效值、有功功率、无功功率、功率因 ...

    梁工,你那里有没有测交流有功功率和无功功率的程序,有的话分享一下

    点评

    没有现成的,自己写一下也简单。比如使用20KHz(50us)的速度触发电压ADC(在定时器中断启动ADC或PWM自动启动ADC均可),ADC中断里启动电流ADC。 ADC中断: { if(电压ADC中断) { 保存电压ADC结果Uadc(有符号  详情 回复 发表于 2024-4-11 10:49
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2932

    回帖

    6611

    积分

    超级版主

    积分
    6611
     楼主| 发表于 2024-4-11 10:49:12 | 显示全部楼层
    W相识W 发表于 2024-4-10 23:35
    梁工,你那里有没有测交流有功功率和无功功率的程序,有的话分享一下

    没有现成的,自己写一下也简单。比如使用20KHz(50us)的速度触发电压ADC(在定时器中断启动ADC或PWM自动启动ADC均可),ADC中断里启动电流ADC。
    ADC中断:
    {
      if(电压ADC中断)
      {
         保存电压ADC结果Uadc(有符号整数),启动电流ADC。
    }
    if(电流ADC中断)
    {
         保存电流ADC结果Iadc(有符号整数),切换到电压ADC。
        计算电压、电流乘加和  power_sum += Uadc*Iadc;
        计算电压平方和  u2_sum += Uadc*Uadc;
        计算电流平方和  I2_sum += Iadc*Iadc;
       if(计算了800次)   //采样40ms
       {
             power_sum_ok =  power_sum;
             power_sum = 0;
             u2_sum_ok = u2_sum;
             u2_sum = 0;
             I2_sum_ok = I2_sum;
             I2_sum = 0;
             adc_ok = 1;
         }
      }
    }

    主程序:
    if(adc_ok == 1)
    {
             adc_ok = 0;
             power = power_sum_ok / 800;   //这个就是有功功率W,1位小数。
             u_rms = SQRT(u2_sum_ok/800);   //这个就是电压有效值V,1位小数。
             i_rms = SQRT(I2_sum_ok / 800);   //这个就是电流有效值A,2位小数。
             power_VA = u_rms * i_rms;     //这个就是无功功率 VA,1位小数。
             功率因数 = power /  power_VA;       //3位小数
             电流、电压相位差 = arcos(功率因数);   
             有功功率累加就是电能,可以换算成千瓦时,4位小数。
    }
    实际还要处理校准系数,如果仅用于显示,则40ms更新太快,可以做8次结果求平均大约就是1秒更新3次,读数稳定,精度也高。
    实际测测试:电压量程 280.0V RMS(误差<1%),电流量程28.00A RMS(误差<2%),功率量程7840W。
    如果电流量程为2.800A,则分辨率1mA,可以测试小功率电器的参数。
    比如测试买来的LED灯:
    如果功率因数是0.5~0.6之间,则灯具有恒流电路但没有功率因数校正。
    如果灯具是用简单的电容降压限流供电,则功率因数在0.3以下,不推荐购买使用。
    如果功率因数大于0.9,则灯具有恒流电路并且有功率因数校正,高档电路。
    也可以测试空调、冰箱的制冷效能是否不良,如果不良,则耗电会明显升高。
    开关电源没有功率因数校正的话,功率因数在0.5~0.6之间。
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 50 天

    [LV.5]常住居民I

    0

    主题

    92

    回帖

    386

    积分

    中级会员

    积分
    386
    发表于 2024-4-20 21:32:28 | 显示全部楼层
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    0

    主题

    84

    回帖

    264

    积分

    中级会员

    积分
    264
    发表于 4 天前 | 显示全部楼层
    回复 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-3 18:54 , Processed in 0.072887 second(s), 49 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表