单片机的酒精浓度检测仪

本文详细介绍了如何利用51单片机、MQ-3酒精传感器、AD0832模数转换器及LCD1602液晶显示模块实现一个酒精浓度监测系统。通过MQ-3传感器采集酒精浓度并转化为数字信号,实时显示在液晶屏上,并能通过按键调整报警阈值。当酒精浓度超标时,系统会触发蜂鸣器报警和灯光提示。
摘要由CSDN通过智能技术生成

设计功能

(1)主要采用51单片机+最小系统+LCD1602液晶显示模块+MQ-3模块+ADC0832模块+蜂鸣器模块+LED指示灯模块+按键模块。
(2)采用MQ-3酒精传感器采集酒精浓度,AD0832模数转换芯片将MQ-3酒精传感器采集到的的电压信号转换成数字信号给单片机。
(3)采用LCD1602液晶屏显示当前酒精浓度值和报警值;可通过按键调整酒精浓度的报警值。
(4)四个按键设置、加、减,单独的是复位按键。
(5)当酒精浓度没有超过设置的阀值时,绿灯闪亮,当酒精浓度超过上限值时,红灯闪烁同时蜂鸣器报警。

原理图:

原理图绘制软件采用AD2013。酒精浓度是由传感器把非电量转换为电量,传感器输出的是0-5伏的电压值且电压值稳定,外部干扰小等。因此,可以直接把传感器输出电压值经过A/D转换器转换得到数据送入单片机进行处理。此外,还需接入液晶显示,键盘设定,报警电路等。

其总体硬件原理图如图所示。

仿真设计

仿真软件采用Protues7.8。

程序设计

程序采用C作为编程语言,使用Keil5作为编程软件;

void main()				//主函数
{
	Init1602();						 //初始化液晶函数
	init();							 //初始化定时器
	init_eeprom();  //开始初始化保存的数据
	while(1)						 //进入循环
	{
		for(m=0;m<50;m++)			//读50次AD值
		sum = adc0832(0)+sum;		//读到的AD值,将读到的数据累加到sum
		temp=sum/50;				//跳出上面的for循环后,将累加的总数除以50得到平均值temp
		if (temp > K_ZERO) 
				temp = temp - K_ZERO;              //首先减去零点漂移,一般是130mV
		else
				temp= 0; 
		sum=0; 						//平均值计算完成后,将总数清零
		if(set==0)					 //set为0,说明现在不是设置状态
		Display_1602(temp,WARNING);	 //显示AD数值和报警值
		if(temp<WARNING&&set==0)	 //AD数值小于报警值
		{
			flag=0;					 //关闭报警
		}
		else if(temp>WARNING&&set==0)//AD值大于报警值
		{
			flag=1;					 //打开报警
		}
		Key();						 //调用按键函数
	}
}

关注公众号-单片机实例设计,发送“酒精”获取资料;

下载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值