基于單片機的酒精氣體濃度測試儀的設計與制作
江陰職業(yè)技術學院 趙書紅 張健健
【摘要】文章以單片機STC12C5A16AD為核心,運用高靈敏度傳感器MQ-3氣體傳感器,采用EEPROM芯片存儲預設的報警閾值,并通過LCD顯示檢測結果及二極管實現(xiàn)超標報警。經(jīng)過軟硬件聯(lián)合調試,實驗結果基本滿足設計要求,達到設計指標。
【關鍵詞】單片機;MQ-3氣體傳感器;酒精檢測
近年來酒后駕引起的交通事故越來越受到社會的關注,為此,設計一款智能儀器能夠監(jiān)測出駕駛員體內的酒精含量顯得尤為重要。本設計的酒精濃度測試儀是一款實用性強、安全可靠的氣體乙醇濃度檢測工具,采用高精度MQ-3乙醇氣體傳感器對空氣中的乙醇濃度進行檢測,利用宏晶公司高性能低成本單片機STC12C5A16AD對檢測信號進行A/D轉換和處理,最后通過液晶屏顯示輸出。該酒精濃度測試儀還具有醉酒閾值設定功能,可以根據(jù)法律法規(guī)或用戶需要設定修改醉酒閾值,并進行保存。
1.系統(tǒng)整體設計
酒精濃度測試儀是用來測試所處環(huán)境中的酒精濃度的,并顯示出測試的結果數(shù)值,而本設計所做的智能酒精濃度酒精測試儀除具有這個基本功能外,還可通過手動隨意設置酒精濃度的閥值,以劃定不同環(huán)境條件下酒精的安全界限,同時具有報警功能。它主要由酒精傳感器、模數(shù)轉換器、單片機、LCD顯示、鍵盤模塊以及報警部分組成。
本設計的酒精濃度測試儀框圖如圖1所示。MQ-3乙醇氣體傳感器輸出信號經(jīng)信號調理電路處理,輸出隨乙醇濃度變化的電壓信號,該電壓信號送入單片機系統(tǒng),經(jīng)AD轉換,與設定的醉酒閾值進行比較,并顯示或報警。
圖1 系統(tǒng)結構框圖
2.系統(tǒng)的硬件設計
2.1 整體設計
本設計的酒精濃度測試儀框圖如圖2所示。MQ-3乙醇氣體傳感器輸出信號經(jīng)信號調理電路處理,輸出隨乙醇濃度變化的電壓信號,該電壓信號送入單片機系統(tǒng),經(jīng)AD轉換,與設定的醉酒閾值進行比較,并顯示或報警。
2.2 單片機及外圍電路設計
本設計選用宏晶公司高性能單片機STC12 C5A16AD,其管腳如圖3所示該芯片為52內核8位單片機,內部集成了10位多路A/D轉換模塊,適用于常用測試電路。
由STC12C5A16AD組成的單片機系統(tǒng)原理圖如圖3所示。圖中AOUT為MQ-3傳感器模塊輸出的測試電壓信號,送入ADC7端口進行處理,DOUT為傳感器模塊輸出的數(shù)字電平信號,該信號可以根據(jù)乙醇氣體濃度直接輸出報警信號,報警閾值通過模塊上的電位器進行調節(jié)。
圖2 酒精濃度測試儀方框圖
圖3 單片機系統(tǒng)原理圖
圖3中,按鍵K2和K3為醉酒閾值調整鍵,其中K2為“增加”,K3為“減小”按鍵。L2和L3為報警指示燈,分別可以進行酒后和醉酒兩級報警。
2.3 傳感器設計
酒精濃度的準確檢測是決定該設計成功與否的關鍵因素,而酒精的檢測依靠酒精傳感器來實現(xiàn)信號的采集。在本設計中選用靈敏度高、穩(wěn)定性好的MQ-3氣敏傳感器。當其表面吸附有被測氣體酒精分子時,表面導電電子比例就會發(fā)生變化,從而其表面電阻會隨著被測氣體的濃度的變化而變化。由于這種變化是可逆的,所以能重復使用。MQ-3型氣敏傳感器靈敏度高,響應速度快,可用于很好的檢測凈凈濃度。
MQ-3乙醇氣體傳感器及其電路原理如圖4所示。經(jīng)過調試,測試信號由電阻值轉變成電壓值,便于后續(xù)電路進行A/D轉換和處理。
圖4 傳感器及調理模塊原理圖
圖5 LCD與單片機接口電路
2.4 顯示電路設計
顯示部分采用SMC 1602液晶屏進行數(shù)據(jù)顯示,與單片機接口電路如圖5所示。其中J2的3腳為背光引腳,R9和R10電阻用于調節(jié)背光亮度。J2的4、5、6引腳分別接液晶的RS、E/W和E控制引腳,J2的7-14引腳為數(shù)據(jù)引腳。
2.5 閾值存儲設計
醉酒閾值存儲在EEPROM芯片AT24C01中,并可以通過“增加”、“減少”按鍵調節(jié)并保存。AT24C01是IIC接口的EEPROM芯片,可以用于掉電不易丟失數(shù)據(jù)的存儲。其電路如圖7所示。圖中A0、A1和A2為芯片的地址引腳,一般接地即可。SCL和SDA為AT24C01和單片機IIC通信的時鐘線和數(shù)據(jù)線。
圖6 EEPROM存儲電路
2.6 供電及下載電路設計
本設計采用USB接口供電,電源電壓5V。同時,USB接口通過內含PL2303芯片的轉換電路對單片機進行程序編寫。其電路原理如圖7所示。
圖7 供電及程序下載電路
3.系統(tǒng)的軟件設計
3.1 A/D轉換的軟件實現(xiàn)
A/D轉換的軟件控制流程如圖8所示。
A/D轉換的啟動必須依靠下降沿觸發(fā),在START置低后延時一段時間(約10ms)轉換才正式開始.轉換過程中的所需輸入時鐘允許范圍為10KHZ~1280KHZ,在本次設計中選用500KHZ,通過定時器產(chǎn)生,轉換完成后得到的數(shù)字量即為由酒精傳感器測試到環(huán)境中的酒精含量而產(chǎn)生的電壓值,調用數(shù)據(jù)處理程序從而可得到酒精濃度的真實值。
3.2 閾值設定及顯示的軟件控制
酒精濃度的閾值設定及顯示的具體軟件控制流程如圖9所示。
當系統(tǒng)進行完初始化后,該測試儀在將測試到的酒精濃度進行A/D轉換的同時,還在時刻測試有無外部中斷的響應,一旦有按鍵按下,將會根據(jù)按鍵按下的次數(shù)選擇酒精濃度表中的酒精濃度值,而且這個值將會立刻被保存于外部存儲單元(AT24C08),以便與監(jiān)測到的環(huán)境中的酒精濃度進行比較,完成接下來的報警功能。
3.3 整體軟件控制流程
該系統(tǒng)的軟件流程圖見圖10所示。
圖10 軟件方案總體流程圖
圖11 酒精濃度測試儀正常工作
該儀器軟件程序主要使用C語言編寫,采用了模塊化結構程序設計方法,包括主程序、中斷程序等。系統(tǒng)在開機或者復位后,首先進行初始化、自檢,然后進入中斷等待,A/D轉換,液晶顯示三個狀態(tài),最終根據(jù)所得結果判斷是否執(zhí)行聲光報警。中斷子程序包括預設閥值、數(shù)據(jù)存儲、信息顯示等操作,在進行閥值判斷時用到了LM393電壓比較器,程序的絕大部分時間處在數(shù)據(jù)處理上,而單片機在一次處理數(shù)據(jù)的時間約為6us,故總體的平均功耗低。
4.調試
該測試儀的整體功能實現(xiàn)即由每個模塊的分工協(xié)作來實現(xiàn)。將程序在Keil編譯器中編譯成功后,生成HEX文件,然后將程序燒錄到單片機中,上電即可進行工作了。上電后該酒精測試儀將按照初始化的程序進行工作,酒精濃度閾值為當初設定的,超過閾值則會產(chǎn)生報警。一旦有設定酒精濃度閾值的按鍵按下,并且測試按鍵按下的次數(shù),則酒精濃度的閾值即被重新設定,在沒被下一次設定前,實時測試的酒精濃度將與它進行比較,超過該界限值即報警,同時酒精濃度值一直將會顯示出來,如圖11、12所示。圖11是酒精濃度測試儀上電后正常工作時顯示的字符。延時2S后自動顯示圖12上的內容。圖12是酒精濃度測試儀正常工作時顯示的標準值80mg/L,現(xiàn)場檢測到的酒精濃度值20mg/L。
圖12 酒精濃度測試儀正常工作
5.結論
本文設計了基于單片機的酒精濃度測試儀,采用模塊化設計,結構簡單,使用方便。通過軟硬件聯(lián)合調試,實驗結果基本滿足設計要求,達到設計指標。
參考文獻
[1]姚蕾.基于單片機酒精濃度檢測儀設計[J].福建電腦,2012,9.
[2]朱志強.基于STC單片機的靈敏酒精檢測系統(tǒng)的設計[J].數(shù)字技術與應用,2011.
[3]李麗華,黃秋野,王琦.基于單片機的酒精濃度檢測儀設計[J].2009,3.
項目來源:江陰職業(yè)技術學院大學生實踐創(chuàng)新項目(項目編號:GJZY2012-01-06-4)。
作者簡介:
趙書紅(1982—),女,碩士,講師,現(xiàn)供職于江陰職業(yè)技術學院,主要從事電工電子技術的教學與研究以及電力電子與電力傳動的研究。
張健健(1992—),現(xiàn)就讀于江陰職業(yè)技術學院電子信息工程系。