大家好,又见面了,我是你们的朋友全栈君。
工业传感器常使用电流大小来传输数据,那么作为传感器数据的接收方,比如单片机,有内部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
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142636.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...