![電子秤課程設(shè)計實驗報告_第1頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/31/4a8cf9a5-3331-4728-a5f9-549770cd3153/4a8cf9a5-3331-4728-a5f9-549770cd31531.gif)
![電子秤課程設(shè)計實驗報告_第2頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/31/4a8cf9a5-3331-4728-a5f9-549770cd3153/4a8cf9a5-3331-4728-a5f9-549770cd31532.gif)
![電子秤課程設(shè)計實驗報告_第3頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/31/4a8cf9a5-3331-4728-a5f9-549770cd3153/4a8cf9a5-3331-4728-a5f9-549770cd31533.gif)
![電子秤課程設(shè)計實驗報告_第4頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/31/4a8cf9a5-3331-4728-a5f9-549770cd3153/4a8cf9a5-3331-4728-a5f9-549770cd31534.gif)
![電子秤課程設(shè)計實驗報告_第5頁](http://file1.renrendoc.com/fileroot_temp2/2021-1/31/4a8cf9a5-3331-4728-a5f9-549770cd3153/4a8cf9a5-3331-4728-a5f9-549770cd31535.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、. 電 子 設(shè) 計 實 驗 報 告電子科技大學(xué) 設(shè)計題目: 電子稱 姓 名: 學(xué)生姓名 任務(wù)與要求 一、任務(wù) 使用電阻應(yīng)變片稱重傳感器,實現(xiàn)電子秤。用砝碼作稱重比對。二、要求 準確、穩(wěn)定稱重;稱重傳感器的非線性校正,提高稱重精度;實現(xiàn)“去皮”、計價功能; 具備“休眠”與“喚醒”功能,以降低功耗。電子秤第一節(jié) 緒論摘要:隨著科技的進步,在日常生活以及工業(yè)運用上,對電子秤的要求越來越高。常規(guī)的測試儀器儀表和控制裝置被更先進的智能儀器所取代,使得傳統(tǒng)的電子測量儀器在遠離、功能、精度及自動化水平定方面發(fā)生了巨大變化,并相應(yīng)的出現(xiàn)了各種各樣的智能儀器控制系統(tǒng),使得科學(xué)實驗和應(yīng)用工程的自動化程度得以顯著提
2、高。影響其精度的因素主要有:機械結(jié)構(gòu)、傳感器和數(shù)顯儀表。在機械結(jié)構(gòu)方面,因材料結(jié)構(gòu)強度和剛度的限制,會使力的傳遞出現(xiàn)誤差,而傳感器輸出特性存在非線性,加上信號放大、模數(shù)轉(zhuǎn)換等環(huán)節(jié)存在的非線性,使得整個系統(tǒng)的非線性誤差變得不容忽視。因此,在高精度的稱重場合,迫切需要電子秤能自動校正系統(tǒng)的非線性。此外,為了保證準確、穩(wěn)定地顯示,要求所采用的ADC具有足夠的轉(zhuǎn)換位數(shù),而采用高精度的ADC,自然增加了系統(tǒng)的成本?;陔娮映拥默F(xiàn)狀,本文提出了一種簡單實用并且精度高的智能電子秤設(shè)計方案。通過運用很好的集成電路,使測量精度得到了大大提高,由于采用數(shù)字濾波技術(shù),使穩(wěn)態(tài)測量的穩(wěn)定性和動態(tài)測量的跟隨性都相當好。并
3、取得了令人滿意的效果。關(guān)鍵詞:壓力傳感器,AD620N放大電路,ADC模數(shù)轉(zhuǎn)換,STM32單片機,OLED顯示屏,矩陣鍵盤,電子秤。1. 1引言 本課程設(shè)計的電子秤以單片機為主要部件,利用全橋測量原理,通過對電路輸出電壓和標準重量的線性關(guān)系,建立具體的數(shù)學(xué)模型,將電壓量綱(V)改為重量綱(g)即成為一臺原始電子秤。其中測量電路中最主要的元器件就是電阻應(yīng)變式傳感器。電阻應(yīng)變式傳感器是傳感器中應(yīng)用最多的一種,本設(shè)計采用全橋測量電路,是系統(tǒng)產(chǎn)生的誤差更小。輸出的數(shù)據(jù)更精確。而AD620N放大電路的作用就是把傳感器輸出的微弱的模擬信號進行一定倍數(shù)的放大,以滿足A/D轉(zhuǎn)換器對輸入信號電平的要求。A/D轉(zhuǎn)
4、換的作用是把模擬信號轉(zhuǎn)變成數(shù)字信號,進行模擬量轉(zhuǎn)數(shù)字量轉(zhuǎn)換,然后把數(shù)字信號輸送到顯示電路中去,最后由OLED屏幕顯示出測量結(jié)果。配置有矩陣鍵盤可以對電子秤進行一定的操作如去皮,計價,并可當下手動錄入價格,并顯示價格。 1.2系統(tǒng)的設(shè)計與理論分析1.2.1系統(tǒng)設(shè)計根據(jù)設(shè)計要求,設(shè)計的主要內(nèi)容如下:1) 利用電阻應(yīng)變式傳感器,并采用全橋測量電路2) 設(shè)計一款電子秤,利用OLED屏幕顯示被稱物體的重量3) 利用矩陣鍵盤對電子秤進行去皮,計價,錄入價格的操作。4) 電路分成以下幾個部分: a.運放電路 b.電路的濾波及電壓跟隨器電路 c.單片機數(shù)據(jù)處理及控制電路,包括矩陣鍵盤,OLED屏幕等。 d.雙
5、電源供電及變壓電路。1.2.2 基本工作原理及原理框圖 OLED顯示重量單片機數(shù)據(jù)處理及控制STM32的A/D模數(shù)轉(zhuǎn)換Ad620n信號放大電路全橋電阻應(yīng)變式傳感器輸出信號10V雙電源供電10V單電源供電3.3V單電源供電圖一:基本硬件系統(tǒng)結(jié)構(gòu)圖 全橋電阻應(yīng)變式傳感器輸入電壓,當標準重物放置在傳感器之上時,電阻值發(fā)生改變,使加載到全橋電路上的輸出電壓發(fā)生變化,變化范圍約為3mV到10mV運用AD620N儀表放大電路將微弱模擬信號放大,并經(jīng)過LM358搭建的電壓跟隨器電路濾波。送至STM32單片機中進行A/D模數(shù)轉(zhuǎn)換,將模擬信號轉(zhuǎn)變成單片機能夠識別的數(shù)字信號,并且利用單片機控制整個電路的同時,處理
6、數(shù)字信號,并且控制在OLED中顯示實時結(jié)果。OLED改變顯示內(nèi)容單片機識別,發(fā)出改變顯示內(nèi)容的指令矩陣鍵盤發(fā)出指令按鍵 圖二:部分控制電路基本結(jié)構(gòu)圖 矩陣鍵盤上的按鍵被按下后,單片機識別并判斷指令內(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ù)進行檢驗。量程(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 由于其激勵電壓越高,準確度越高的特性,本次設(shè)計使用10V電源供電。2.2信號放大電路的設(shè)計與選擇由上文中可知,10V單電源供電的壓力傳感器輸出最大值只有1
8、0mV,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è)計由于精度要求,為了降低信號的噪聲,此處增用一個電壓跟隨器電路已達成接近濾波的效果。電壓跟隨器的顯著特點就是,輸入阻抗高,而輸出阻抗低。一般來說,輸入阻抗可以達到幾兆歐姆,而輸出阻抗低,通常只有幾歐姆,甚至更低。在電路中,電壓跟隨器一般做緩沖級(buffer)及隔離級。因為,電壓放大器的輸出阻抗一般比較高,通常在幾千歐到幾十千歐,如果后級的輸入阻抗比較小,那么信號就會有相當?shù)牟糠謸p耗在前級的輸出電阻中。在這個時候,就需要電壓跟隨器進行緩沖。起到承上啟下的作用。電壓跟隨器還可以提高輸入阻抗,可
10、以大幅度減小輸入電容的大小,為應(yīng)用高品質(zhì)的電容提供保證。此處采用如圖所示的電路。經(jīng)過電壓跟隨器處理的信號噪聲有明顯的減少,使數(shù)據(jù)的穩(wěn)定性提高。信號部分(AD620N儀表放大器和LM358電壓跟隨器)的電路如圖所示2.5單片機數(shù)據(jù)處理及控制電路2.5.1 STM32 STM32系列芯片是由ST公司開發(fā)并發(fā)布一系列相關(guān)固件庫以方便開發(fā)人員進行開發(fā)的一款實用性強,功能強大,開發(fā)較容易的32位微處理器(單片機)。在工業(yè)上適用于高性能、低成本、低功耗的嵌入式開發(fā)。作為一款32位單片機芯片,它使用了ARM公司的Cortex-M3高性能內(nèi)核,并集成了12通道的DMA處理器,定時器,3個12位的us級的A/D
11、轉(zhuǎn)換器,2通道12位D/A轉(zhuǎn)換器,3個SPI接口,2個IIC接口和串行接口UART,并因其集成度之高及價格低廉而被廣泛使用。 在目前的時代發(fā)展中,電子產(chǎn)品對于傳感器的使用逐漸增多,ADC功能也相應(yīng)變得重要。而在這方面,STM32系列芯片上集成的外設(shè)ADC也可以算得上非常強大。增強型產(chǎn)品(STM32F103xC,STM32F103xD,STM32F103xE系列為ST推出的增強型產(chǎn)品)內(nèi)嵌3個12位的ADC,每個多達21個外部通道,可以實現(xiàn)單次或多次掃描轉(zhuǎn)換。ADC的結(jié)果可以左對齊或右對齊的方式存儲在16位數(shù)據(jù)寄存器中。 對于ADC來說,分辨率,轉(zhuǎn)換時間和ADC類型是最重要的。32的外設(shè)ADC有
12、12位的分辨率,不能直接測量負電壓;轉(zhuǎn)換時間是可編程的,采樣時間最短為1m;ADC類型則是逐次比較性的ADC。ADC的參考電壓引腳分別為VREF+(模擬參考量正極),VDDA(模擬電源),VREF-(模擬參考負極),VSSA(模擬電源地)和模擬量輸入腳(16個)。在過程中,輸入信號經(jīng)過通道被送到ADC部件,ADC部件需要收到觸發(fā)信號才開始進行轉(zhuǎn)換,如EXTI觸發(fā),定時器觸發(fā)或軟件觸發(fā)。ADC部件接收到觸發(fā)信號后,在ADCCLK時鐘的驅(qū)動下對輸入通道信號進行采樣,并進行模數(shù)轉(zhuǎn)換,其中ADCCLK是來自ADC預(yù)分頻器的。得到的數(shù)據(jù)被保存在16位的規(guī)則通道寄存器中,可以通過CPU指令或DMA把它讀取
13、到內(nèi)存(變量)中。 在ADC的程序設(shè)置上,可以設(shè)置多種模式,如同步注入模式,同步規(guī)則模式等,并可以進行多通道的輪流采集等設(shè)置,功能強大,簡便易用。 32系列芯片不僅有強大的ADC,還有同樣強大的定時器功能。在定時器方面,STM32有8個16位的定時器,其中TIM6,TIM7為基本定時器,TIM1,TIM8是高級定時器,其他為通用定時器。這些定時器有定時,信號頻率測量,信號的PWM測量,PWM輸出,三相六步電機控制及編碼器接口等功能。圖6. STM32單片機引腳圖2.5.2單片機的引腳連接關(guān)系單片機與矩陣鍵盤的連接: GPIOPC1-PIN1 PC2-PIN2 PC3-PIN3 PC4-PIN4
14、 PC5-PIN5 PC6-PIN6 PC7-PIN7 PC8-PIN8單片機與OLED屏幕的連接: GPIOPA3-CS PA4-RST PA5-DC PA6-SCLK(D0) PA7-SDIN(D1) 3.3V-VDD+(非單片機引腳) GND-GND(非單片機引腳) 單片機與傳感電路的連接: 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)過非線性校準之后的函數(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_Confi
16、g(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_InitStru
17、cture.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校準寄存器while(ADC_GetResetCalibrationStatus(ADC1);/等待ADC1校準重置完成ADC_StartCalibra
19、tion(ADC1);/開始ADC1校準while(ADC_GetCalibrationStatus(ADC1);/等待ADC1校準完成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標志位置1與否 ADC_FLAG_EOC 轉(zhuǎn)換結(jié)束標志位 ma
20、ss_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;f
21、or (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_pi
22、n) = 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_ma
23、ss(void) switch(oled_point)case 1 : /正常顯示重量show_string_and_mass(); break;case 0 : /顯示系統(tǒng)內(nèi)存已有單價,可以進行價格選擇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_
25、m_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); g
26、et3 =(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_ch
27、ar(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如下:#
28、include 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全英文租房合同范例
- 債權(quán)投資轉(zhuǎn)讓合同范本
- 乙方租屋合同范本
- 會計付款合同范本
- 課程培訓(xùn)合作合同范本
- 不過戶購車合同范本
- 2025年度住宅小區(qū)車位租賃市場調(diào)查與分析合同
- 購房抵押貸款合同范本
- 兼職保姆聘用合同范本
- 公司策劃服務(wù)合同范例
- 2025年上半年東莞望牛墩鎮(zhèn)事業(yè)單位招考(10人)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年度茶葉品牌加盟店加盟合同及售后服務(wù)協(xié)議
- 2025年江蘇連云港市贛榆城市建設(shè)發(fā)展集團有限公司招聘筆試參考題庫附帶答案詳解
- 氧氣、乙炔工安全操作規(guī)程(3篇)
- 建筑廢棄混凝土處置和再生建材利用措施計劃
- 集裝箱知識培訓(xùn)課件
- 某縣城區(qū)地下綜合管廊建設(shè)工程項目可行性實施報告
- JJF(京) 92-2022 激光標線儀校準規(guī)范
- 普惠金融政策解讀
- 2024年疾控中心支部工作計劃范本
- 《無菌檢查培訓(xùn)》課件
評論
0/150
提交評論