节约资源:电量计量可以帮助人们控制用电量,从而达到节约资源的目的。在当前严峻的资源供应形势下,节约能源是我们应该重视的问题。
合理计费:电表可以帮助公共事业单位进行合理计费,以维护公共事业的正常运营。同时,使用者也能根据自己的实际用电量来支付相应的费用。
监控消耗:通过定期查看电量的使用情况,能够快速发现用电量异常的情况。及时修复故障,避免浪费资源和高额费用。
电量计量技术是由电量计量装置来确定电能量值,为实现电能量单位的统一及其量值准确、可靠的一系列活动。在电力系统中,电量计量是电力生产、销售以及电网安全运行的重要环节,发电、输电、配电和用电均需要对电能准确测量。电量计量的技术水平和管理水平不仅影响电能量结算的准确性和公正性,而且事关电力工业的发展,涉及国家、电力企业和广大电力客户的合法权益。因此,搞好电量计量技术具有十分重要的意义。
总之,电量计量的工作原理是通过测量电压和电流,并根据功率因数计算出有功功率和无功功率,从而实现对用电量的准确计量。
本文主要采用了芯海科技的CSE7759B做为计量芯片。该芯片为单相多功能计量芯片,其提供高频脉冲 CF 用于电能计量,通过 UART 可以直接读取电 流、电压和功率的相关参数(如:系数、周期);串口波特率为 4800 bps(±2%),8 位数据,1 位偶校 验,1 停止位。该芯片采用 SOP8 封装。
硬件设计原理1如下(隔离方案):
在 CSE7759B 的电源端,应并联两个小电容,以滤除来自电网高频及低频噪声。电流信 号通过锰铜电阻采样后接入 CSE7759B,电压信号则通过电阻网络后输入到 CSE7759B。
CSE7759B 为免校准电能计量芯片,芯片出厂校准后偏差为±2%,那么外部器件的精度最终影响客户产品的整体精度,图中标识的 1%精度器件,其精度越高则客户整机精度越高。从上图可看出,电流通道影响电流精度的元器件为 1mR 锰铜电阻,电压通道影响电压精度的元器件为1M电阻和与之相连的1K电阻,当这三个元器件精度均在±1%内时,则 CSE7759B 免校准整机误差可控制在±3%内。电压通道 1M 电阻应选择耐高压 1000V 1%电阻(或更高精度);否则需拆分成 5 个 0805 1%(或更 高精度)电阻。避免使用过程中由于电阻耐压值不够,造成整机损坏。 CSE7759B 部分采集强电信号,根据安规标准任何人体可能触碰的地方需进行隔离,图中使用光耦 隔离(客户自行选择隔离方式,并不限制)。 选择零线做地或火线做地均可,建议使用零线做地。
硬件设计原理2如下(隔离方案):
上图为CSE7759B 非隔离方案,MCU 工作电压 3.3V。若 MCU 工作电压 5V,则 TI 与 MCU 之间接 200R 电阻。
如果需要了解更详细的CSE7759B的硬件方案,请来奇迹物联的wiki知识库来了解更多吧。
本文采用了奇迹物联的红豆版开源技术平台为主控单元,一步步手把手教会读者如何使用红豆版开源平台编写CSE7759B驱动,以及如何调用CSE7759B在OLED屏幕上显示。这里对代码就不多详解,如果需要详细了解,请到奇迹物联的红豆版开源平台了解详细代码讲解。
现在我们开始为大家展示如何在奇迹的红豆平台上,一步步如何实现电量计量功能的吧。
1:创建一个Demo
复制从红豆平台下载的SDK源码包中的的4.2_hal_UART示例工程,到同一个文件夹下,修改文件名为6.0_CSE7759B,如图:
2: 修改makefile
增加文件组件所在目录头文件路径,和源文件路径,如图:
3: 增加头文件
使用代码编辑器,将新建的工程文件加入代码编辑器中,打开main.c,修改main.c,加入am.h等头文件,如图:
4: 修改代码
在Phase2Inits_exit 创建一个任务,如图:
5: 宏定义介绍
输出日志到DEBUG 串口,日志比较少,可以输出到这个串口,如果日志比较多,需要输出到usb口,以免不必要的问题出现
输出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新对应版本mdb.txt文件,软件打开filtter过滤日志,只查看用户输出的日志
栈空间宏定义
6: 全局变量介绍
任务栈空间,本例使用动态内存实现,用户在做项目时,可以预先估算下当先任务需要的大致栈空间,OS没有提供可以查看栈空间使用情况的API
任务指针
任务栈空间,本例使用动态内存实现,用户在做项目时,可以预先估算下当先任务需要的大致栈空间,OS没有提供可以查看栈空间使用情况的API
OLED任务指针
7: 函数介绍
底层初始化,本例空
底层初始化,本例空
底层初始化,本例空
创建主任务,初始化消息队列,定时器,任务等。
代码片段:
C |
串口回调函数,提供给UART_OPEN 调用。
代码片段:
C |
串口数据接收任务,收到回调函数的消息后,处理消息中的数据。
代码片段:
C |
OLED任务,显示收到的电压,电流,功率,电量到OLED。
代码片段:
C |
8: 编译
在SDK根目录打开命令行,输入命令.\build.bat -l .\amaziot_bloom_os_sdk\sample\3rd\6.0_CSE7759B\
C++ |
9: 生成固件
参考入门中开发工具,生成工具。
10: 测试
测试步骤:
11: 固件
上电后,debug串口会打印出计算出的数据;
OLED屏幕会显示参数信息
(如有侵权,联系删除)
文章评论(0条评论)
登录后参与讨论