科技制作 基于430单片机的烟雾探测器程序示例
这个程序使用了IO口中断和AD采集中断,具有采集烟雾浓度,超过浓度阈值报警等功能;
程序预览
下面是程序示例:
/**********************************************************
作者:狐狸哟X
时间:2018.11.23
功能:基于430单片机的MQ-2烟雾探测器模块应用
***********************************************************/
#include "msp430g2553.h"
#include <intrinsics.h> //延时函数包含的头文件
#define CPU_F ((double)8000000) //配合下面的两条延时函数
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define uchar unsigned char
#define uint unsigned int
static uint Smoke_Deep=0; //烟雾浓度初始值为0
static uint Red_Alert=0; //设定默认允许启动蜂鸣器
/******************************************************************************
名 称:main
功 能:主函数
输入值:无
输出值:无
返回值:无
******************************************************************************/
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; //关闭看门狗定时器
if (CALBC1_8MHZ==0xFF)
{
while(1);
}
DCOCTL = 0;
BCSCTL1 = CALBC1_8MHZ;
DCOCTL = CALDCO_8MHZ; //配置DCO产生8MHz的频率
P1DIR&=~BIT6; //P1.6为输入模式
P1IES&=~BIT6; //P1.6为上升沿中断
P1IE|=BIT6; //P1.6中断使能
P1IFG=0; //清中断标志位
ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; //打开10位ADC,允许中断
ADC10CTL1 = INCH_0; // 选择 A0为输入通道
ADC10AE0 |= BIT0; // 选择P1.0口作为采集口
ADC10CTL0 |= ENC + ADC10SC; // 打开AD采样和转换开关
_EINT(); //打开总中断
LPM3; //进入低功耗模式3
}
/******************************************************************************
名 称:ADC10_ISR
功 能:AD采集中断函数
输入值:无
输出值:无
返回值:无
******************************************************************************/
#pragma vector=ADC10_VECTOR //AD采集中断
__interrupt void ADC10_ISR(void)
{
uchar i;
Smoke_Deep=ADC10MEM; //获得烟雾浓度
/********在这里添加驱动显示屏的程序,显示烟雾浓度,可以不加*******/
if(!Red_Alert) //判断是否允许发出警报
{
if(Smoke_Deep>想要的预定值) //如果烟雾浓度大于预定值
{
P1DIR|=BIT5; //P1.5为输出模式
for(i=0;i<20;i++)
{
P1OUT|=BIT5; //驱动蜂鸣器
delay_ms(300); //延时300毫秒
P1OUT&=~BIT5; //暂停蜂鸣器
delay_ms(200); //延时200毫秒
}
}
}
delay_ms(500); //延时0.5秒
ADC10CTL0 |= ENC + ADC10SC; // 再次打开AD采样和转换开关
}
/******************************************************************************
名 称:Key_interrput
功 能:IO口中断函数
输入值:无
输出值:无
返回值:无
******************************************************************************/
#pragma vector = PORT1_VECTOR //IO口中断
__interrupt void Key_interrput(void)
{
if(P1IFG&BIT6) //确认中断源来源是P1.6
{
delay_ms(2); //延时2毫秒,消抖
if(P1IFG&BIT6) //确认中断源来源是P1.6
{
P1IFG=0; //清中断标志位
Red_Alert=~Red_Alert;//取反
}
}
}
说明:P1.5口用于驱动蜂鸣器,P1.6口用于控制蜂鸣器工作的使能,P1.0口为模拟信号采集通道。
使用软件:IAR 7.11.2
IAR软件预览
烟雾传感器的电路部分设计在扩展链接中。
烟雾传感器模块
电子制作 利用430单片机设计烟雾探测器
1. 设计目标
利用430单片机制作一个能够检测烟雾浓度的探测器。
2. 实现功能
●显示烟雾的浓度;
●当烟雾的浓度达到报警浓度时自动报警;
●可以外部按键控制关闭报警。
3. 设计思路
烟雾浓度探测器能够检测环境中的烟雾浓度,当烟雾浓度达到一定时进行报警。电路的基本组成部分包括电源电路、气体传感器电路、电压转换电路、单片机工作电路、按键电路、显示屏电路、报警电路。
传感器电路检测空气中的烟雾浓度,将浓度信息转化为模拟电压信号,由单片机接收后,转化为数字信号,并进行计算分析,得出烟雾浓度数据。可以设定一个浓度值,当单片机检测到的烟雾浓度大于预定值时,单片机将会驱动报警电路;液晶显示屏实时显示出当前的浓度信息。
4. 系统组成
主要分为以下几个部分:
●电源电路:提供5V的电压,并由稳压芯片转换3.3V供单片机使用;
●传感器模块:采集烟雾浓度信号,提供模拟电压输出;
●单片机电路:处理信号,驱动显示屏和蜂鸣器;
●显示屏电路:显示浓度信息;
●按键电路:控制报警的关闭;
●报警电路:当烟雾浓度大于预定值时进行报警。
整个系统方案的模块框图如下图1所示:
图1 系统模块框图
5. 模块应用
5.1 MSP430G2553单片机
MSP430G2553单片机是一款超低功耗,价格便宜的器件,拥有16K的FLASH存储器,自带多个AD采集通道,可以直接接收处理模拟电压信号。
这种单片机内部已经集成有晶体振荡器,所有不需要额外接晶振和驱动电路。如下图2所示。
图2 MSP430G2553单片机
5.2 传感器模块
MQ-2气体传感器所使用的气敏材料是在清洁空气中导电率较低的二氧化锡。当传感器所处的环境中存在烟雾或可燃气体时,传感器的电导率随空气中的待检测浓度的增大而增大。使用简单的电路即可将电导率的变化转化为与该气体浓度相对应的输出信号。MQ-2气体传感器对液化气、氢气的灵敏度高,对天然气和其他可燃蒸汽都有理想的检测效果。图3为气体传感器模块的实物图:
图3 MQ-2气体传感器模块实物图
它的加热电压为5V,模拟电压输出为0~5V,浓度越高输出电压也会越高;同时这个模块还拥有一个TTL输出,通过可调电阻器控制,当输出电压达到一定阈值时,通过电压比较器会使TTL输出产生高低电平的变化。
如图4所示,即MQ-2烟雾检测模块的电路图:
图4 MQ-2气体传感器模块电路原理图
5.3 电源模块
使用5V直流稳压电源,同时添加稳压芯片将5V的电压转换为3.3V供430单片机使用。电源模块电路图5如下所示:
图5 电源模块电路图
5.4 报警模块
由一个蜂鸣器组成,当单片机的IO口输出脉冲信号时,蜂鸣器受控制发出报警声。蜂鸣器报警电路如下图6所示:
图6 报警模块电路图
5.5 按键模块
由一个按键开关组成,当开关按下时,单片机收到信号,控制程序作出反应。按键模块的电路图如下图7所示。
图7 按键开关电路图
5.6 显示屏模块
LCD12864带中文字库图像点阵式液晶显示器,可配合其他单片机完成中文汉字、英文字符和图像显示,可构成中文人机交互图形界面,模块具有功耗低、显示内容丰富等特点而应用广泛。它是利用液晶经过处理后改变光线的传播方向,以电流刺激液晶分子产生点、线、面并配合背光灯构成画面。其分辨率为128*64,内置2M位中文字型ROM,含8192个汉字,以及16K位半宽字型ROM,可显示8*4行16*16点阵的汉字。显示屏模块的电路如下图8所示:
图8 LCD12864显示屏电路
6. 原理图设计
总的电路原理图如下图9所示:
图9 基于MSP430单片机的烟雾探测器
7. 器件物料
根据总电路图,汇总的电子器件消耗如下图10所示:
图10 使用的电子元器件
8. 程序设计
程序需要解决的问题是检测传感器的信号,对信号进行AD转换,驱动显示屏工作,控制蜂鸣器进行报警等。程序流程图如下图11所示。
图11 程序流程图
相关问答
如何查论文被引频次寄出后,4个月未接到...对拟刊用的稿件,发给作者用稿通知书,对不拟刊用的稿件,不再通知作者。所以稿件自寄出后,4个月未接到用稿通知书者,可对稿件...
mq2 单片机 程序怎么写?MQ2是烟雾浓度传感器,将其模拟输出AO接入到一个AD转换器(比如ADC0832)上,再读取转换结果就可以了。程序的编写就是读取ADC的值。单片机(Single-ChipMicroco...
玩树莓派能学到什么?...我们首先打开终端,输入如下指令$gpioreadall可以得到树莓派的IO口定义,基本的SPI,串口,CAN,I2C通信都是应有尽有。我们可以借此和很多外设,传感器连接做...
八位拨动开关的作用是什么?-设计本有问必答拨动开关采用集成电路技术和SMT外表装置工艺而制造的新一代光电开关器件,具有延时、展宽、外同步、抗相互干扰、可靠性高、工作区域稳定和自诊断等...
组合排架报警器原理?原理如下:1、红外发射机驱动红外发光二极管发射出一吵调制的红外光束。与之放置一个红外接收机。它通过光敏晶体管接收发射商发现的红外辐射能量,并经过光电...
智能家居包括哪些东西? - 小红薯3697D633 的回答 - 懂得首先我们来了解智能家居是什么概念,欧派克这样理解:对智能家居产品来说,最重要的是以实用为核心,摒弃掉那些华而不实,只能充作摆设的功能,产品以实...
电子元件分类一共有多少种,各有什么特点?(7)压电器件与霍尔器件概述;石英晶振(石英晶体谐振器)利用石英晶体的压电效应特点而制成的,它属于一种电谐振元器件,在各类通信设备、电脑CPU、单片机与...因此...
臭氧O3污染对人体的危害是什么?如何检测臭氧浓度?[回答]一、臭氧是臭名昭著的“光化学烟雾”的主要成分夏季在强烈的太阳紫外线作用下,氮氧化物和碳氢化合物发生光化学反应,生成臭氧、醛类、过氧化乙酰xia...
求助油烟机触摸按键开关的工作原理模式控制采用带记忆功能的单片机,可根据用户习惯记忆常用模式;手电结构上的防反...1)、吸油烟机排出的气体不该排到用于排出燃烧煤气或别的的烟雾运用的烟道内。...
因装修要选购防火板,请问玻镁板、水泥纤维板和石膏板在各性能...广东家装公司重要的还是要看服务和工程质量,可以多处问问然后系统的比较下,还有要分析自己家里面得一些情况这个我知道鉴,我现在用的吴鉴51单片机学习板就是这...