要求:开源一个8路模拟量采集器。
并实现8个功能/需求:
作者是否能全部完成?

他又要如何实现这些需求?
一、作者是否完成需求?
8路模拟量采集转RS485,分辨率16位,支持通道隔离
完成
量程:0-20mA/4-20mA,-150-150mV、-500-500mV、-1-1V、0-2.5V、-5-5V、0-10V、-10-10V
完成
两线制/三线制/四线制传感器接线方式
完成
标准Modbus-RTU协议
完成
用户需自行编写上位机测试软件,能够接收到采集的数据并显示,软件需带有嘉立创EDAlogo元素
完成
自行设计或匹配公版外壳
完成
支持5~36V电压输入,接口防静电、防浪涌、防雷击等级3级
仅支持9-36V电压输入
支持电流/电压同时采集
完成
电压/电流采集状态由跳线切换
由拨码开关切换
可以看到,作者完成了大部分项目需求,但有2处改动,他为啥这么做?
说好的5-36V,咋成了9-36V?
抛开使用场景谈需求,就是耍流氓~
模拟量采集器主要应用于各种信号采集场景,例如:汽车测试、环境监测、工业控制、电赛题练习等。可以将物理量的模拟信号转换成数字信号,然后将其传输到计算机中进行处理和记录、监测和测量、控制和调节、数据分析和优化、以及故障诊断和预测。
综上所述,这是一个工控类项目,在实际的应用场景中,5V效率不高,9V却更为常见。
因此,作者在和嘉立创EDA陈工商议一致后,将电压输入修改为了9V-36V 。
说好的跳线切换采集状态,为什么选择拨码开关?
其实呢,就是个人选择。跳线切换与拨码开关都可以实现同时测量电压或电流。且拨码开关可以根据使用场景灵活切换,所以选择了这个方式。
那作者是如何实现当前需求的呢?
下方分享一下该项目的设计方案+测试视频!
三、硬件实现方案
系统整体框图
懂行的小伙伴都知道,这项目是非常考验PCB布局布线功力的!
看看作者是咋设计的吧~
原理图_ 前端及量程切换
原理图_ CPU+485
PCB图
1.RS485
485采用隔离模块,并增加TVS,气体放电管,实现防静电、防浪涌、防雷击。
2.ADC+基准
①支持pin2pin直接替换18位的ADS8988
②R230=1K,R229=NC 选外部基准
③如果想用内部基准R230=NC,R229=1K
④ADC选ADS8688 16位ADC
3.电源
DC9-36V电源从P9端子2,3脚输入;
一路经TPS5450降压成5V,1117-3.3V降纹波供给CPU及485模块;
另一路经U21隔离电源模块,输出正负15V;
78L12,79L12线性稳压输出正负12V;
U13稳压成5V供给运放,以及ADC模块。
4.采样前端
如何实现8量程采样呢?
继电器不通电,ADS8688 可以通过软件设置量程,直接采样0-5.12V、±5.12V、0-10.24V、±10.24V。
增加拨码开关,SW 2-5刀头短接,输入通道并接120欧,实现电流档 0~20mA/4~20mA。
继电器合上,增加拨码开关,SW 1-6刀头切换AD620的放大倍数,实现 -150~150mV、-500~500mV;SW 3-4刀头切换单双极信号。
四、软件实现方案
单片机采集端流程图
PC端程序流程图
1.PC端界面
PCB端功能简单,界面也简单,有串口设置,状态显示,通道设置,采集显示;根据拨码开关,选择电流、电压档,选量程档位;用不到的通道可以"关闭"。
采用modbus-rtu协议。
默认从机地址0x02,波特率115200。
8个通道数据寄存器地址:0x00-0x07。
8个通道设置寄存器地址:0x10-0x17。
2.上位机软件运行
推荐下载 thonny ,然后把\venv\Lib\site-packages中的modbus_tk,serial库复制出来 如下图
接着你就可以愉快的玩耍python了。
【正文完】
关注我,看一手优质开源项目