基于STM32单片机的酒精浓度检测系统设计

控制/MCU

1815人已加入

描述

一、功能简介

本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602显示模块、按键模块、LED和蜂鸣器、MQ-3酒精传感器模块等。

主要功能:

系统运行后,LCD1602显示酒精浓度值和阈值,可通过按键K1和K2调节阈值,当检测浓度高于阈值,蜂鸣器报警。

主要功能如下:

(1)酒精浓度实时检测;

(2)LCD显示浓度值和阈值;

(3)阈值设置、超限声光报警;

(4)支持按键连按。

二、软件设计

//系统初始界面显示

void sys_open_show(void)

{

lcd1602_clear();

lcd1602_show_string(0,0,"AL: mg/mL");

lcd1602_show_string(0,1,"TH: mg/mL");

}

//系统参数采集

void sys_parm_get(void)

{

while(1)

{

//读取传感器 AD值

sys_ctrl.ad_val=pcf8591_read_adcvalue(0);

break;

}

}

//系统参数显示

void sys_parm_show(void)

{

while(1)

{

//传感器检测浓度值显示

lcd1602_show_nums(3,0,sys_ctrl.ad_val,3,0);

//阈值显示

lcd1602_show_nums(3,1,sys_ctrl.ad_valh,3,0);

break;

}

}

//系统参数设定

void sys_parm_set(void)

{

u8 key=0;

key=KEY_Scan(1);

//阈值加

if(key==KEY1_PRESS)

{

sys_ctrl.ad_valh++;

if(sys_ctrl.ad_valh>255)sys_ctrl.ad_valh=0;

}

//阈值减

else if(key==KEY2_PRESS)

{

sys_ctrl.ad_valh--;

if(sys_ctrl.ad_valh<0)sys_ctrl.ad_valh=100;

}

}

//系统参数控制

void sys_parm_ctrl(void)

{

//如果检测浓度高于阈值,报警打开

if(sys_ctrl.ad_val>sys_ctrl.ad_valh)

{

beep_alarm(1,10000);

}

}

//应用控制系统

void appdemo_show(void)

{

sys_parm_init();//系统参数初始化

LED_Init();

KEY_Init();

BEEP_Init();

pcf8591_init();

lcd1602_init();//LCD1602初始化

sys_open_show();//系统初始界面显示

while(1)

{

sys_parm_get();

sys_parm_show();

sys_parm_set();

sys_parm_ctrl();

}

}

三、演示现象

LCD1602

LCD1602

LCD1602

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分