
4-20mA/0-10V信号发生器
简介
基于 CH32V003F4U6 + GP8630 的便携式模拟量输出控制器,支持 OLED 本地调节、0-10 V / 4-20 mA 输出、波形输出和Modbus RTU 网页上位机控制。
简介:基于 CH32V003F4U6 + GP8630 的便携式模拟量输出控制器,支持 OLED 本地调节、0-10 V / 4-20 mA 输出、波形输出和Modbus RTU 网页上位机控制。开源协议
:CC BY-NC-SA 4.0
(未经作者授权,禁止转载)描述
AOMaster 便携式模拟量输出控制器

快速入口
| 入口 | 链接 |
|---|---|
| GitHub 开源资料 | https://github.com/txp666/AOMaster |
| 3D 模型下载 | MakerWorld AOMaster 3D 打印模型 |
| 网页上位机 | https://modusignal.cn/ |
项目简介
AOMaster 是基于 CH32V003F4U6 + GP8630 的便携式模拟量输出控制器,面向工程调试、设备输入验证、教学演示和二次开发。设备支持 0-10 V 电压输出、4-20 mA 电流输出(两线制:24V环路电压)、OLED 本地读数、旋转编码器调节、Flash 参数保存,以及 USART1 / Modbus RTU 网页上位机控制。
这个项目的目标是做一个随手可用的小型模拟量信号源:现场调试时可以直接给 PLC、仪表、采集卡或传感器输入链路提供稳定电压/电流,也可以通过网页上位机配置波形、观察回读曲线和导出数据。
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
核心功能
| 功能 | 说明 |
|---|---|
| 电压输出 | 0-10 V 电压输出,最大 0-12 V |
| 电流输出 | 4-20 mA 电流输出,最大 0-24 mA |
| 本地显示 | OLED 显示当前模式、输出值、步进档位、电池/状态信息 |
| 本地调节 | 旋转编码器调节输出值,短按切换步进档位,长按进入菜单 |
| 波形输出 | 支持恒定、阶跃、斜坡、方波、三角波、正弦波 |
| 参数保存 | 输出模式和关键参数写入 Flash,上电恢复上次状态 |
| 上位机控制 | USART1 / Modbus RTU,支持寄存器写入、轮询回读和曲线监测 |
| 低功耗空闲 | 主循环空闲时进入 WFI,由定时器、编码器或串口中断唤醒 |
硬件组成
| 模块 | 型号/接口 | 作用 |
|---|---|---|
| 主控 MCU | CH32V003F4U6 | RISC-V 内核,负责 UI、波形、Modbus 和外设调度 |
| 模拟输出芯片 | GP8630B | 生成模拟量输出,覆盖电压/电流调试场景 |
| OLED 显示 | SSD1306,I2C | 显示当前输出模式、数值、菜单和状态 |
| 旋转编码器 | SIQ-02FVS3 | 本地调节输出值和菜单选择 |
| USB 串口 | CH340N | Type-C 连接电脑,提供上位机串口通信 |
| 蜂鸣器 | PC0 控制 | 旋转和按键声音反馈 |
| 外壳 | 3D 打印结构件 | 便携封装,模型见 MakerWorld |
整机功耗
| 500R负载 12V输出 | 500R负载 24mA输出 | 空载 |
|---|---|---|
![]() | ![]() | ![]() |
| <160mA | <160mA | <10mA |
输出纹波 / 噪声测试
AC 耦合,10× 探头,时间基准为 20 µs/div,采样率为 500 MS/s,并开启 DSP/20M带宽限制。
- 输出:
5 V / 12 mA1.2 倍超量程模式:0-12V / 0-24mA - 负载:
500R - 测量位置:负载两端
- 耦合方式:AC
- 探头倍率:10×
- 带宽限制:已开启

5V输出
峰峰值范围约为 28.9 mVpp ~ 262.1 mVpp,平均值约为 97.31 mVpp
测试条件:

12mA输出
峰峰值范围约为 31.33 mVpp ~ 179.8 mVpp,平均值约为 104.9 mVpp

整体纹波表现满足普通 PLC/仪表模拟量输入调试需求,但输出端仍存在一定开关电源尖峰和高频噪声;该设备定位为便携式模拟量信号源,不建议作为高精度低噪声校准源使用。
可优化PCBLayout分割模拟数字地和增大开关电源输出电容尝试减小纹波。
软件结构
| 目录 | 内容 |
|---|---|
User/main.c | 程序入口,初始化系统并进入主循环 |
User/Sys/ | 系统层:时基、调度、日志、电源空闲 |
User/Bsp/ | 板级支持:I2C、编码器、蜂鸣器 |
User/Drv/ | 芯片驱动:SSD1306、GP8630 |
User/App/ | 应用层:状态机、UI、设置保存、信号输出、Modbus 协议 |
docs/images/ | 系统概览、硬件模块、上位机连接和轮询流程图 |
主循环结构:
main
-> System_Init()
-> App_Begin()
-> while(1)
System_Update()
App_Update()
App_SerialPoll()
Power_Idle()
本地操作
| 操作 | 作用 |
|---|---|
| 旋转编码器 | 增减当前输出值,或在菜单中移动光标 |
| 短按编码器 | 切换步进档位,或确认菜单项 |
| 长按编码器 | 进入菜单,或返回上一级 |
主菜单包含:
| 菜单项 | 功能 |
|---|---|
Output Mode | 选择 0-10 V 电压模式或 4-20 mA 电流模式 |
Signal Gen | 配置本地信号发生器,选择波形、低值、高值和周期 |
Calibrate | 进入 0/10 V 或 4/20 mA 两点校准流程 |
Brightness | 调整 OLED 亮度 |
Status | 查看 GP8630 状态、I2C 地址和错误计数 |
网页上位机
- 使用 Type-C 数据线连接电脑和 AOMaster。
- 在 Chrome / Edge 中打开 modusignal 上位机。
- 选择 AOMaster,传输方式选择 Serial。
- 串口参数保持默认:
115200 8N1。 - 连接后可设置输出模式、输出值、波形参数,并查看设定曲线和实际输出曲线。
上位机主要能力:
| 功能 | 说明 |
|---|---|
| 串口连接 | 使用 Web Serial 连接 CH340N 串口 |
| 参数写入 | 写入输出类型、波形、目标值、周期、占空比等参数 |
| 轮询回读 | 读取当前实际输出值,区分电压/电流单位 |
| 曲线监测 | 展示设定曲线和实际输出曲线 |
| 数据导出 | 支持 CSV 导出,便于记录和复盘 |
复杂环境中连接上位机建议通过USB隔离器

Modbus RTU 寄存器
上位机使用 Modbus RTU 功能码 0x03 一次读取 0x0000..0x0006 共 7 个保持寄存器。典型轮询请求:
01 03 00 00 00 07 04 08
| 地址 | 读写 | 名称 | 含义 |
|---|---|---|---|
0x0000 | R/W | SIGNAL_TYPE | 0=current,1=voltage |
0x0001 | R/W | WAVEFORM | 0=constant,1=step,2=ramp,3=square,4=triangle,5=sine |
0x0002 | R/W | VALUE_A | 常量值/低值;阶跃模式为点数 |
0x0003 | R/W | VALUE_B | 高值;阶跃模式为单步保持时间 |
0x0004 | R/W | PERIOD_MS | 周期;阶跃模式为循环次数 |
0x0005 | R/W | DUTY | 方波占空比 |
0x0006 | R | ACTUAL | 当前实际输出,只读 |
0x0007..0x0016 | R/W | STEP_SEQUENCE | 阶跃序列值,最多 16 点 |
原始值缩放规则:raw / 1000。例如 10600 表示 10.600 V 或 10.600 mA。
元件购买表
| 类别 | 元件/型号 | 用途 |
|---|---|---|
| MCU | CH32V003F4U6 | 主控,RISC-V 48 MHz |
| 模拟输出 | GP8630B | 0-10 V / 4-20 mA 模拟量输出 |
| 显示 | SSD1306 OLED | 本地菜单和输出值显示 |
| 交互 | SIQ-02FVS3 旋转编码器 | 旋转调节、短按切换、长按菜单 |
| USB 串口 | CH340N | Type-C 串口通信 |
| 接口 | Type-C 母座 | 供电与数据连接 |
| 提示 | 蜂鸣器 | 旋转/按键声音反馈 |
| 接线 | 鳄鱼夹/测试线 | 输出端接线测试 |
| 套装 | AOMaster 整机带线 | 成品 |
授权说明
仅允许非商业用途。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。



















