首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Arduino的能量计算

基于Arduino的能量计算
EN

Stack Overflow用户
提问于 2022-03-27 07:29:55
回答 1查看 411关注 0票数 -1

如果我有功率,电流,电压值,我如何计算精确的能量

这是能量计算的代码,结果是错误的,所以我如何修正

我要测量表观能量,我在V,I,P值上没有问题

代码语言:javascript
复制
if(millis() >= energyLastSample + 1)                                                
          {
            energySampleCount = energySampleCount + 1;  
            energyLastSample = millis(); 
          }
          if(energySampleCount >= 1000)
          {                                                       
            apparent_energy_l1 = apparent_power_l1/3600.0;                                            
            finalEnergyValue_l1 = finalEnergyValue_l1 + apparent_energy_l1;
            
            apparent_energy_l2 = apparent_power_l2/3600.0;                                            
            finalEnergyValue_l2 = finalEnergyValue_l2 + apparent_energy_l2;
            
            apparent_energy_l3 = apparent_power_l3/3600.0;                                            
            finalEnergyValue_l3 = finalEnergyValue_l3 + apparent_energy_l3;
            
          //  Serial.print(finalEnergyValue,2); 
         //  Serial.println("test"); 
            energySampleCount = 0 ;                                                           
         }
           energy_total=  finalEnergyValue_l1+finalEnergyValue_l2+finalEnergyValue_l3;
}

关于使用Arduino或任何微控制器、开源代码或项目的功率计算的一些技巧,解决我的问题的指南。

EN

回答 1

Stack Overflow用户

发布于 2022-03-27 08:32:32

请注意,能量( get )是一种随时间变化的功率度量,而功率是一种功的度量,这意味着您不能简单地将功率除以3600 (这将是从秒到小时转换的因子)来获得能量值。功率(W)是衡量一个设备目前正在做多少工作的指标。如果您想要计算设备消耗的能量,您将不得不连续测量电源,例如,在1s间隔内,并将其添加到计数器中。那么你就有了一个值,它代表Watt秒。然后,您可以从该值计算消耗的Wh。

示例:您有一个消耗300 W电源的设备。你让那个装置运行了整整三个小时。如果你像描述的那样,每秒钟测量一次电能消耗,你就会测量出3240000瓦秒。3240000 Ws / 3600 =900 kWh / 1000 = 0,9 kWh。当然,您可以更改您的测量间隔,以满足您在准确性方面的需要。

伪码:

代码语言:javascript
复制
if ( millis() >= lastmillis + 1000 )
    {
        lastmillis = millis();
        wattseconds = wattseconds + power; #increment energy counter by current power
        kilowatthours = wattseconds / 3600000; 
        print(kilowatthours)
    }

当然,您可以使用带有外部RTC的one second interrupt来获得更准确的计时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71634437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档