電阻式傳感器接口電路的設(shè)計(jì)_第1頁
電阻式傳感器接口電路的設(shè)計(jì)_第2頁
電阻式傳感器接口電路的設(shè)計(jì)_第3頁
電阻式傳感器接口電路的設(shè)計(jì)_第4頁
電阻式傳感器接口電路的設(shè)計(jì)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)驗(yàn)三 電阻式傳感器的仿真與接口電路設(shè)計(jì)首先介紹一款應(yīng)變片傳感器YZC-1B稱重傳感器。它的主要參數(shù)見下表。專心-專注-專業(yè)額定載荷: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推薦激勵電壓:1012V(DC)零點(diǎn)平衡:±1%F.S最大激勵電壓:15V零點(diǎn)溫度影響:±0.02%F.S/10密封等級:IP67輸出溫度影響:&

2、#177;0.02%F.S/10材質(zhì):鋁合金輸入電阻:405±5電纜:線長:0.33m;直徑:4mm輸出電阻:350±3輸入+:紅;輸入-:黑;輸出+:綠;輸出-:白這種傳感器主要的應(yīng)用領(lǐng)域是電子計(jì)價(jià)秤、計(jì)重秤等小臺面電子秤。它的外觀是這樣的。這個(gè)實(shí)驗(yàn)里首先對這樣一款傳感器進(jìn)行仿真,然后設(shè)計(jì)一個(gè)接口電路,使其具有測量壓力(重量)的功能。電阻應(yīng)變片的工作原理基于電阻應(yīng)變效應(yīng),即在導(dǎo)體產(chǎn)生機(jī)械變形時(shí),它的電阻值相應(yīng)發(fā)生變化。應(yīng)變片是由金屬導(dǎo)體或半導(dǎo)體制成的電阻體,其阻值隨著壓力的變化而變化。對于金屬導(dǎo)體,導(dǎo)體變化率R/R的表達(dá)式為: R/R (12)式中為材料的泊松系數(shù);為應(yīng)變

3、量。通常把單位應(yīng)變所引起電阻值相對變化稱作電阻絲的靈敏系數(shù)。對于金屬導(dǎo)體,其表達(dá)式為:K0R/R(12)所以R/RK0。在外力作用下,應(yīng)變片產(chǎn)生變化,同時(shí)應(yīng)變片電阻也發(fā)生相應(yīng)變化。當(dāng)測得阻值變化為R時(shí),可得到應(yīng)變值,根據(jù)應(yīng)力與應(yīng)變關(guān)系,得到應(yīng)力值為:E式中:為應(yīng)力;為應(yīng)變量(為軸向應(yīng)變);E為材料的彈性模量(kgmm2)。又知,重力G與應(yīng)力的關(guān)系為Gs 。式中:G為重力;S為應(yīng)變片截面積。 根據(jù)以上各式可得到:R/RK0mg/ES。由此便得出應(yīng)變片電阻值變化與物體質(zhì)量的關(guān)系,即RRK0mg/ ES。根據(jù)應(yīng)變片的材料,取K0=2,E=16300kgmm2, s=100mm 2 ,R=350,g=

4、9.8ms,R=(2×9.8×348)(16300×100)m。最終確定電阻變化與質(zhì)量的對應(yīng)關(guān)系為:R =4.185×10-3m下面用multisim10建立一個(gè)包含有傳感器和放大電路在內(nèi)的電路原理圖,來進(jìn)行輸入輸出的仿真。原理圖如下。在這個(gè)電路里采用了恒流源對傳感器電橋的激勵。適用四個(gè)350的電阻來代替?zhèn)鞲衅魃系乃膫€(gè)應(yīng)變片。當(dāng)沒有外界壓力的時(shí)候,傳感器四個(gè)應(yīng)變片不產(chǎn)生應(yīng)變而保持原來的阻值,因此電橋平衡,輸出為0。當(dāng)傳感器感知壓力的時(shí)候,對角線的電阻阻值將發(fā)生相應(yīng)的變化,因此破壞了電橋臂的平衡,有電壓輸出。但輸出電壓值很小。于是在后面連接了兩級放大電路。

5、電路中有四個(gè)滑動變阻器分別是R13,R5,R10,R12 。其中R13和R5用于電路的調(diào)零,R10和R12用于調(diào)整電路的放大倍數(shù)。首先將放大電路兩端接地調(diào)零。假定傳感器在重物的壓力下發(fā)生了應(yīng)變,按照前面計(jì)算的關(guān)系R =4.185×10-3m,在受到30kg的重物的壓力時(shí),它的R應(yīng)為0.125。于是調(diào)整電橋上的電阻的阻值為350.125,350.125,349.875,349.875。此時(shí),為了使輸出電壓與輸入的重量成對應(yīng)關(guān)系,可調(diào)整滑動變阻器R10 和R12使輸入30kg時(shí)輸出3V。然后觀測各表的顯示并記錄下來。可見,此時(shí)恒流源輸出6.779mA電流,電橋輸出874.434V的電壓,

6、放大輸出后的電壓是2.999V。當(dāng)傳感器受到20kg的重物壓力時(shí),相應(yīng)的電阻變化R時(shí)0.084。相應(yīng)的輸出是1.937V。這樣再進(jìn)行10kg、40kg、50kg情況下的仿真。記錄在表格里。重量(kg)1020304050R()0.0420.0840.1250.1670.209電橋輸出V284.737571.183847.43411321417放大后輸出V0.8361.9372.9994.0935.187仿真結(jié)果并不理想。接下來講輸出的電壓經(jīng)過A/D轉(zhuǎn)換輸入單片機(jī)并仿真。在proteuse中建立原理圖。放大器輸出A/D轉(zhuǎn)換電路 單片機(jī)圖中的恒流源、傳感器電橋、放大電路已在前文出現(xiàn),接下來是A/D

7、轉(zhuǎn)換、單片機(jī)處理和液晶顯示。A/D轉(zhuǎn)換采用ADC0809(仿真中用ADC0808),單片機(jī)采用89C51。在Keil4中編寫代碼編譯并生成 .hex文件(代碼在附錄2中)。雙擊圖中的AT89C51加載 .hex文件,查看仿真結(jié)果。在液晶屏幕上顯示出了電壓(或者說物體的重量)。下圖是這次實(shí)驗(yàn)的完整電路。接下來是由protel99 SE再繪制原理圖,形成PCB版圖,并焊電路板。附錄1:元器件一覽表名稱數(shù)量名稱數(shù)量附錄2:/- include.h -#ifndef _INCLUDES_H_#define _INCLUDES_H_#include <REGX51.H>#include &q

8、uot;SMC1602.h"#include "DATransform.h"#endif/- main.c -#include "includes.h"#define TIME0H 0x3C#define TIME0L 0xB0/全局變量unsigned char uc_Clock=0;/定時(shí)器0中斷計(jì)數(shù)bit b_DATransform=0;/LCD上顯示電壓void vShowNum(unsigned int uiNumber)unsigned char ucaNumber3,ucCount;if(uiNumber>999)uiNum

9、ber=999;ucaNumber0=uiNumber/100;/把計(jì)算數(shù)字的每個(gè)位存入數(shù)組。ucaNumber1=(uiNumber-100*(int)ucaNumber0)/10;ucaNumber2=uiNumber-100*(int)ucaNumber0-10*ucaNumber1;for(ucCount=0;ucCount<3;ucCount+)vShowOneChar(ucaNumberucCount+48);/從首位到末位逐一輸出。/if(ucCount=0)/vShowOneChar('.');void delay(unsigned char a)unsi

10、gned char i;while(a-)for(i=100;i>0;i-);void main()/char key_pre=0,key_cur=0;char weight;/設(shè)置定時(shí)器0TMOD=0x01;/定時(shí)器0,模式1。TH0=TIME0H;TL0=TIME0L;TR0=1;/啟動定時(shí)器。ET0=1;/開定時(shí)器中斷。 EA=1;/開總中斷vdInitialize(); vWriteCMD(0x00);vShowChar(" "); while(1)vWriteCMD(0xC0);vShowChar(" xiexie DUlaoshi");

11、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() ;/定時(shí)器0中斷函數(shù)void Time0() interrupt 1if(uc_Clock=0)uc_Clock=5;b_DATran

12、sform=1;elseuc_Clock-;TH0=TIME0H; /恢復(fù)定時(shí)器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設(shè)置函數(shù)#define vdInitialize()vWriteCMD(0x01);vWriteCMD(0x38);vWriteCMD

13、(0x0C);vWriteCMD(0x0F);/初始化#define vdCleanLCD()vWriteCMD(0x01); /清屏/#define vdSetShowMode()vWriteCMD(0x38);/顯示模式設(shè)置:8位2行5x7點(diǎn)陣/#define vdSetInput()vWriteCMD(0x0C);/文字不動,光標(biāo)自動右移/vWriteCMD(0x0F); /顯示器開、光標(biāo)開、閃爍開/端口設(shè)置宏定義#define LCDRS P3_5 /寄存器選擇信號: /0-數(shù)據(jù)寄存器; /1-指令寄存器。#define LCDRW P3_6 /讀寫信號: /1-讀LCD; /0-寫L

14、CD。#define LCDE P3_7 /片選信號,當(dāng)輸入下降沿信號時(shí), /執(zhí)行指令或傳送數(shù)據(jù)。#define LCDPORT P0 /LCD數(shù)據(jù)接口。/寫數(shù)據(jù)命令函數(shù)void vDelay(); /延時(shí)函數(shù)。void vWriteCMD(unsigned char ucCommand); /把1個(gè)命令寫入LCD。void vWriteData(unsigned char ucData); /把1個(gè)數(shù)據(jù)寫入LCD。void vShowOneChar(unsigned char ucChar);void vShowChar(unsigned char ucaChar);#endif/-DATr

15、ansform.c-/AD轉(zhuǎn)換函數(shù)#include <REGX51.H>#define START P3_4 /ATART,ALE接口。0->1->0:啟動AD轉(zhuǎn)換。#define EOC P3_3 /轉(zhuǎn)換完畢由0變1.#define OUTPORT P2 /AD轉(zhuǎn)換函數(shù),返回轉(zhuǎn)換結(jié)果。/轉(zhuǎn)換結(jié)果是3位數(shù),小數(shù)點(diǎn)在百位與十位之間。unsigned int uiADTransform()unsigned int uiResult;START=1; /啟動AD轉(zhuǎn)換。START=0;while(EOC=0); /等待轉(zhuǎn)換結(jié)束。uiResult=OUTPORT; /出入轉(zhuǎn)換結(jié)果

16、。uiResult=(100*uiResult)/51; /處理運(yùn)算結(jié)果。return uiResult;/-SMC1602.c(SMC1602驅(qū)動程序)-#include "SMC1602.h"/把1個(gè)命令寫入LCDvoid vWriteCMD(unsigned char ucCommand) vDelay();/先延時(shí)。LCDE=1;/然后把改為寫入命令狀態(tài)。LCDRS=0;LCDRW=0;LCDPORT=ucCommand;/再輸出命令。LCDE=0;/最后執(zhí)行命令。/把1個(gè)數(shù)據(jù)寫入LCDvoid vWriteData(unsigned char ucData) vD

17、elay(); /先延時(shí)。LCDE=1; /然后把改為寫入數(shù)據(jù)狀態(tài)。LCDRS=1;LCDRW=0;LCDPORT=ucData; /再輸出數(shù)據(jù)。LCDE=0; /最后顯示數(shù)據(jù)。void vShowOneChar(unsigned char ucChar)switch(ucChar)case ' ': vWriteData(0x20);break;case '!': vWriteData(0x21);break;case '"': vWriteData(0x22);break;case '#': vWriteData(0

18、x23);break;case '$': vWriteData(0x24);break;case '%': vWriteData(0x25);break;case '&': vWriteData(0x26);break;case '>': vWriteData(0x27);break;case '(': vWriteData(0x28);break;case ')': vWriteData(0x29);break;case '*': vWriteData(0x20);b

19、reak;case '+': vWriteData(0x2A);break;case '-': vWriteData(0x2D);break;case '/': vWriteData(0x2F);break;case '=': vWriteData(0x3D);break;case '<': vWriteData(0x3E);break;case '?': vWriteData(0x3F);break;case '.': vWriteData(0x2E);break;case

20、':': vWriteData(0x3A);break;case '0': vWriteData(0x30);break;case '1': vWriteData(0x31);break;case '2': vWriteData(0x32);break;case '3': vWriteData(0x33);break;case '4': vWriteData(0x34);break;case '5': vWriteData(0x35);break;case '6':

21、vWriteData(0x36);break;case '7': vWriteData(0x37);break;case '8': vWriteData(0x38);break;case '9': vWriteData(0x39);break;case 'A': vWriteData(0x41);break;case 'B': vWriteData(0x42);break;case 'C': vWriteData(0x43);break;case 'D': vWriteData(0x

22、44);break;case 'E': vWriteData(0x45);break;case 'F': vWriteData(0x46);break;case 'G': vWriteData(0x47);break;case 'H': vWriteData(0x48);break;case 'I': vWriteData(0x49);break;case 'J': vWriteData(0x4A);break;case 'K': vWriteData(0x4B);break;cas

23、e 'L': vWriteData(0x4C);break;case 'M': vWriteData(0x4D);break;case 'N': vWriteData(0x4E);break;case 'O': vWriteData(0x4F);break;case 'P': vWriteData(0x50);break;case 'Q': vWriteData(0x51);break;case 'R': vWriteData(0x52);break;case 'S'

24、: vWriteData(0x53);break;case 'T': vWriteData(0x54);break;case 'U': vWriteData(0x55);break;case 'V': vWriteData(0x56);break;case 'W': vWriteData(0x57);break;case 'X': vWriteData(0x58);break;case 'Y': vWriteData(0x59);break;case 'Z': vWriteData(

25、0x5A);break;case 'a': vWriteData(0x61);break;case 'b': vWriteData(0x62);break;case 'c': vWriteData(0x63);break;case 'd': vWriteData(0x64);break;case 'e': vWriteData(0x65);break;case 'f': vWriteData(0x66);break;case 'g': vWriteData(0x67);break;case 'h': vWriteData(0x68);break;case 'i': vWriteData(0x69);break;case 'j': vWriteData(0x6A);break;case 'k': vWriteData(0x6B);break;case

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論