当前位置:文档之家› 三、电阻式传感器接口电路的设计

三、电阻式传感器接口电路的设计

实验三电阻式传感器的仿真与接口电路设计首先介绍一款应变片传感器YZC-1B称重传感器。

它的主要参数见下表。

额定载荷:3,5,8,10,15,20,25,30, 35,40,45kg绝缘电阻:≥5000MΩ工作温度范围:-40 ~+80℃灵敏度:2.0±0.002mv/v 安全过载:150%F.S综合误差:±0.02%F.S 极限过载:200%F.S 蠕变:±0.02%F.S推荐激励电压:10~12V(DC)零点平衡:±1%F.S最大激励电压:15V零点温度影响:±0.02%F.S/10℃密封等级:IP67输出温度影响:±0.02%F.S/10℃材质:铝合金输入电阻:405±5Ω电缆:线长:0.3~3m;直径:¢4mm 输出电阻:350±3Ω输入+:红;输入-:黑;输出+:绿;输出-:白这种传感器主要的应用领域是电子计价秤、计重秤等小台面电子秤。

它的外观是这样的。

这个实验里首先对这样一款传感器进行仿真,然后设计一个接口电路,使其具有测量压力(重量)的功能。

电阻应变片的工作原理基于电阻应变效应,即在导体产生机械变形时,它的电阻值相应发生变化。

应变片是由金属导体或半导体制成的电阻体,其阻值随着压力的变化而变化。

对于金属导体,导体变化率△R/R的表达式为:△ R/R ≈(1+2μ)ε式中μ为材料的泊松系数;ε为应变量。

通常把单位应变所引起电阻值相对变化称作电阻丝的灵敏系数。

对于金属导体,其表达式为:K=△R/R=(1+2μ)所以△R/R=Kε。

在外力作用下,应变片产生变化,同时应变片电阻也发生相应变化。

当测得阻值变化为ΔR时,可得到应变值ε,根据应力与应变关系,得到应力值为:σ=Eε式中:σ为应力;ε为应变量(为轴向应变);E为材料的弹性模量(kg/mm2)。

又知,重力G与应力σ的关系为G=㎎=σs 。

式中:G为重力;S为应变片截面积。

根据以上各式可得到:ΔR/R=Kmg/ES。

由此便得出应变片电阻值变化与物体质量的关系,即ΔR=RK0mg/ ES。

根据应变片的材料,取K=2,E=16300kg∕mm2, s=100mm2,R=350Ω,g=9.8m∕s,ΔR=[(2×9.8×348)∕(16300×100)]m。

最终确定电阻变化与质量的对应关系为:ΔR =4.185×10-3m下面用multisim10建立一个包含有传感器和放大电路在内的电路原理图,来进行输入输出的仿真。

原理图如下。

在这个电路里采用了恒流源对传感器电桥的激励。

适用四个350Ω的电阻来代替传感器上的四个应变片。

当没有外界压力的时候,传感器四个应变片不产生应变而保持原来的阻值,因此电桥平衡,输出为0。

当传感器感知压力的时候,对角线的电阻阻值将发生相应的变化,因此破坏了电桥臂的平衡,有电压输出。

但输出电压值很小。

于是在后面连接了两级放大电路。

电路中有四个滑动变阻器分别是R13,R5,R10,R12。

其中R13和R5用于电路的调零,R10和R12用于调整电路的放大倍数。

首先将放大电路两端接地调零。

假定传感器在重物的压力下发生了应变,按照前面计算的关系ΔR =4.185×10-3m,在受到30kg的重物的压力时,它的ΔR 应为0.125Ω。

于是调整电桥上的电阻的阻值为350.125Ω,350.125Ω,349.875Ω,349.875Ω。

此时,为了使输出电压与输入的重量成对应关系,可调整滑动变阻器R10和R12使输入30kg时输出3V。

然后观测各表的显示并记录下来。

可见,此时恒流源输出6.779mA电流,电桥输出874.434μV的电压,放大输出后的电压是2.999V。

当传感器受到20kg的重物压力时,相应的电阻变化ΔR时0.084Ω。

相应的输出是1.937V。

这样再进行10kg、40kg、50kg情况下的仿真。

记录在表格里。

重量(kg) 10 20 30 40 50ΔR(Ω)0.042 0.084 0.125 0.167 0.209 电桥输出μV284.737 571.183 847.434 1132 1417放大后输出V0.836 1.937 2.999 4.093 5.187 仿真结果并不理想。

接下来讲输出的电压经过A/D转换输入单片机并仿真。

在proteuse中建立原理图。

图中的恒流源、传感器电桥、放大电路已在前文出现,接下来是A/D 转换、单片机处理和液晶显示。

A/D 转换采用ADC0809(仿真中用ADC0808),单片机采用89C51。

在Keil4中编写代码编译并生成 .hex 文件(代码在附录2中)。

双击图中的AT89C51加载 .hex 文件,查看仿真结果。

在液晶屏幕上显示出了电压(或者说物体的重量)。

单片机▶A/D 转换电路▶◀放大器输出下图是这次实验的完整电路。

接下来是由protel99 SE再绘制原理图,形成PCB版图,并焊电路板。

附录1:元器件一览表名称数量名称数量附录2://-------------- include.h -----------------#ifndef __INCLUDES_H__#define __INCLUDES_H__#include <REGX51.H>#include "SMC1602.h"#include "DATransform.h"#endif//-------------- main.c --------------------#include "includes.h"#define TIME0H 0x3C#define TIME0L 0xB0//全局变量unsigned char uc_Clock=0; //定时器0中断计数bit b_DATransform=0;//LCD上显示电压void vShowNum(unsigned int uiNumber) {unsigned char ucaNumber[3],ucCount;if(uiNumber>999)uiNumber=999;ucaNumber[0]=uiNumber/100;//把计算数字的每个位存入数组。

ucaNumber[1]=(uiNumber-100*(int)uca Number[0])/10;ucaNumber[2]=uiNumber-100*(int)ucaN umber[0]-10*ucaNumber[1];for(ucCount=0;ucCount<3;ucCount++){vShowOneChar(ucaNumber[ucCount]+48); //从首位到末位逐一输出。

//if(ucCount==0)// vShowOneChar('.');}}void delay(unsigned char a){unsigned char i;while(a--)for(i=100;i>0;i--);}void main(){//char key_pre=0,key_cur=0;char weight;//设置定时器0TMOD=0x01; //定时器0,模式1。

TH0=TIME0H;TL0=TIME0L;TR0=1; //启动定时器。

ET0=1; //开定时器中断。

EA=1; //开总中断vdInitialize();vWriteCMD(0x00);vShowChar(" ");while(1){vWriteCMD(0xC0);vShowChar(" xiexie DUlaoshi");while(b_DATransform!=1);b_DATransform=0;while((weight=uiADTransform())==0);vWriteCMD(0x88);//vShowNum(" ");vShowNum(weight);vShowChar(" kg");vWriteCMD(0xC0);delay(250);delay(250);delay(250);delay(250);vdCleanLCD() ;}}//定时器0中断函数void Time0() interrupt 1{if(uc_Clock==0){uc_Clock=5;b_DATransform=1;}elseuc_Clock--;TH0=TIME0H; //恢复定时器0。

TL0=TIME0L;}//------------- DATransform.h -------------#ifndef __DATRANSFORM_H__#define __DATRANSFORM_H__ unsigned int uiADTransform();#endif//------------- SMC1602.h ----------------- #ifndef __SMC1602_H__#define __SMC1602_H__#include <REGX51.H>//LCD设置函数#define vdInitialize() vWriteCMD(0x01);vWriteCMD(0x38);v WriteCMD(0x0C); vWriteCMD(0x0F); //初始化#define vdCleanLCD() vWriteCMD(0x01);//清屏//#define vdSetShowMode() vWriteCMD(0x38); //显示模式设置:8位2行5x7点阵//#define vdSetInput() vWriteCMD(0x0C);//文字不动,光标自动右移// vWriteCMD(0x0F); //显示器开、光标开、闪烁开//端口设置宏定义#define LCDRS P3_5//寄存器选择信号:// 0--数据寄存器;// 1--指令寄存器。

#define LCDRW P3_6//读写信号:// 1--读LCD;// 0--写LCD。

#define LCDE P3_7//片选信号,当输入下降沿信号时,//执行指令或传送数据。

#define LCDPORT P0//LCD数据接口。

//写数据命令函数void vDelay();//延时函数。

void vWriteCMD(unsigned char ucCommand);//把1个命令写入LCD。

void vWriteData(unsigned char ucData);//把1个数据写入LCD。

void vShowOneChar(unsigned char ucChar);void vShowChar(unsigned char ucaChar[]);#endif//-----------------DATransform.c---------------------//AD转换函数#include <REGX51.H>#define START P3_4//ATART,ALE接口。

相关主题