基于C8051F單片機(jī)的數(shù)字傾角傳感器設(shè)計(jì)
Dout 為傳感器的數(shù)字量輸出;
Sens 是傳感器的靈敏度,根據(jù)測(cè)量范圍不同,分別為819(4V/g)或 1638(2V/g)。單片機(jī)通過(guò)SPI 口讀取SCA100T 內(nèi)的兩路傳感器的A/D 轉(zhuǎn)換結(jié)果,在單片機(jī)機(jī)內(nèi)進(jìn)行處理后,通過(guò)串行口輸出。同時(shí)利用SPI 接口讀出內(nèi)部溫度傳感器,進(jìn)行測(cè)量值的溫度補(bǔ)償。
4 提高精度措施
SCA100T 非常敏感,電源的波動(dòng)或是器件的振動(dòng)對(duì)輸出值的精度都有很大的影響;溫度對(duì)輸出值也有一定的影響;在焊接時(shí)可能焊接面不平,安裝在機(jī)殼內(nèi)或嵌入在其它系統(tǒng)中時(shí)也可能與基準(zhǔn)面存在一定的角度,這些都會(huì)造成測(cè)量值的零點(diǎn)偏差。經(jīng)過(guò)實(shí)驗(yàn)和分析,主要通過(guò)以下方法來(lái)提高它的穩(wěn)定性和可靠性:
4.1 供電電路設(shè)計(jì)
供電電壓不穩(wěn)定可直接造成輸出的比例誤差,最大值可達(dá)到2%。如果電源過(guò)載則使傳感器供電不足而造成輸出波動(dòng)。系統(tǒng)加了電源輸入保護(hù)電路,防止電源輸入過(guò)載。采用高精度電壓源REF195 單獨(dú)給傳感器供電,有效地減小電源的波動(dòng)對(duì)輸出的影響。在電路板設(shè)計(jì)時(shí),傳感器的電源和地之間加上10nF 的濾波電容,在模擬輸出端加上10uF 濾波電容,也可以減小了紋波,從而減小了輸出誤差;工作在嵌入系統(tǒng)中時(shí),給這一部分電路加上鐵殼進(jìn)行電磁屏蔽,減小其它工作電路或周?chē)h(huán)境對(duì)它的影響。
4.2 軟件濾波
在單片機(jī)片內(nèi)RAM 中設(shè)定一個(gè)數(shù)組,用來(lái)存貯解算后的角度值。利用堆棧的原理將數(shù)組中新的測(cè)量值更新,對(duì)數(shù)據(jù)的數(shù)據(jù)進(jìn)行加權(quán)求和平均后輸出。這樣可以減小輸出波動(dòng),但輸出有一定的滯后,通過(guò)實(shí)驗(yàn)最終選用5 個(gè)數(shù)據(jù)處理滿(mǎn)足了系統(tǒng)的設(shè)計(jì)要求。
4.3 溫度補(bǔ)償
傳感器的輸出值同樣受到溫度的影響。它的內(nèi)部帶有溫度傳感器,在大多數(shù)情況下不需要進(jìn)行溫度補(bǔ)償。當(dāng)傳感器工作在極限溫度附近時(shí),可由MCU 根據(jù)其內(nèi)溫進(jìn)行補(bǔ)償。溫度的實(shí)際值由下式算出:
Treal=(Counts-197)/(-1.083)
式中Counts 為傳感器的輸出值。
4.4 模擬量輸出
Sca100t 還帶有模擬量輸出,其精度要比SPI 輸出的11BitAD 轉(zhuǎn)換結(jié)果高??梢杂?2Bit或16Bit 的AD 芯片或帶有更高精度AD 單片機(jī)(如C80051F060)的進(jìn)行測(cè)量得到電壓后,再進(jìn)行計(jì)算得到更高的測(cè)量精度。
4.5 零點(diǎn)校正
傳感器在焊接或安裝時(shí),不可避免的會(huì)有一些傾斜角度,從而造成零點(diǎn)誤差。傳感器在安裝固定好后,在三維轉(zhuǎn)臺(tái)上進(jìn)行標(biāo)定,測(cè)出它兩個(gè)方向的零點(diǎn)誤差值,作為一個(gè)常數(shù)值存入Flash 芯片中。MCU 把得到的測(cè)量值減去零點(diǎn)誤差再輸出,基本消除了零點(diǎn)誤差引起的測(cè)量誤差。
5 小結(jié)
經(jīng)過(guò)多次實(shí)驗(yàn)改進(jìn)后,數(shù)字傾角傳感器工作可靠、穩(wěn)定,測(cè)量精度高,便于嵌入到其它的測(cè)量系統(tǒng)中,已經(jīng)在無(wú)人機(jī)姿態(tài)測(cè)量等多個(gè)項(xiàng)目中得到了應(yīng)用。
評(píng)論