<span style="font-size:20px;font-family:Microsoft YaHei">
# 1 简介
  作为电子爱好者的你我,一定用万用表测量过电压和电流,以判断电路是否正常工作.但你是否好奇,测量电压电流背后的原理是什么?能不能自己做一个电压电流表呢?本开源工程就手把手地教你从硬件设计原理到软件代码、从数据库搭建到数据可视化展示,一步步做一个基于立创地文星(CW32G030C8T6)的多功能物联网电压电流表.</font>
  首先上几张实物图.各位大佬们可以基于本项目,继续改进优化PCB布局、软件设计~
![图1 实物正面.jpg](https://image.lceda.cn/oshwhub/8ae4f4c6c7914a5b84eab371f38059fc.jpg)
<body>
<p align="center">图1 实物正面</p>
</body>
![图2 实物背面.jpg](https://image.lceda.cn/oshwhub/db8b4a47c15247e5995b97c887314a9c.jpg)
<body>
<p align="center">图2 实物背面</p>
</body>
# 2 硬件设计及原理
## 2.1 供电电路
  电源拓扑图如图3所示.
![图3电源拓扑图.jpg](https://image.lceda.cn/oshwhub/415c5566745e481a8509559cce55a7b1.jpg)
<body>
<p align="center">图3 电源拓扑图</p>
</body>
  供电部分使用了一节18650锂电池,充电管理芯片用的是TC4056A,最大可支持到1A充电电流,电路设计如图4所示.
![图4 锂电池.jpg](https://image.lceda.cn/oshwhub/d81218e8ddd94a8d9c8b709707b8cba0.jpg)
<body>
<p align="center">图4 充电管理电路</p>
</body>
  如图5所示,DCDC升压电路部分,使用的是MT3608B,其在电流小于100mA时的效率约92%.输出电压是使用电阻分压反馈方式,VOUT=(1+R2/R1) * VREF.手册里写VREF=0.6V,我取R2=91KΩ,R1=13KΩ得到VOUT=4.8V.这里两个分压电阻大一点好,这样流过它们的电流小,它们所耗的功率也会变小.这里的电感4.7uH是按芯片手册来的,建议选择一个等效直流电阻更低的电感,这样也能提高效率.这里的续流二极管必选肖特基二极管,考虑到整机电流不大,用SS14就行.
![图5 dcdc.jpg](https://image.lceda.cn/oshwhub/0ca0fafd4e3d431892f3386f61fac4e4.jpg)
<body>
<p align="center">图5 DC-DC升压电路</p>
</body>
  降压至3.3V的LDO为RS3236-3.3,选用它是因为其有EN引脚,可用CW32的GPIO控制LDO启停,此外它还有极低的待机电流(0.01uA),能让整机静态电流再降一些.LDO电路设计见图6.
![图6 ldo.jpg](https://image.lceda.cn/oshwhub/5fd8f2a25ccc4a0eb672f1b808281eba.jpg)
<body>
<p align="center">图6 LDO降压电路</p>
</body>
## 2.2 MCU选型——为什么选CW32
  测量电压和电流,实际上都是在采集电压数据,而电压值是模拟量,要转换成程序能读取的数字量就要用到ADC(模数转换),立创地文星开发板是使用的CW32F030C8T6,拥有12位精度的高速ADC,有多种Vref参考电压:1.5V、2.5V、VDD、ExRef(PB00)引脚电压.而STM32只有一个VDD作为参考电压,考虑到精度问题,自然是可选的Vref多一点好.CW32用户手册对ADC的介绍如图7所示.
![图7 ADC介绍.jpg](https://image.lceda.cn/oshwhub/468ea40526524a299e293fbd51b62d3e.jpg)
<body>
<p align="center">图7 CW32数据手册对ADC介绍</p>
</body>
  此外,还考虑到本项目使用了TFT屏幕、ESP8266、按键控制、ADC采集,所需要的IO口数量较多,地文星开发板提供了32个IO引出,很够用了.
## 2.3 ADC电路
  ADC,是Analog-to-Digital Converter的缩写,指模/数转换器,是将连续变量的模拟信号转换为离散的数字信号的器件.
  ADC引脚功能说明如下表所示
|端口-ADC通道|功能|
|:---:|:---:|
|PBA7-ADC_IN7 | 电池电压测量|
|PB00-ADC_IN8 |电压测量校准|
|PB01-ADC_IN9 |电压测量0~3V|
|PB10-ADC_IN11| 电压测量0~31V|
|PB11-ADC_IN12 |电流测量0~1A|
### 2.3.1电压采样电路
  电压采样电路设计图如图8所示,选取Vref为内置1.5V电压.
![图8 电压采样电路.jpg](https://image.lceda.cn/oshwhub/43a7b2a3b2ac4c58955b4d9a68dadcf8.jpg)
<body>
<p align="center">图8 电压采样电路</p>
</body>
  大量程这边使用一个200k和10k电阻分压,采集10k电阻上的电压值,则最大量程计算方法为:
$$
U_{adc11max}= \frac {1.5}{\frac{10k}{10k+200k}}=31.5V
\tag {1}
$$
  取整数31V,当电压为31V时,算一下电阻R2和R5上的功率:
$$
P_{R5max}= \frac{(31\times \frac{10k}{10k+200k}) ^{2}}{10k}\approx 0.218mW
\tag {2}
$$
$$
P_{R2max}= \frac{(31\times \frac{200k}{10k+200k}) ^{2}}{200k}\approx 4.36mW
\tag {3}
$$
  所以R2和R5选择0603的封装(100mW)都绰绰有余,按个人手头上有的器件来选贴片电阻的封装即可.
  小量程这边使用了两颗10kΩ ±0.1%电阻分压,最大量程计算方式与 **式(1)** 相同,可算得量程为0~3V.
  后面在软件部分实现了自动换挡功能,实现了小电压高精度测量、大电压经校准后也能有很高的精度.
### 2.3.2 电流采样电路
由
$$
I_s = \frac{V_{REF}}{4096} \times \frac{1}{R_{sa}} \tag{4}
$$
可知,在参考电压$V_{REF}$一定的情况下,采样电阻$R_{sa}$越大,对应的$I_s$越小.因为本人经常测量毫安级的电流,自然希望单位ADC值所对应的电流越小越好.故选用2512封装的200mΩ电阻,功率为2W.
$$
I_{Rmax} = \sqrt{\frac{P_{max}}{R_{sa}}} = \sqrt{\frac{2}{0.2}}\approx 3.16A
\tag{5}
$$
  由 **式(5)** 知,200mΩ电阻能采集的最大电流为3.16A,大于设计的采集电流1A.此时单位ADC值对应的电流为
$$
I_s = \frac{1.5V}{4096} \times \frac{1}{0.2Ω} \approx 1.83mA \tag{6}
$$
符合设计需求.
  电流采样电路设计如图9所示.
![图9 电流采样电路.jpg](https://image.lceda.cn/oshwhub/b28d0fd4320d471994ad5568a3a5ad3c.jpg)
<body>
<p align="center">图9 电流采样电路</p>
</body>
### 2.3.3 电池电压采样
  电池电压采样电路设计见图10.使用两个10KΩ ±0.1%的电阻分压.选用内部参考电压2.5V.
![图10 电池电压.jpg](https://image.lceda.cn/oshwhub/2c8d5c5f3d4f4ccb9c9e6c23b73bf8b0.jpg)
<body>
<p align="center">图10 电池电压测量电路</p>
</body>
### 2.3.4 TL431电压校准电路(可选)
  在本项目中还使用了一个TL431做电压校准电路,用于提供2.5V的基准电压,虽然CW32内置了2.5V的电压基准,理论上无需外部基准,但可用TL431来学习电压基准芯片的应用原理.
![图11 TL431原理图.jpg](https://image.lceda.cn/oshwhub/8bc91e0606114b16b16fb041d7c79707.jpg)
<body>
<p align="center">图11 TL431原理图</p>
</body>
  如图11所示,TL431的核心是一个运放,在电路中充当比较器.芯片内部有一个Vref电压(约为2.5V),作用在比较器的反相端.比较器的同相端会输入一个电压给REF,当这个电压大于Vref时,比较器输出高电平,使能三极管,使CATHODE(阴极)端与 ANODE(阳极)端导通,此时,若REF和CATHODE处于同一电位(连接在一起),则REF处的电位被拉低,当REF处的电位被拉低至低于Vref时,比较器输出低电平,三极管关断,REF处的电位回升,当高于Vref时,继续执行以上描述,如此循环.由于硬件的响应速度是极其快的.所以REF处的电压几乎等于Vref.
  TL431电路设计见图12.
![图12 TL431电路图.jpg](https://image.lceda.cn/oshwhub/77fccbfbf0764b03b6bbc286afc97e46.jpg)
<body>
<p align="center">图12 电压校准电路</p>
</body>
## 2.4 按键电路
  CW32的I/O口内部可以配置上下拉电阻,在芯片外围的按键控制电路则无需配置.按键一端接入MCU的I/O上,另一端接地.按键按下,I/O被拉低,在代码编写时去检测下降沿然后进中断即可,代码部分会在软件设计章节(第3节)�
没有合适的资源?快使用搜索试试~ 我知道了~
基于立创地文星开发板做的多功能物联网电压电流表,可用WIFI上传数据至云端
共337个文件
js:128个
html:86个
h:47个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 161 浏览量
2024-09-02
11:56:53
上传
评论
收藏 1.09MB ZIP 举报
温馨提示
基于立创地文星开发板做的多功能物联网电压电流表,可用WIFI上传数据至云端,并通过Grafana查看_CW32F030C8T6_VAmeter,并通过Grafana查看_CW32F030C8T6_VAmeter.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于立创地文星开发板做的多功能物联网电压电流表,可用WIFI上传数据至云端 (337个子文件)
删除目标文件(用于打包备份).bat 132B
Picture.c 48KB
cw32f030_rcc.c 31KB
cw32f030_adc.c 28KB
cw32f030_i2c.c 24KB
cw32f030_atim.c 20KB
cw32f030_vc.c 20KB
cw32f030_rtc.c 18KB
cw32f030_uart.c 17KB
cw32f030_flash.c 16KB
cw32f030_btim.c 14KB
cw32f030_spi.c 14KB
cw32f030_gtim.c 12KB
cw32f030_dma.c 9KB
cw32f030_gpio.c 9KB
esp8266_cmd.c 9KB
cw32f030_lvd.c 8KB
Lcd_Driver.c 8KB
cw32f030_iwdt.c 6KB
cw32f030_systick.c 6KB
va_meter.c 6KB
cw32f030_crc.c 6KB
GUI.c 6KB
cw32f030_awt.c 5KB
cw32f030_pwr.c 5KB
adc.c 5KB
cw32f030_wwdt.c 5KB
menu.c 5KB
sys.c 5KB
tim.c 4KB
sht40.c 4KB
bsp_uart.c 4KB
system_cw32f030.c 4KB
board.c 3KB
main.c 3KB
cw32f030_digitalsign.c 3KB
cw32f030_ram.c 3KB
cw32f030_debug.c 3KB
mqtt.c 3KB
key.c 2KB
gpio.c 2KB
str.c 1KB
doxygen.css 49KB
tabs.css 11KB
search.css 5KB
navtree.css 2KB
Project_sort_by_flash.csv 3KB
Project_sort_by_ram.csv 676B
Doxyfile 128KB
keil5_disp_size_bar.exe 993KB
cw32f030.h 671KB
cw32f030_gpio.h 76KB
cw32f030_adc.h 37KB
cw32f030_rcc.h 32KB
Font.h 29KB
cw32f030_rtc.h 24KB
cw32f030_vc.h 21KB
cw32f030_atim.h 18KB
cw32f030_gtim.h 18KB
cw32f030_dma.h 15KB
cw32f030_spi.h 14KB
cw32f030_uart.h 13KB
cw32f030_lvd.h 11KB
cw32f030_btim.h 11KB
cw32f030_flash.h 8KB
cw32f030_iwdt.h 7KB
cw32f030_i2c.h 7KB
base_types.h 6KB
cw32f030_awt.h 6KB
cw32f030_wwdt.h 5KB
cw32f030_pwr.h 5KB
cw32f030_crc.h 4KB
Lcd_Driver.h 3KB
cw32f030_debug.h 3KB
cw32f030_digitalsign.h 3KB
cw32f030_ram.h 3KB
cw32f030_systick.h 3KB
system_cw32f030.h 3KB
platform_config.h 2KB
board.h 1KB
bsp_uart.h 1KB
menu.h 1KB
sht40.h 1KB
mqtt.h 965B
esp8266_cmd.h 862B
key.h 860B
GUI.h 780B
Picture.h 766B
main.h 638B
sys.h 616B
adc.h 600B
tim.h 519B
va_meter.h 495B
gpio.h 486B
str.h 433B
RTE_Components.h 317B
RTE_Components.h 316B
_font_8h_source.html 64KB
_lcd___driver_8h.html 54KB
_lcd___driver_8c.html 32KB
共 337 条
- 1
- 2
- 3
- 4
资源评论
好家伙VCC
- 粉丝: 2060
- 资源: 9145
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 贪心算法人机对战五子棋
- C#ASP.NET core2.0基础权限源码数据库 SQL2008源码类型 WebForm
- 520节日爱心代码,编程语言实现的爱心代码
- C#VS2019仓库温控系统源码 仓库温度管理系统源码数据库 SQL2008源码类型 WinForm
- 前端跨平台开发框架大盘点,前端开发框架介绍
- 《农业工程学报》论文模板
- 学习笔记01-即插即用的语义分割解码器模块DEPICT
- C#ASP.NET Core 3.1学生信息管理系统源码带运行文档数据库 SQL2014源码类型 WebForm
- Python机器人运动仿真 机器人matlab运动仿真
- java高校实验室智能管理系统源码数据库 MySQL源码类型 WebForm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功