我们经常看到交警在查司机酒驾的时候,会使用酒精测试仪来检查他们是否受酒精影响。其实,酒精测试仪其实很容易制作,以下是如何自制具有3位显示输出的酒精测试仪。当然,毕竟是作为简单案例使用,所以准确度要差点。
在本文中,使用8051单片机的呼吸分析仪电路,它从呼吸中输出血液酒精含量(BAC)。“酒精含量的百分比”在3位七段显示器上以百分比显示。使用的单片机是8051系列的AT89S51和酒精传感器MQ135气体传感器。
一、MQ135气体传感器电路
MQ135是一款稳定灵敏的气体传感器,可检测氨、二氧化碳、酒精、烟雾、二氧化氮等。该传感器由氧化铝微管内的二氧化锡敏感层、测量电极和管状铝壳内的加热元件组成。传感器的前端用不锈钢网覆盖,背面固定连接端子。
呼吸中存在的乙醇在通过加热元件时被氧化成乙酸。这种乙醇落在二氧化锡传感层上,因此其电阻降低。使用外部负载电阻器将这种电阻变化转换为合适的电压变化。MQ135
酒精传感器的典型连接布置如下所示:
MQ135在不同温度和不同气体浓度下具有不同的电阻值。制造商建议在100 ppm的氨或50
ppm的酒精中校准传感器。负载电阻的推荐值在10K到47K之间。
二、酒精测试仪原理图
需要的组件列表:
酒精传感器 (MQ135) – 1个。
单片机 (AT89S51) – 1个。
7 段显示 – 3 个。
晶体管 (2N2222) – 3个。
开关 – 1个。
电容器 (150pF) – 1个。
电容器 (22uF/10V) – 1个。
电容器 (10uF/10V) – 3个。
电阻器:100– 11 nos, 10k – 3nos, 22k – 1 nos, 8.2k – 1 nos, 330 ohm – 1
nos。
三、酒精检测器电路工作原理
酒精检测器单元的电压输出使用 ADC0804 (IC1) 转换为数字格式。ADC的 V ref/2引脚使用由 R14 和 R15
组成的分压器网络保持在 1.28V。V ref/2 =1.28V 表示 ADC 的步长为 10mV,vwin 输入每增加 10mV,ADC 的输出将增加一位。请参阅
ADC0804 的数据表以更好地掌握。ADC 的数字输出(D0 到 D7)连接到单片机的端口 1。控制信号 CS、RD、WR、INTR 分别从单片机
P3.7、P3.6、P3.5、P3.4 引脚获得。R9 和 C1 与 ADC0804 的时钟电路相关。
电容器 C3 连接在ADC0804 传感器输出中的噪声滤波器(如果有)的V in+和 V in-之间。如果不使用 C3,ADC
的数字输出将不稳定。该滤波电容器肯定会导致 ADC 响应出现一些滞后,但它在此入门级应用中并不是很重要。单片机对 ADC
数字输出执行所需的操作,以便将其转换为“酒精含量的百分比”并将其显示在三位数的七段显示器上。单片机的端口 0
连接到多路复用的三位数七段显示器。三位数字的驱动信号分别从单片机的P3.0、P3.1、P3.2引脚获得。
四、8051单片机酒精测试仪程序
ORG 00H
MOV P1,#11111111B
MOV P0,#00000000B
MOV P3,#00000000B
MOV DPTR,#LUT
MAIN: MOV R4,#250D
CLR P3.7
SETB P3.6
CLR P3.5
SETB P3.5
WAIT: JB P3.4,WAIT
CLR P3.7
CLR P3.6
MOV A,P1
MOV R5,A
SUBB A,#86
JC NEXT
SETB P3.3
CLR PSW.7
NEXT: MOV A,R5
SUBB A,#115D
JNC LABEL
MOV A,#00000000B
CLR PSW.7
LABEL: MOV B,#5D
MUL AB
MOV B,#8D
DIV AB
MOV B,#10D
DIV AB
MOV R6,A
MOV R7,B
DLOOP:SETB P3.0
MOV P0,#01000000B
ACALL DELAY
CLR P3.0
SETB P3.1
MOV A,R6
ACALL DISPLAY
MOV P0,A
ACALL DELAY
CLR P3.1
SETB P3.2
MOV A,R7
ACALL DISPLAY
MOV P0,A
ACALL DELAY
CLR P3.2
DJNZ R4,DLOOP
SJMP MAIN
DELAY: MOV R3,#255D
LABEL1: DJNZ R3,LABEL1
RET
DISPLAY: MOVC A,@A+DPTR
CPL A
RET
LUT: DB 3FH
DB 06H
DB 5BH
DB