找回密码
 立即注册
查看: 44|回复: 4

求助4-20MA采集

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-09-05 16:36:21

10

主题

44

回帖

356

积分

中级会员

积分
356
发表于 3 天前 | 显示全部楼层 |阅读模式
你好,我的问题如下:

我采用的电路是


通道15.png AI1.png

adc = ADC_convert(0);        //Bandgap
v = (4096 * 1.19f) / adc;        //计算对应的VCC电压, 12位ADC, 2位小数(定点整数计算,扩大100倍)
printf("ADC15=%u,  AVREF=%.3fV\n", adc, v);//接收←ADC15=1950,  AVREF=2.500V

用通道15读出的AVREF的电压是3.011V
那么说明电路是对的,

使用的芯片是STC32G12K128-35I-LQFP32
再模量口施加的4-20MA电流反馈大致如下
截图202509051639194688.jpg


我新学的,请问如何转换为4-20MA对应4000-20000的值呢?

回复

使用道具 举报 送花

3

主题

1998

回帖

844

积分

等待验证会员

积分
844
发表于 3 天前 | 显示全部楼层
您好,感谢您的提问。关于4-20mA信号采集的问题,以下为专业解答:

4-20mA信号是一种广泛应用于工业自动化领域的模拟电流信号,常用于传感器、变送器与PLC、DCS等控制系统之间的数据传输。其优势在于抗干扰能力强、传输距离远、适合长线传输等特点。

针对您提到的电路设计问题,请提供具体电路图或关键元件信息(如使用的ADC芯片型号、电源电压、负载电阻、信号调理电路等),以便更准确地分析可能存在的问题。

以下是一些常见的4-20mA采集电路设计要点及注意事项,供参考:

1. 输入阻抗匹配  
   4-20mA信号通常需要通过一个精密电阻将电流转换为电压信号,常用的阻值为250Ω或500Ω,以确保在满量程时输出电压在合理范围内(例如250Ω时,20mA对应5V)。需注意选择高精度、低温度漂移的电阻,以保证测量精度。

2. 信号调理电路  
   在将电流转换为电压后,可能需要进行滤波、放大或隔离处理。可使用运算放大器(如OP07、AD8605等)构建差分放大电路,以提高信噪比并增强抗干扰能力。

3. ADC采集模块  
   选用合适的ADC芯片是关键。常见的ADC包括ADS1115(16位)、ADS1118(16位)、MCP3421(18位)等,应根据系统要求选择分辨率、采样率和接口方式(I²C、SPI等)。

4. 电源与接地设计  
   4-20mA信号源通常采用两线制或三线制供电方式,需注意电源电压是否满足采集电路的需求,并确保良好的接地以减少共模干扰。

5. 隔离与保护  
   在工业环境中,建议加入光电隔离或隔离放大器(如ISO124、ADM2481等),以防止信号源与采集系统的电气干扰或损坏。

6. 软件校准与补偿  
   采集完成后,建议在软件中进行零点和满度校准,并考虑温度补偿等措施,以提高整体测量精度。

如果您能提供更多电路细节或遇到的具体问题(如信号不稳定、精度不足、无法读取数据等),我将进一步为您分析原因并提供优化建议。

如需进一步技术支持,欢迎联系国芯人工智能技术团队,我们将竭诚为您服务。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:173
  • 最近打卡:2025-09-07 13:44:12

76

主题

6705

回帖

1万

积分

超级版主

积分
14071
发表于 3 天前 | 显示全部楼层
你的电路有问题。
1、TL431的R、K脚要接消振电容,否则可能会振荡。
2、20mA的ADC值出现非线性,说明15~20mA出现饱和了。所以下面只使用到15mA的数据。

校准,输入4mA对应ADC=530,输入15mA对应ADC=1920,则校准系数:
k = (15-4)/(1920-530) = 0.007913669
则 I = (adc-530)*0.007913669 +4
验算:
ADC = 1288, 则 I = (1288-530)*0.007913669 +4 = 9.999mA
ADC = 654, 则 I =  (654-530)*0.007913669 +4 = 4.981mA

我推荐的方法:不用运放,减少零件,减少误差。
采样电阻使用123R,经过1K+0.1uF滤波后给ADC,基准使用2.5V。
20mA时ADC读数 = 4096*20*0.123/2.5 = 4030.464, 则校准系数
K=20/4030.464=0.0049622
电流 I = adc *0.0049622
比如读到ADC值为1000,则 I=1000*0.0049622 = 4.9622 mA。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:487
  • 最近打卡:2025-09-08 00:01:29

9

主题

406

回帖

2959

积分

金牌会员

积分
2959
发表于 3 天前 | 显示全部楼层
比较混乱啊,建议再整理下电路和程序.
ADC通道15是片内1.19V电压基准对应的ADC值,你的单片机ADC的参考电压脚接的VCC还是部3V电压基准?
ADC参考电压脚电压不变的话,通道15的ADC值不会变化.
打印的变量名AVREF实际为输入信号的电压值吧?太容易混淆,

点评

他只是改变了打印的变量,没有改变字符串提示。  详情 回复 发表于 3 天前
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:173
  • 最近打卡:2025-09-07 13:44:12

76

主题

6705

回帖

1万

积分

超级版主

积分
14071
发表于 3 天前 | 显示全部楼层
网*** 发表于 2025-9-5 18:26
比较混乱啊,建议再整理下电路和程序.
ADC通道15是片内1.19V电压基准对应的ADC值,你的单片机ADC的参考电压脚 ...

他只是改变了打印的变量,没有改变字符串提示。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-8 02:57 , Processed in 0.127425 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表