文章目录
之前已经连载完了 DIY USB 电流表的所有章节,这里汇总介绍一下这个项目,希望对电子 DIY 感兴趣的朋友们有所帮助。
这个 DIY USB 电流表的所有内容都已经开源,包括:
- 硬件原理图
- 硬件 PCB 布局布线
- MCU 固件代码
- 外壳 3D 模型 STL 文件
- 面板生产文件
在文末可以找到开源项目的所有资料,其中硬件部分在立创开源平台,其他部分在 GitHub 中。
PS. 我也还是一个初学者,如果文章中有一些错误或不足,还请多多指教。
项目介绍
这是一个基于沁恒 CH32V003 和德州仪器 INA219 的 DIY USB 电流表,使用 CH32V003 作为主控 MCU 来读取和显示电压电流数据,INA219 作为电压电流监测计,并且通过两个按键来进行交互。
主要元件
- MCU:CH32V003
- 电压电流监测:INA219
- 显示设备:SSD1306 OLED
- 输入输出:USB Type-C
- 采样电阻:10mR
功能设计
- 电压、电流、功率、累计电量监测
- USB Type-C 输入与输出
- PD 协议透传,支持 USB PD 2.0
- 支持功率历史图表显示
- 按键切换电压电流数据与功率历史图表
- 使用 0.96 寸 12864 OLED 显示相关数据
设计指标
- 最大支持 PD 2.0 100W
- 支持 5~20V 电压检测
- 支持 0~5A 电流检测
- 最小电压分辨率 10mV
- 最小电流分辨率 2mA
- 功率历史记录最长 128 分钟
涉及内容
这个教程涉及到了电子 DIY 从 0 开始的内容,基本上搞完下来,对于电子 DIY 也有个大概了解了,玩其他的开源项目,更多是元器件和芯片知识的扩充了。
产品设计
- 功能设计
- 规划 USB 电流表包括哪些功能,需要哪些字段,并且设计界面来显示这些字段
- 用户交互输入,使用按键输入,并且具备页面切换
- 外壳设计
- 结合 3D 建模和亚克力面板设计,让 DIY 项目更像一个产品
硬件设计与设计
- 元件参数与选型
- 如何选择需要的元器件,以及根据哪些指标筛选相关的元器件
- 原理图设计
- 阅读芯片数据手册,添加外围元件,并且各个芯片连接起来
- PCB 布局布线
- 在确定完 PCB 上整体按键、输入输出接口、屏幕位置等之后,开始进行元器件的布局和布线
- PCB 焊接和调试
- 通过嘉立创等板厂进行免费打样,拿到 PCB 之后,通过手动焊接的方式来完成 PCBA 的制作
嵌入式软件开发
- 开发环境搭建
- 基于 Visual Studio Code + Platform IO 的开发环境搭建
- 通信协议
- 通过 I2C 协议来读取 INA219 数据,以及 SSD1306 OLED 的显示驱动
- 屏幕和按键驱动
- 了解 SSD1306 屏幕驱动的原理,点阵字体的格式,以及如何写一个英文字符显示驱动
- 实现一个简单的按键检测驱动,支持单击以及长按事件检测
- 固件体积分析和优化
- 使用 PlatformIO Inspect 功能来分析固件体积和内容,并且针对性的优化
DIY USB 电流表完整教程
以下是 DIY USB 电流表的全部分阶段教程,可以直接点击链接查看。
- DIY USB 电流表(1):元件选型和原理图绘制
- DIY USB 电流表(2):PCB 布局布线
- DIY USB 电流表(3):PCB 免费打样详解
- DIY USB 电流表(4):PCB 焊接与调试
- DIY USB 电流表(5):使用 VSCode + PlatformIO 搭建固件开发环境
- DIY USB 电流表(6):点个屏,使用 I2C 驱动 0.96 寸 OLED
- DIY USB 电流表(7):读取和显示 INA219 电流电压数据
- DIY USB 电流表(8):检测按键和绘制功率曲线
- DIY USB 电流表番外篇:使用 PlatformIO Inspect 分析和优化固件体积
- DIY USB 电流表(9):Flash 模拟 EEPROM 存储累计电量
- DIY USB 电流表(10):完结篇,外壳和面板设计
USB 电流表开源地址
这个 USB 电流表所有资料已经开源,可以在以下仓库中获取,包含固件代码、PCB 生产 Gerber 文件、原理图和外壳 STL 文件。
https://github.com/ohdarling/CH32V003-USBMeter
硬件相关的源文件已经在立创开源平台开源,访问以下地址可以进行一键 PCB 下单和一键 BOM 配单操作:
https://oshwhub.com/wandaeda/ji-yu-ch32v003-de-usb-dian-liu-biao
电子 DIY 入门知识整理
当然也可以了解一些其他电子 DIY 入门相关的知识,在元器件选型时可以更有方向一些。
MCU算是最便宜的几个器件之一了
的确是,后面打算直接用 MCU 的 ADC 看看。