这里目录

  • 一、 项目概述
  • 二、硬件设计
    • 1、硬件方案确定
  • 三、软件设计
    • 1、程序设计
    • 2、程序流程
  • 四、结束语

本文使用环境:
电脑:windows10
主控:W806(240MHZ)
外设采集:INA226(IIC)
外设显示:0.91 OLED(IIC)
编译环境:平头哥的CDK
原理图PCB:立创EDA,(当然完全开源,链接就在下面,可以自己拿去改)

立创EDA中的硬件设计

程序代码

github地址

一、 项目概述

这个是我自己抽空做的一个小设计,感兴趣的可以试一试,就当练手,可惜的是当时下单的时候搞错了,没有下单基佬紫,原谅色有点丑,只能将就。
上图:

        就是一个功率计、也叫库仑计、还叫什么什么计,那不重要,作用都是用来采集外部电压、电流、功耗的。本计以W806单片机作为主控,INA226作为外部电压电流采集IC来做的设计。这里不讨论成本什么的,只考虑能不能行,感不感兴趣。当时这款开发板给我的最深刻的印象就是240Mhz,还有价格8.9,芯片是5.9RMB。所以毫不犹豫买回来试一试,毕竟任何一个电子爱好者都是搜集开发板,然后吃灰。

USB3.0接口。
输入电压:4.5-36。
测量电流:0-5A。PS – 我并没有实际测过,只做过2A一小时的实际测试,5A没那条件,干不了。

主控:W806
显示:0.91OLED(IIC)
电压电流:INA226(IIC)
这两个外设其实可以使用一路IIC的,但我是分开设计的。

二、硬件设计

关于硬件设计链接我放在了开头,有需要的可以直接拿过去修改,当然我画的板子还是存在各种的小问题,有问题的可以指出来,大家一起修改。

1、硬件方案确定

在设计之前肯定是首先选择方案,详情见下图,当然这里的方案选择前面也说了,是我的一厢情愿,并未实际考虑成本是否最优等。完全是我自己的兴趣爱好,仅此而已,所以不再赘述。

说明一下:
1、下载问题
        板子设计有CH340N,所以不需要外接USB转TTL了,同时复位键我也直接接到了单片机上,应该可以实现不用按复位键就可以实现程序的下载和执行 当然这是我后面加的功能,并没有在我第一版上实现,这个功能并未实际验证,但是问题不大,因为我看到群里有老哥这样做了,正常使用,所以可以参考这个设计
2、实际焊接中的问题:
        焊接的时候,遇到过电源不接负载输出电压不正常的情况,接上负载一切正常,所以如果有参考设计的请注意一下这个问题。

三、软件设计

1、程序设计

考虑到实际的需求,软件设计分为如下几个方面:

1、数据保存
        这里主要用于保存充电的时间,当有功耗产生时,才进行计时,断开后数据会保存在flash中,直到手动清零,否则不会自动清理。
2、定时器计时
        每一秒钟中断一次,使用一个变量进行计时,没一秒钟加一次。我实际测过,24小时之内是没有问题的,时间不会有肉眼可见的偏差,当然因为我只做了24小时,所以并不是说最长只有24小时。
3、电压电流采集
        程序我都是参考网上的教程,所以不做过多的说明,在最后我也会把源程序附上,可以直接下载。只说我遇到的问题。INA226初始化问题:

        前两个函数没问题,主要是第三个函数的CAL值,存在争议。

CAL是在.h文件定义的,我参考的其他设计,所以在INA226的采样电阻第一版使用R100即0.1欧姆,实际应用的时候发现最多只能测量600多mA的电流,最后采用四个0.1并联的方式,将电阻降到了0.0245才正常使用。当然0.025的采样电阻我也最多只测试过2A的电流,因为手里最多就只有2A的负载,并未低其他数值进行测试,有条件的可以试一试。讲一讲这个值是怎么算的。
首先查看ina226的datasheet:(手册15页)

        CAL就是写入寄存器的值,RSHUNT是采样电阻的值这里为:0.025。进一步也就是说需要算出Current_LSB的值。这就涉及到其他的公式了,我在这里也是一头雾水,现在大概看懂了一些。有兴趣的可以看一看原版英文手册。

INA226_VAL_LSB,是电压寄存器的LSB,也就是说一个bit代表多少电压的意思,采用默认值2.5uV,寄存器的最大值位0X7FFF = 32767,所以最大的电压为 = 2.5/1000X32767 = 81.9175mV。采样电阻为0.025,最大电流为 = 81.9175/0.025 = 3276.7mA。这就是Maximum Expected Current。
Current_LSB = Maximum Expected Current / 32767 = 0.1。
CAL = 0.00512 X 1000 / (0.025 X 0.1) = 2048
注意:以上公式中有的是/1000有的是*1000这里是单位的换算。

4、OLED显示
        就是单纯的使用OLED显示。看程序就能看懂。
5、外部中断按键
        主要是预留的按键,其中一个按键并未使用到,另外一个按键用于时间的清零。

2、程序流程

比较简单直接看图。

        程序不再展开了,可以直接参考源代码。

四、结束语

本工程只能说参考,设计中还是有很多的不合理的,大家可以在下面留言评论,后续有时间再改版。

有人可能会问精度,emmm。犹豫没有专业的设备,所以无法给出具体的值,我有一个买的电流计,用起来两个数值差不多的,所以感兴趣只能自己去慢慢调教。

最后再上一张图。

联盛德W806+INA226 = 功率计相关推荐

  1. 【联盛德W806上手笔记】七、I2C

    目录 WM_SDK_W806_v0.6.0的库函数 函数 参数 宏 应用示例 初始化 使用 测试 I2C 控制器 功能概述 主要特性 功能描述 传输速率选择 中断及启动停止可控 快速输出及检测信号 寄 ...

  2. 【联盛德W806上手笔记】一、开发环境和烧录程序

    目录 简介 芯片外观 MCU 特性 安全特性 低功耗模式 芯片结构 管脚定义 极限参数 开发环境 SDK的获取 从官网获取 从Q群获取 iosetting大佬 维护的wm-sdk-w806 打开工程 ...

  3. 联盛德W806最小系统开发板第一次上手准备工作

    W806 芯片 是一款安全 IoT MCU 芯片.芯片集成 32 位 CPU 处理器,内置 UART.GPIO.SPI.SDIO.I2C.I2S.PSRAM.7816.ADC.LCD.TouchSen ...

  4. 【联盛德W806上手笔记】五、TIM定时器

    目录 定时器 库函数 函数 参数 宏 Demo中的测试程序 main.c wm_hal_msp.c wm_it.c 实验现象 Windows 10 20H2 HLK-W806-V1.0-KIT WM_ ...

  5. 【联盛德W806上手笔记】三、MCU系统与时钟结构

    目录 总线结构 AHB-1 总线 AHB-2 总线 时钟与复位 主要特性 时钟结构 功能描述 时钟门控 时钟自适应关断 功能复位 时钟分频 寄存器描述 寄存器列表 软件时钟门控使能寄存器 软件时钟掩码 ...

  6. 【联盛德W806上手笔记】二、GPIO

    目录 GPIO 控制器 库函数 函数 参数 宏 极限翻转速度 寄存器操作 库函数操作 测试 main.c wm_it.c Windows 10 20H2 HLK-W806-V1.0-KIT WM_SD ...

  7. 【联盛德W806上手笔记】八、SPI及其DMA

    目录 高速 SPI 设备控制器 库函数 函数 参数 宏 应用示例 初始化 引脚复用 中断相关 使用 注意事项 DataAlignment Direction 测试 main.c wm_hal_msp. ...

  8. 联盛德W806入门教程-CDK安装教程及代码下烧录

    笔者使用的系统板如下图所示: 首先安装代码编译软件CDK: 硬件:⚫ W805/W806 开发板 ⚫ USB 转串口线 软件: Windows 端编译工具:CDK 安装包 链接:[https://pa ...

  9. 联盛德W806,W801刷固件步骤

    本文针对无基础玩家参考,如有不对的欢迎指正 1)需要准备物料 1.开发板801或806 2.CH340驱动 (USB转串口驱动) 3.烧入工具(官方首页-芯片-W800-开发工具- 4.PC端固件烧录 ...

  10. 联盛德W806-KIT开发板试用评测系列之二:ADC 功能使用与测试

    联盛德W806-KIT开发板试用评测系列 之二:ADC 功能使用与测试 作者:大信<QQ8125036> 今天着手对W806开发板ADC功能做测试,都知道ADC在物联网应用场景中常需要用到 ...

最新文章

  1. 通信 / 各种协议默认端口汇总
  2. java.net.SocketException: Permission denied解决
  3. warning C4828问题的处理
  4. c++ so 反射_c++如何实现反射功能?
  5. 【Java】浅谈JavaDoc文档注释
  6. 推荐10个优秀GitHub仓库
  7. 解析docker中的环境变量使用和常见问题解决
  8. cPanel附加域名出现Error from park wrapper: 使用带以下 IP 的命名服务器:
  9. 【渝粤教育】国家开放大学2018年春季 0579-21T电路及磁路(2)(一) 参考试题
  10. win7纯净版64位系统下载
  11. 支付宝授权登陆php,php实现支付宝授权登录
  12. 基于 Vue3 的颜色选择器
  13. 安装wget 、 wget命令
  14. atv320说明书_ATV320U30N4B 施耐德 ATV320通用变频器 说明书
  15. windows10虚拟桌面快捷键
  16. 温度补偿计算公式_基于温度压力补偿计算的燃气表计量方法与流程
  17. java sencha_Sencha学习入门
  18. 4G工业路由器DTU的扩展功能
  19. 完全二叉树 满二叉树
  20. Angular7入门辅助教程(一)——Angular模块

热门文章

  1. mysql数据库安装教程(超级超级详细)
  2. js遍历对象去除空格
  3. 工控--常用编程软件
  4. 小米路由器 网站服务器地址,小米路由器设置网址
  5. 油猴脚本管理器使用指南
  6. c语言弹窗口的,弹窗代码 javascript如何编写一直弹窗口代码
  7. 零基础入门Matlab(一篇两个小时就能学完的入门博客)
  8. matlab肆,matlab入门教程
  9. 微软启动Menlo计划;英特尔手机处理器上市(每日关注20100505)
  10. Mac OS端如何使用fastboot工具