青島理工大學 劉艷偉 張 民 劉 婷
在酒駕事故中,很多是由于駕駛員飲酒過量導致的,當體內酒精濃度過高時,大腦反應速度會減慢,肢體不受控制,表情就會有異常,呼出的氣體也會帶有酒味,不飲酒或者飲少量的酒就不會導致以上癥狀,也就是說,當體內的酒精濃度不高時,就不會因飲酒引起危險事故。現在,酒精的測量技術已經有了不少的提升,有很多先進微處理器的酒精測試儀已經被商品化。禁止酒后駕車的規定已經在越來越多的國家開始,傳統的法醫血液酒精分析和精確的呼出氣體酒精測試相比,有很大的差距,例如,氣體酒精濃度測試可進行現場處理,可以進行無毒采樣,使交通控制更加高效。所以,需要設計一個酒精濃度檢測儀來測量駕駛員體內酒精濃度。
傳感器MQ-3根據酒精濃度的變化,其阻值也會隨著變化,通過取樣電阻的電壓變化表現出來;人體血液中酒精濃度不同,其呼出的氣體中酒精濃度也會不同。把MQ-3輸出的電壓以取樣電壓的形式送到模數轉換器,進行A/D轉換,將轉換后的數據送到單片機進行處理,如果酒精濃度的數值超過了所設定的報警值,則報警器報警,相應的二極管發光,數碼管顯示酒精濃度的值。
(1)傳感器電壓輸出范圍為0-5V。
(2)模數轉換芯片ADC0832電壓輸入范圍為0-5V,分辨率為8位,輸入輸出電平與TTL/CMOS相兼容。
(3)單片機具有256字節RAM標準功能。
(4)數碼管采用動態顯示方式。
單片機酒精濃度檢測儀使用MQ-3酒精傳感器采集氣體信號,并通過模數轉換器將模擬信號轉換為數字信號送至單片機,由單片機對數字信號進行分析處理,并將所得的結果通過數碼管顯示出來。鍵盤采用3個獨立鍵盤設置不同環境下酒精濃度的不同報警值,如果所檢測的酒精濃度超出了所設定的報警值,由蜂鳴器和LED燈進行聲光報警。顯示部分由1個四位一體共陽數碼管顯示當前數據,數碼管由4個三極管來控制位選。
硬件設計電路框圖如圖3-1所示。

圖3-1 硬件方案總體框圖
由于周圍空氣中的氣體成分可能會影響到傳感器測量的準確性,因此傳感器要對其他氣體不敏感,只能對酒精氣體敏感,故選用MQ-3型氣敏傳感器,它有很高的靈敏度、良好的選擇性、可靠的穩定性和長期的使用壽命。MQ-3型氣敏傳感器是由微型Al2O3,SnO2敏感層、陶瓷管、加熱器和測量電極構成的敏感元件固定在不銹鋼或者塑料的腔體內,加熱器是一個必不可少的元氣件,它為氣敏元件的工作提供了必要的工作條件。加熱回路與信號輸出回路組成了傳感器的標準回路,其中,傳感器表面電阻值的變化,可由信號輸出回路準確反映;通過負載電阻RL上的輸出電壓,就能知道表面電阻的變化。為了使測量的結果更精確,誤差減到最小,需要有合適的溫度,正常情況下,在測量前需要將傳感器先預熱3-5分鐘。MQ-3標準回路如圖3-2所示。

表3-1 血液酒精含量臨界值一覽表

圖3-2 MQ-標準回路
科學研究已經證明,血液中的酒精含量與呼氣中的酒精含量有如下的關系:
BAC(in mg/L)=BrAC(in mg/L)x2200
其中,BAC表示血液中酒精的濃度,BrAC表示呼氣中酒精的濃度。
由表3-1血液酒精含量臨界值就可以對駕駛人員的酒駕行為進行定性,如血液酒精濃度低于200mg/L,可以對其酌情處理;血液中的酒精含量大于200mg/L而低于800mg/L,則是酒后駕駛,大于或等于800mg/L則是醉酒駕駛[2]。
通常片選使能端CS、芯片時鐘輸入端CLK、數據信號輸出端DO、數據信號輸入端DI與單片機相連接。由于DI端與DO端在通信時并不是都有效的,將DO端和DI端在同一根數據線上使用,ADC0832不工作時,其CS輸入端為高電平,CLK和DO/DI的電平任意。進行A/D轉換時,CS處于低電平,由單片機向CLK輸入脈沖,在第1個脈沖的下沉之前DI端為高電平,DI端在第2、3個脈沖下沉之前輸入2位數據用于選擇通道功能,CH0為模擬輸入通道0,CH1為模擬輸入通道1。如果2位數據都為1時,對CH1進行單通道轉換,分別為1和0時,只對CH0進行轉換;分別為0和1時,用CH0作為負輸入端,CH1則作為正輸入端;都為0時,CH1則作為負輸入端,CH0作為正輸入端。第3個脈沖下沉以后,DI端不再輸入,開始利用DO端,對數據進行讀取。從第4個脈沖下沉開始由DO端輸出數據最高位DATA7,每下沉一個脈沖,DO端就相應輸出一位數據。到第11個脈沖輸出最低位DATA0,一個字節輸出完成;然后從第11個字節的下沉輸出DATD0,連續輸出8位數據,到第19個脈沖時數據輸出完成,一次完整的A/D轉換結束,將CS置高電平[3]。
每一個LED顯示塊由8個發光二極管構成,每一個發光二極管對應一個段,共8段。為了使LED顯示器顯示出不同的字型,需要把不同段的發光二極管點亮,這就需為LED顯示器提供代碼,因為這些代碼可使LED相應的段發光,從而顯示出不同數字和符號,該代碼稱為段碼。
由N個LED顯示塊可拼成N位的LED數碼顯示器。每一個LED顯示塊由1位位選線和8根段碼線構成。段碼線控制字符的字型,位選線控制LED顯示位的亮或暗,由于采用動態顯示,在同一時刻,只有選通的那一位顯示出字符,其他3位LED是熄滅的。按照這樣,不斷的循環,就能使各位顯示出將要顯示的字符。由于視覺暫留作用和LED的余輝,只要時間間隔足夠小,則能給人造成同時亮的假象,達到同時亮的效果。
3個鍵盤分別接單片機的3個引腳。使用時需先將P1.0~P1.2全部置1,然后判斷是否有鍵按下,如果鍵盤輸入端變為低電平,表明此鍵盤已按下,如果鍵盤輸入端為高電平,表明此鍵沒有被按下,如圖3-3所示。在軟件編程的時候,需注意鍵盤消抖。
當輸入端為高電平時蜂鳴器不報警。而當輸入端為低電平的時候,蜂鳴器就會發出報警聲音。報警電路如圖3-4所示。

圖3-3 獨立鍵盤電路

圖3-4 蜂鳴器報警電路
主程序實現的功能:與硬件相結合實現酒精濃度檢測系統的各個功能。主要是檢測與顯示,見圖4-1所示。

圖4-1 主程序流程圖

圖4-2 模數轉換流程圖
模數轉換器的功能是將模擬信號轉化為數字信號,傳送給單片機。ADC0832轉換的流程圖見圖4-2所示。
系統設定報警值并轉換為壓縮的BCD碼存放在兩個存儲單元中,這些在報警子程序執行之前實現。當傳感器輸入值進行A/D轉換后,就會調用比較程序,經過數據處理后顯示的測量值與報警值比較,如果小于報警值就繼續執行顯示程序。若大于報警值則將通過單片機進行聲光報警。
當傳感器檢測到被測氣體時,傳感器MQ-3調整電路決定了電壓每升高0.1V,實際被測氣體的濃度增加20ppm(1ppm=1mg/kg=1mg/L常用來表示氣體濃度,或者溶液濃度),也就是說,數字量電壓值1000mV對應血液中的的酒精濃度為200mg/L,電壓值與血液中的酒精濃度值在數值上的關系為:B(mg/L)=A(mV)x0.2,其中B代表血液中的酒精濃度值,單位為mg/L,A代表數字量電壓值,單位為mV,我們根據這個關系就可以在單片機里面將測得的數字量電壓值轉換為血液中的酒精濃度值。硬件與軟件聯合,對本實物進行調試,通過檢測,可得出以下結果,如表5-1所示。

表5-1 呼氣酒精含量、血液酒精濃度對應關系
通過軟、硬件聯合調試,從實驗結果中,可以得出呼出氣體中酒精濃度與血液中酒精濃度關系,與BAC(in mg/L)=BrAC(in mg/L)x2200數值關系相對應,從而可以確定此系統的準確性滿足設計基本要求,達到設計指標,從而也驗證了本次設計的準確性。
本設計以AT89S52為主,設計過程包括硬件設計和軟件編寫。硬件電路部分結構清晰、使用簡單。軟件部分采用模塊化設計思想,便于調試和修改。該系統具有以下意義:(1)提高人們的法律意識;(2)能夠便捷,準確,安全的檢測人體內的酒精濃度及監測空氣中的酒精含量。體積小、性價比高、功耗低的特點,使其具有一定的使用和推廣價值。
[1]杜鵬.直流磁控濺射法設備SnO2薄膜及其氣敏性研究[D].天津:河北工業大學,2006.
[2]李瑞生.論危險駕駛罪的行為構成[D].新疆警官高等專科學校,2012.
[3]仉冠生.表面肌電信號檢測系統的研究[D].河北工業大學,2007.
[4]Power Management Techniques for the F30X AND F31X[-Q].Silicon Laboratories Silicon Laboratories,2003,ANl38-DSll.