
CW32F030C8T6电压电流表_OLED__网络时钟
简介
本项目是基于立创开发板CW32地文星开发的电压电流表,可进行日常基本的电压电流测量,精度相差不大,需要精准请还是使用万用表,本项目仅作为了解电压电流表的原理学习使用
简介:本项目是基于立创开发板CW32地文星开发的电压电流表,可进行日常基本的电压电流测量,精度相差不大,需要精准请还是使用万用表,本项目仅作为了解电压电流表的原理学习使用开源协议
:GPL 3.0
描述
视频链接:
[B站视频--功能演示及介绍]https://www.bilibili.com/video/BV1iSWVenErq/?vd_source=dcec384099758377125cc78a52ec1015
项目简介
本项目是基于立创开发板CW32地文星开发的电压电流表,可进行日常基本的电压电流测量,精度相差不大,需要精准请还是使用万用表,本项目仅作为了解电压电流表的原理学习,除了主功能之外,板子设计有SPI OLED接口,用于电压电流的数值显示,同时设计有CH340串口输出功能,用于数据的收发,这里我们使用MODBUS通信协议,原本设计由上位机发送请求电压值指令,由于地文星的RX口被打坏,这里采用主动发送的形式,由菜单设置是否输出,主要是发现板载的typeC没有虚拟串口功能,还需要外接USB-TTL比较麻烦,另外板载ESP01S模块接口,可用于物联网开发,类似于MQTT等,这里笔者用来作为网络时钟的功能,通过该模块向API请求网络时间数据,时间有限还没有进行网络天气的开发。
项目功能
本设计是基于立创开发板-地文星设计的电压电流表:
1.设置有4个按键,分别是确认、上一个、下一个、返回,用于操作菜单进行功能设置
2.板载TypeC-CH340解决地文星需要USB-TTL模块的问题,可用于数据收发,这里用于将电压电流数据上传至PC上位 机,用于观察电压电流的稳定性,趋势变化和重复精度。
3.板载7针SPI OLED接口,同时兼任硬件IIC OLED,可用于SPI/IIC OLED的学习
4.板载ESP01S模块接口,可用于无线通信学习,物联网学习如MQTT,网络时钟、天气时钟等
5.板载DC座子,输入电压通过降压芯片降至5V给系统供电
6.板载电压电流测试端子接口,用于电压电流测试
物料购买
1.立创开发板地文星/地阔星
2.ESP01-S WIFI模块,建议连座子一起购买,方便串口调试
3.0.96寸 SPI OLED
4.按键购买侧插 长一点的,需要伸出外壳
项目参数
1.本设计采用0.96寸7针SPI OLED,用于电压电流显示、菜单显示、以及时钟显示
2.本设计采用ESP01—S模块,用于网络时钟获取,也可连接阿里云,进行数据上传和指令下发,可实现物联网开发
3.本设计采用CH340芯片,解决地文星没有虚拟串口的功能
原理解析(硬件说明)
此处可填写项目的设计原理,将设计的原理拆分解析,示例:
本项目由以下部分组成,电源部分、电压采样和标定部分、电流采样和标定部分、OLED部分,ESP01S模块部分,USB-TypeC部分,按键部分,LED拓展部分,拓展引脚部分,本项目主要是通过两路电压采集电路对不同电压进行不同的分压,使得输入ADC采样的电压处于安全电压内,最大可测量30V,更换不同分压电阻和内部参考电压可拓展电压测量范围,采集的电压通过串口输出,采用MODBUS通信协议,MODBUS通信协议更符合工业环境,OLED显示测量对应的电压电流值,在不使用电压电流表的时候,使用ESP01—S模块连接网络,向网络请求网络时间,该板子可作为网络时钟小摆件,网络时钟每5分钟更新一次,进行校准。
显示是拍照问题,OLED在刷屏
1.电源电路:
这里供电可使用DC供电,DC供电输入范围0-30V,输入电压通过SE8550HF电路降至5V输入系统,同时也可以采用TYPE-C-16P接口作为供电接口,同时使用对应的USB数据引脚接入CH340芯片,再接入PA9,PA10,直接使用USB进行串口通信,无需外接串口转换模块。需要注意的是,在CC1和CC2引脚处加入5.1K下拉电阻,便于不同主机识别和配置,同时因为这里采用5V供电,根据数据手册说明,CH340E的3脚接入100nf再接地。
这里有一个细节,在这里采用PA9,PA10是为了兼容STM32F103C8T6地阔星
2.电压采样和标定部分
测量电压分别经过分压输入ADC_IN8,ADC_IN9,短接H7可使用系统电压作为测量电压测试,通过R14电位器可调节输入电压,同时接入二极管1N4148W对电路进行保护
3.电流采样和标定部分
电流采样电路输入ADC_IN7,在不接入R6-100毫欧电阻的情况下可短接H7使用电压模拟电流
4.OLED部分
这里引脚接入使用SPI,同时这里有一个比较细节的点,SDA脚可通过短接PB14或者PB15,主要是为了在使用IIC OLED时,可使用硬件IIC
5.ESP01S模块部分
ESP01S模块,TX,RX脚接到PA2,PA3
6.按键部分
按键部分做的比较简单,没有进行上拉,需要注意的是,GPIO需要配置为上拉输入
7.LED拓展部分
LED拓展电路,可任意接入其他IO
8.拓展引脚部分
将全部引脚引出,方便使用和调试
9.原理图电路设计
这里我们可以看到,其实笔者在设计原理图时就有意的对比地文星和地阔星,使得这一块板子除了可完成电压电流表的设计的同时也可以作为一个开发板去使用,笔者也看了一下,板子也可以兼容GD32E230C8T6,其他板子还没看,设计时只结合地文星和地阔星
软件代码
程序具体查看附件
1.ADC采样部分
(1)采集4个通道,包括内部参考电压AI17
(2)ADC采用外部触发模式,由定时器1ms触发一次采样
(3)每采样一次将数据压入数组,达到数据之后对数组数值进行均值滤波,再换算成对应的电压电流值
(4)输出方面,当3V通道采样小于4095时,输出3V通道的数值作为采样电压,超出4095将转为30V分压通道输出
2.菜单移植
添加响应头文件,下方框框函数进行初始化
3.主程序下添加函数 OLED_UIProc()即可;
4.这个函数上电自动连接WIFI,需要修改头文件中的wifi名称及密码
5.按键部分需要初始化为上拉输入,这里使用外部触发,在中断中检测按键,键值放入队列
6.主循环中检测以下标志位进行相应设置
7.连接阿里云,这里可以将数据上传到阿里云服务器,也可以通过阿里云下发指令进行相应控制,这里是下发指令点灯
,三元组需要修改,相关教程可以看CSDN
注意事项
连接OLED时,需要短接H2的SDA-PB15,要不然点不亮
焊接部分:
建议先焊接CH340E,再焊接C口,使用锡膏涂,少一点,容易连锡,有条件建议使用风枪吹,风速小一点
组装流程
先卡入按键,
扣上盖子
打上螺丝即可,外壳设计有点东西的,使用柱子可以直接卡住
实物图
PCB
实物展示
菜单界面
选项设置界面
电压电流测量界面
网络时钟
外壳设计
1.按键设计在侧面,更方便
2.供电与通信口
3.后面保留无线模块天线出口以及电压电流接口端子
4.右侧出口用于下载口接线
5.螺丝柱之间间隔1.6mm,打1.6的板子刚好可以支撑卡住,
面板
自开发上位机 走MODBUS协议
用于查看电流电流变化趋势以及调动变化情况,评估稳定性以及重复精度
测试
附件:
测量供电数值与万用表对比
测量Jlink供电与万用表对比
程序源码等
设计图

BOM


评论