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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三 电阻式传感器的仿真与接口电路设计

首先介绍一款应变片传感器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 0=△R/R =(1+2μ)

所以△R/R =K 0ε。

在外力作用下,应变片产生变化,同时应变片电阻也发生相应变化。当测得阻值变化为ΔR时,可得到应变值ε,根据应力与应变关系,得到应力值为:

σ=Eε

式中:σ为应力;ε为应变量(为轴向应变);E为材料的弹性模量(kg/mm2)。又知,重力G与应力σ的关系为G=㎎=σs 。式中:G为重力;S为应变片截面积。

根据以上各式可得到:ΔR/R=K

mg/ES。由此便得出应变片电阻值变化与物

体质量的关系,即ΔR=RK

0mg/ 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。当传感器感知压力的时候,

对角线的电阻阻值将发生相应的变化,因此破坏了电桥臂的平衡,有电压输出。但输出电压值很小。于是在后面连接了两级放大电路。电路中有四个滑动变阻器

分别是R

13,R

5

,R

10

,R

12

。其中R

13

和R

5

用于电路的调零,R

10

和R

12

用于调整电路的放

大倍数。

首先将放大电路两端接地调零。假定传感器在重物的压力下发生了应变,按照前面计算的关系ΔR =4.185×10-3m,在受到30kg的重物的压力时,它的ΔR 应为0.125Ω。于是调整电桥上的电阻的阻值为350.125Ω,350.125Ω,349.875Ω,349.875Ω。此时,为了使输出电压与输入的重量成对应关系,可调整滑动变

阻器R

10和R

12

使输入30kg时输出3V。然后观测各表的显示并记录下来。

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

当传感器受到20kg的重物压力时,相应的电阻变化ΔR时0.084Ω。相应的输出是1.937V。这样再进行10kg、40kg、50kg情况下的仿真。记录在表格里。

图中的恒流源、传感器电桥、放大电路已在前文出现,接下来是A/D 转换、

单片机处理和液晶显示。A/D 转换采用ADC0809(仿真中用ADC0808),单片机采用89C51。在Keil4中编写代码编译并生成 .hex 文件(代码在附录2中)。双击图中的AT89C51加载 .hex 文件,查看仿真结果。在液晶屏幕上显示出了电压(或者说物体的重量)。

单片机▶

A/D 转换电路▶

◀放大器输出

附录1:

附录2:

//-------------- include.h -----------------

#ifndef __INCLUDES_H__

#define __INCLUDES_H__

#include

#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;

//设置定时器0

TMOD=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);

相关文档
最新文档