電子秤課程設(shè)計實驗報告_第1頁
電子秤課程設(shè)計實驗報告_第2頁
電子秤課程設(shè)計實驗報告_第3頁
電子秤課程設(shè)計實驗報告_第4頁
電子秤課程設(shè)計實驗報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 電 子 設(shè) 計 實 驗 報 告電子科技大學(xué) 設(shè)計題目: 電子稱 姓 名: 學(xué)生姓名 任務(wù)與要求 一、任務(wù) 使用電阻應(yīng)變片稱重傳感器,實現(xiàn)電子秤。用砝碼作稱重比對。二、要求 準(zhǔn)確、穩(wěn)定稱重;稱重傳感器的非線性校正,提高稱重精度;實現(xiàn)“去皮”、計價功能; 具備“休眠”與“喚醒”功能,以降低功耗。電子秤第一節(jié) 緒論摘要:隨著科技的進(jìn)步,在日常生活以及工業(yè)運用上,對電子秤的要求越來越高。常規(guī)的測試儀器儀表和控制裝置被更先進(jìn)的智能儀器所取代,使得傳統(tǒng)的電子測量儀器在遠(yuǎn)離、功能、精度及自動化水平定方面發(fā)生了巨大變化,并相應(yīng)的出現(xiàn)了各種各樣的智能儀器控制系統(tǒng),使得科學(xué)實驗和應(yīng)用工程的自動化程度得以顯著提高

2、。影響其精度的因素主要有:機(jī)械結(jié)構(gòu)、傳感器和數(shù)顯儀表。在機(jī)械結(jié)構(gòu)方面,因材料結(jié)構(gòu)強(qiáng)度和剛度的限制,會使力的傳遞出現(xiàn)誤差,而傳感器輸出特性存在非線性,加上信號放大、模數(shù)轉(zhuǎn)換等環(huán)節(jié)存在的非線性,使得整個系統(tǒng)的非線性誤差變得不容忽視。因此,在高精度的稱重場合,迫切需要電子秤能自動校正系統(tǒng)的非線性。此外,為了保證準(zhǔn)確、穩(wěn)定地顯示,要求所采用的adc具有足夠的轉(zhuǎn)換位數(shù),而采用高精度的adc,自然增加了系統(tǒng)的成本?;陔娮映拥默F(xiàn)狀,本文提出了一種簡單實用并且精度高的智能電子秤設(shè)計方案。通過運用很好的集成電路,使測量精度得到了大大提高,由于采用數(shù)字濾波技術(shù),使穩(wěn)態(tài)測量的穩(wěn)定性和動態(tài)測量的跟隨性都相當(dāng)好。并取

3、得了令人滿意的效果。關(guān)鍵詞:壓力傳感器,ad620n放大電路,adc模數(shù)轉(zhuǎn)換,stm32單片機(jī),oled顯示屏,矩陣鍵盤,電子秤。1. 1引言 本課程設(shè)計的電子秤以單片機(jī)為主要部件,利用全橋測量原理,通過對電路輸出電壓和標(biāo)準(zhǔn)重量的線性關(guān)系,建立具體的數(shù)學(xué)模型,將電壓量綱(v)改為重量綱(g)即成為一臺原始電子秤。其中測量電路中最主要的元器件就是電阻應(yīng)變式傳感器。電阻應(yīng)變式傳感器是傳感器中應(yīng)用最多的一種,本設(shè)計采用全橋測量電路,是系統(tǒng)產(chǎn)生的誤差更小。輸出的數(shù)據(jù)更精確。而ad620n放大電路的作用就是把傳感器輸出的微弱的模擬信號進(jìn)行一定倍數(shù)的放大,以滿足a/d轉(zhuǎn)換器對輸入信號電平的要求。a/d轉(zhuǎn)換

4、的作用是把模擬信號轉(zhuǎn)變成數(shù)字信號,進(jìn)行模擬量轉(zhuǎn)數(shù)字量轉(zhuǎn)換,然后把數(shù)字信號輸送到顯示電路中去,最后由oled屏幕顯示出測量結(jié)果。配置有矩陣鍵盤可以對電子秤進(jìn)行一定的操作如去皮,計價,并可當(dāng)下手動錄入價格,并顯示價格。 1.2系統(tǒng)的設(shè)計與理論分析1.2.1系統(tǒng)設(shè)計根據(jù)設(shè)計要求,設(shè)計的主要內(nèi)容如下:1) 利用電阻應(yīng)變式傳感器,并采用全橋測量電路2) 設(shè)計一款電子秤,利用oled屏幕顯示被稱物體的重量3) 利用矩陣鍵盤對電子秤進(jìn)行去皮,計價,錄入價格的操作。4) 電路分成以下幾個部分: a.運放電路 b.電路的濾波及電壓跟隨器電路 c.單片機(jī)數(shù)據(jù)處理及控制電路,包括矩陣鍵盤,oled屏幕等。 d.雙電

5、源供電及變壓電路。1.2.2 基本工作原理及原理框圖 oled顯示重量單片機(jī)數(shù)據(jù)處理及控制stm32的a/d模數(shù)轉(zhuǎn)換ad620n信號放大電路全橋電阻應(yīng)變式傳感器輸出信號10v雙電源供電10v單電源供電3.3v單電源供電圖一:基本硬件系統(tǒng)結(jié)構(gòu)圖 全橋電阻應(yīng)變式傳感器輸入電壓,當(dāng)標(biāo)準(zhǔn)重物放置在傳感器之上時,電阻值發(fā)生改變,使加載到全橋電路上的輸出電壓發(fā)生變化,變化范圍約為3mv到10mv運用ad620n儀表放大電路將微弱模擬信號放大,并經(jīng)過lm358搭建的電壓跟隨器電路濾波。送至stm32單片機(jī)中進(jìn)行a/d模數(shù)轉(zhuǎn)換,將模擬信號轉(zhuǎn)變成單片機(jī)能夠識別的數(shù)字信號,并且利用單片機(jī)控制整個電路的同時,處理數(shù)

6、字信號,并且控制在oled中顯示實時結(jié)果。oled改變顯示內(nèi)容單片機(jī)識別,發(fā)出改變顯示內(nèi)容的指令矩陣鍵盤發(fā)出指令按鍵 圖二:部分控制電路基本結(jié)構(gòu)圖 矩陣鍵盤上的按鍵被按下后,單片機(jī)識別并判斷指令內(nèi)容(如:去皮,計價,錄入單價等),并向oled屏發(fā)出改變顯示內(nèi)容的指令。 第二節(jié) 硬件電路的設(shè)計與選擇2.1傳感器的選擇電阻應(yīng)變式傳感器是將被測量的力,通過它產(chǎn)生的金屬彈性形變轉(zhuǎn)換成電阻變化的元件。由電阻應(yīng)變片和測量線路兩部分組成。本次設(shè)計中使用yzc-133壓力傳感器。下表為相關(guān)技術(shù)參數(shù)。注:該技術(shù)參數(shù)為店家提供,本小組并未將所有參數(shù)進(jìn)行檢驗。量程(kg)3kg綜合誤差(%f.s)0.05額定輸出溫

7、度飄移(%f.s/10)0.15靈敏度(mv/v)1.00.1零點輸出(mv/v)0.1非線性(%f.s)0.05輸入電阻( )100050重復(fù)性(%f.s)0.05輸出電阻( )100050滯后(%f.s)0.05絕緣電阻(m)2000(100vdc)蠕變(%f.s/3min)0.05推薦激勵電壓(v)312零點漂移(%f.s/1min)0.05工作溫度范圍 ()-10+50零點溫度漂移(%f.s/10)0.2過載能力(%f.s)150 由于其激勵電壓越高,準(zhǔn)確度越高的特性,本次設(shè)計使用10v電源供電。2.2信號放大電路的設(shè)計與選擇由上文中可知,10v單電源供電的壓力傳感器輸出最大值只有10

8、mv,stm32的ad量程為03.3v,則可以放大330倍。此處由于信號源僅有10mv,并且放大倍數(shù)較大,選用ad620n儀表放大器而非一般的運算放大器做放大電路,以得到較高的精確度和輸出電壓的良好的線性性。 放大電路為: 圖3 運算放大器電路 ad620是一種低功耗,高精度的儀表放大器,它只需要一個外界電阻,即可設(shè)置各種增益(1到1000)。ad620n與分離元件組成的儀表放大器相比較具有體積小,功耗低,精度高等優(yōu)點。電源電壓上15v均可以。之前曾經(jīng)使用正5v的單電源供電,但是使用時發(fā)現(xiàn)輸出電壓在1.3v到3.6v之間,由于分度值的要求,不能滿足本題的要求,故選用雙電源供電。此處使用10v的

9、雙電源供電。由此公式可計算出我們所需要的電阻,放大330倍約需要使用150電阻。2.4電壓跟隨器電路設(shè)計由于精度要求,為了降低信號的噪聲,此處增用一個電壓跟隨器電路已達(dá)成接近濾波的效果。電壓跟隨器的顯著特點就是,輸入阻抗高,而輸出阻抗低。一般來說,輸入阻抗可以達(dá)到幾兆歐姆,而輸出阻抗低,通常只有幾歐姆,甚至更低。在電路中,電壓跟隨器一般做緩沖級(buffer)及隔離級。因為,電壓放大器的輸出阻抗一般比較高,通常在幾千歐到幾十千歐,如果后級的輸入阻抗比較小,那么信號就會有相當(dāng)?shù)牟糠謸p耗在前級的輸出電阻中。在這個時候,就需要電壓跟隨器進(jìn)行緩沖。起到承上啟下的作用。電壓跟隨器還可以提高輸入阻抗,可以

10、大幅度減小輸入電容的大小,為應(yīng)用高品質(zhì)的電容提供保證。此處采用如圖所示的電路。經(jīng)過電壓跟隨器處理的信號噪聲有明顯的減少,使數(shù)據(jù)的穩(wěn)定性提高。信號部分(ad620n儀表放大器和lm358電壓跟隨器)的電路如圖所示2.5單片機(jī)數(shù)據(jù)處理及控制電路2.5.1 stm32 stm32系列芯片是由st公司開發(fā)并發(fā)布一系列相關(guān)固件庫以方便開發(fā)人員進(jìn)行開發(fā)的一款實用性強(qiáng),功能強(qiáng)大,開發(fā)較容易的32位微處理器(單片機(jī))。在工業(yè)上適用于高性能、低成本、低功耗的嵌入式開發(fā)。作為一款32位單片機(jī)芯片,它使用了arm公司的cortex-m3高性能內(nèi)核,并集成了12通道的dma處理器,定時器,3個12位的us級的a/d轉(zhuǎn)

11、換器,2通道12位d/a轉(zhuǎn)換器,3個spi接口,2個iic接口和串行接口uart,并因其集成度之高及價格低廉而被廣泛使用。 在目前的時代發(fā)展中,電子產(chǎn)品對于傳感器的使用逐漸增多,adc功能也相應(yīng)變得重要。而在這方面,stm32系列芯片上集成的外設(shè)adc也可以算得上非常強(qiáng)大。增強(qiáng)型產(chǎn)品(stm32f103xc,stm32f103xd,stm32f103xe系列為st推出的增強(qiáng)型產(chǎn)品)內(nèi)嵌3個12位的adc,每個多達(dá)21個外部通道,可以實現(xiàn)單次或多次掃描轉(zhuǎn)換。adc的結(jié)果可以左對齊或右對齊的方式存儲在16位數(shù)據(jù)寄存器中。 對于adc來說,分辨率,轉(zhuǎn)換時間和adc類型是最重要的。32的外設(shè)adc有1

12、2位的分辨率,不能直接測量負(fù)電壓;轉(zhuǎn)換時間是可編程的,采樣時間最短為1m;adc類型則是逐次比較性的adc。adc的參考電壓引腳分別為vref+(模擬參考量正極),vdda(模擬電源),vref-(模擬參考負(fù)極),vssa(模擬電源地)和模擬量輸入腳(16個)。在過程中,輸入信號經(jīng)過通道被送到adc部件,adc部件需要收到觸發(fā)信號才開始進(jìn)行轉(zhuǎn)換,如exti觸發(fā),定時器觸發(fā)或軟件觸發(fā)。adc部件接收到觸發(fā)信號后,在adcclk時鐘的驅(qū)動下對輸入通道信號進(jìn)行采樣,并進(jìn)行模數(shù)轉(zhuǎn)換,其中adcclk是來自adc預(yù)分頻器的。得到的數(shù)據(jù)被保存在16位的規(guī)則通道寄存器中,可以通過cpu指令或dma把它讀取到

13、內(nèi)存(變量)中。 在adc的程序設(shè)置上,可以設(shè)置多種模式,如同步注入模式,同步規(guī)則模式等,并可以進(jìn)行多通道的輪流采集等設(shè)置,功能強(qiáng)大,簡便易用。 32系列芯片不僅有強(qiáng)大的adc,還有同樣強(qiáng)大的定時器功能。在定時器方面,stm32有8個16位的定時器,其中tim6,tim7為基本定時器,tim1,tim8是高級定時器,其他為通用定時器。這些定時器有定時,信號頻率測量,信號的pwm測量,pwm輸出,三相六步電機(jī)控制及編碼器接口等功能。圖6. stm32單片機(jī)引腳圖2.5.2單片機(jī)的引腳連接關(guān)系單片機(jī)與矩陣鍵盤的連接: gpiopc1-pin1 pc2-pin2 pc3-pin3 pc4-pin4

14、pc5-pin5 pc6-pin6 pc7-pin7 pc8-pin8單片機(jī)與oled屏幕的連接: gpiopa3-cs pa4-rst pa5-dc pa6-sclk(d0) pa7-sdin(d1) 3.3v-vdd+(非單片機(jī)引腳) gnd-gnd(非單片機(jī)引腳) 單片機(jī)與傳感電路的連接: vcc-3.3v gnd-gnd pa1-電壓跟隨器的信號口 其中pa1復(fù)用adc1功能。第三節(jié) 軟件程序的設(shè)計與選擇3.1軟件程序計算 經(jīng)過放大,濾波與電壓跟隨器的信號電壓從adc中取值,經(jīng)過20組測量數(shù)據(jù),我們測量出了電源電壓(伏)與重量(千克)的關(guān)系(數(shù)據(jù)沒有保存,測試成功之后只留下了變換函數(shù))

15、,經(jīng)過非線性校準(zhǔn)之后的函數(shù)為 ( )/1000。3.2最終軟件程序(部分) rcc.c,oled.c,adc.c,tim.c,keyboard.c,main.c。其中adc.c如下:#include prohead.h#include adc.hextern float mass;extern float mass0;extern float mass_get;extern u8 danjia4;extern u8 danjia_point ; float adc_get1000;extern float mass00;extern float adc;u8 x;void adc_config

16、(void) gpio_inittypedef gpio_initstructure;adc_inittypedef adc_initstructure; gpio_initstructure.gpio_pin = gpio_pin_1 ;/| gpio_pin_1 | gpio_pin_2;gpio_initstructure.gpio_mode = gpio_mode_ain;gpio_init(gpioa, &gpio_initstructure);adc_initstructure.adc_mode = adc_mode_independent; /獨立模式 adc_initstruc

17、ture.adc_scanconvmode = disable; /連續(xù)多通道模式 adc_initstructure.adc_continuousconvmode = enable; /連續(xù)轉(zhuǎn)換 adc_initstructure.adc_externaltrigconv = adc_externaltrigconv_none; /轉(zhuǎn)換不受外界決定 adc_initstructure.adc_dataalign = adc_dataalign_right; /右對齊 adc_initstructure.adc_nbrofchannel = 1; /掃描通道數(shù) adc_init(adc1, &

18、adc_initstructure); adc_regularchannelconfig(adc1, adc_channel_1, 1, adc_sampletime_71cycles5); /通道x,采樣時間為1.5周期,1代表規(guī)則通道第1個這個1是啥意思我不太清楚只有是1的時候我的adc才正常。 adc_cmd(adc1, enable); /使能或者失能指定的adc adc_resetcalibration(adc1); /重置adc1校準(zhǔn)寄存器while(adc_getresetcalibrationstatus(adc1);/等待adc1校準(zhǔn)重置完成adc_startcalibrat

19、ion(adc1);/開始adc1校準(zhǔn)while(adc_getcalibrationstatus(adc1);/等待adc1校準(zhǔn)完成adc_softwarestartconvcmd(adc1 ,enable);/使能或者失能指定的adc的軟件轉(zhuǎn)換啟動功能void adc_read(void) static u16 i;float he = 0;u16 j;mass = 0;for(i=0;i1000;i+)while(adc_getflagstatus(adc1, adc_flag_eoc) = reset); /檢查制定adc標(biāo)志位置1與否 adc_flag_eoc 轉(zhuǎn)換結(jié)束標(biāo)志位 mas

20、s_get = (float)adc_getconversionvalue(adc1) / 4096 * 3.3;adc_geti = mass_get ; for(j=0;j1000;j+) he = he+adc_getj;mass_get = he/1000;mass_get = mass_get - mass00;adc = mass_get - mass0;mass = (0.7835*adc*adc*adc - 1.3802*adc*adc +1010.3*adc )/1000; void insertsort(float x,int n) int i , j;float a;fo

21、r (i=0;in-1;i+) a=x i+1; j=i; while (a xj) xj+1 = xj; j-; xj+1 = a; keyboard.c部分程序如下:void update_key(void) unsigned char i, j; for(i = 0; i 4; i+) /i?,? gpio_resetbits(key_outputi.gpio_x, key_outputi.gpio_pin); for(j = 0; j 4; j+) /j?,? if(gpio_readinputdatabit(key_inputj.gpio_x, key_inputj.gpio_pin

22、) = 0) u16 t = 40000; while (t-); if (gpio_readinputdatabit(key_inputj.gpio_x, key_inputj.gpio_pin) = 0) keyij = 1; key_down(i,j); /printf(i=%drn,i); /printf(j=%drn,j); /keypoint = 0 ; /delay_ms(300); else keyij = 0; gpio_setbits(key_outputi.gpio_x, key_outputi.gpio_pin); oled.c中部分程序如下:void show_mas

23、s(void) switch(oled_point)case 1 : /正常顯示重量show_string_and_mass(); break;case 0 : /顯示系統(tǒng)內(nèi)存已有單價,可以進(jìn)行價格選擇oled_showchinese(0,0,14);oled_showchinese(16,0,15); oled_shownum(28,3,danjia0,1,1); oled_shownum(36,3,danjia1,1,1); oled_shownum(44,3,danjia2,1,1); oled_shownum(52,3,danjia3,1,1); break;case 2 : /鍵入單

24、價界面break;case 3 : /計價界面jiage = mass * (danjia0*10 + danjia1 + danjia2*0.1 + danjia3*0.01);get_char(price,jiage);oled_shownum(20,3,price4,1,1);oled_shownum(28,3,price3,1,1);oled_shownum(36,3,price2,1,1);oled_shownum(44,3,price1,1,1);oled_shownum(52,3,price0,1,1);oled_showchinese(60,3,16);/void show_m

25、_by_number(void) get_char(fanhaoyang,mass);oled_shownum(20,3,fanhaoyang4,1,1);oled_shownum(28,3,fanhaoyang3,1,1);oled_shownum(36,3,fanhaoyang2,1,1);oled_shownum(44,3,fanhaoyang1,1,1);oled_shownum(52,3,fanhaoyang0,1,1);void get_char(u8 get,float from) u16 i = (u16)(from*1000); get4 =(u8)(i/10000); ge

26、t3 =(u8)(i - get4*10000)/1000); get2 =(u8)(i - get4*10000 - get3*1000) / 100); get1 =(u8)(i - get4*10000 - get3*1000 - get2*100)/10); get0 =(u8)(i - get4*10000 - get3*1000 - get2*100 - get1*10); get5 = 0;void show_string_and_mass(void)oled_showstring(0,0,weight);oled_showstring(68,3,weight2);get_cha

27、r(fanhaoyang,mass);oled_shownum(20,3,fanhaoyang4,1,1);oled_shownum(28,3,fanhaoyang3,1,1);oled_shownum(36,3,fanhaoyang2,1,1);oled_shownum(44,3,fanhaoyang1,1,1);oled_shownum(52,3,fanhaoyang0,1,1);if(qupi_point = 0)oled_showchinese(0,5,17);oled_showchinese(16,5,18);oled_showchinese(32,5,19);main.c如下:#i

28、nclude prohead.h#include bmp.hfloat mass_get; float mass0; float mass; float mass00 = 0;u8 keypoint ;u8 oled_point;u8 get5;u8 stop_point = 1;float adc;extern u8 fanhaoyang5;void all_config(void) rcc_config();led_config();usart_config();adc_config();keyboard_init();oled_point = 1;oled_init();oled_clear(); mass0 = 0;int main() delay_ms(5000);all_config();adc_read();mass00 = ad

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論