电流转电压模块4-20mA转0-3.3/5V/10V/15V转换变送器电路原理解析

2024-01-30 19:48

本文主要是介绍电流转电压模块4-20mA转0-3.3/5V/10V/15V转换变送器电路原理解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       工业传感器常使用电流大小来传输数据,那么作为传感器数据的接收方,比如单片机,有内部AD的单片机可以检测电压的大小,那么首先必须将电流信号转换为电压信号,然后进行电压幅值变换使其适合MCU处理的电压范围。 

      下面我们从设计的电流转电压的模块电路原理图来逐步解析。

       首先我们看电流检测放大部分,就是U1B部分,电流从R1的上端流入,下端流出。不难看出这是一个差分放大电路,也就是一个减法运算电路,输出电压UA=(R5/R3)*(U1-U2)=U1-U2,UA即是电阻R1两端的电压差,假如流过该电阻的电流为20mA,那么产生的电压=20*100=2000mV,还没有达到我们单片机的电压测量范围(这里默认单片机AD检测的范围为0-5V)。

       所以为了高效的利用单片机AD的量程,我们需要将电压信号进一步放大,有人会问:如何使电流信号输入为4mA时,在这时电压输出是0V呢?  这个问题的关键点在于我们要输出的是0V电压,这里我们还是要用到减法器如下图:

       图中U1A组成是减法电路,其输出电压等于UA-UB。U1D组成一个跟随器,当电流信号为4mA时,UA=4*100=400mV,那么U1A的输出此时为0V正是我们的目的,那么就需要UA=UB,那么调节U1D跟随器的正相输入端通过调节电位器RP2改变分压即可。这就完美解决了当输入电流为4mA时输出电压为0的问题。

      接下来我们要添加的是放大电路,将U1A的输出信号进行放大。如下图:

       在这里U1C的作用即是最终放大,那么在使用时,将输入电流设置为20mA时,调节RP1电位器,即调节电压放大倍数,直至输出电压为5V或其他量程的10V、15V,即可完成对量程的设置。

使用前设置事项:

调零:输入电流4mA时,调节调零电位器直至输出电压为0V。

调量程:输入电流20mA时,调节调量程电位器直至输出电压为目标量程电压。

供电电压:7-30V(若输出要到n V,供电电压必须大于(n+2)V,这是因为运放不是轨对轨型,最大输出值无法等于供电电压值)。

下面是模块整体的电路图:

       我们看图中使用的运放为LM324,此运放不是轨对轨的运放,那么运放的最低输出电压是不可能等于0V的,即便是轨对轨运放,最低输出还是会有mV级别的电压,那么我们将供电改为正负电源即可解决最低输出不为0V问题,所以利用ICL7660芯片产生芯片产生一个负5V电压作为负电源。图中D1二极管起到防止电源反接的作用。

       下图为本篇电路图所做PCB板模块图片:

https://item.taobao.com/item.htm?spm=a213gs.20824378.0.0.50b54831wjgTmj&id=655394145658

实物链接:

https://item.taobao.com/item.htm?spm=a213gs.20824378.0.0.50b54831wjgTmj&id=655394145658

这篇关于电流转电压模块4-20mA转0-3.3/5V/10V/15V转换变送器电路原理解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/661351

相关文章

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py