烟雾传感器是个很灵敏的东西!
厨房使用的是MQ-2烟雾传感器模块
简要说明:
一、 尺寸:32mm X22mm X27mm 长X宽X高
二、 主要芯片:LM393、ZYMQ-2气体传感器
三、 工作电压:直流5伏
四、 特点:
1、具有信号输出指示。
2、双路信号输出(模拟量输出及TTL电平输出)
3、TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机)
4、模拟量输出0~5V电压,浓度越高电压越高。
5、对液化气,天然气,城市煤气有较好的灵敏度。
6、具有长期的使用寿命和可靠的稳定性
7、快速的响应恢复特性
五、应用:
适用于家庭或工厂的气体泄漏监测装置,适宜于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等监测装置。
原理图:
其实他的道理很简单,厨房采用的是模拟输出,所以要用到G2553的ADC采样功能!
只要将得到的AD值和预先设定的值进行比较就可以对浓度的变化进行报警!
程序如下:
1、初始化AD
void SetupMQ_2_AD(void)
{
//Setup MQ_2
MQ_PORT_SEL |= MQ_PIN; //Enable A/D channel inputs
MQ_PORT_SEL2 |= MQ_PIN;
MQ_PORT_DIR &= ~MQ_PIN;
// Allow the accelerometer to settle before sampling any data
__delay_cycles(200000);
ADC10CTL1 = CONSEQ_2 + INCH_0; // Repeat single channel, A0
ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE; // ADC10ON, interrupt enable
ADC10DTC1 = 0x20; // 32 conversions
ADC10AE0 |= 0x01; // P1.0 ADC option voidselect
}
其中:
#define MQ_PORT_DIR P1DIR
#define MQ_PORT_OUT P1OUT
#define MQ_PORT_SEL P1SEL
#define MQ_PORT_SEL2 P1SEL2
#define MQ_PIN BIT0
2、AD采样:
void TakeADCMeas(void)
{
ADC10CTL0 &= ~ENC;
while (ADC10CTL1 & BUSY);
ADC10SA = 0x200; // Data buffer start
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
__bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit
}
3、AD中断服务子函数:
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
MQ_result=ADC10MEM;
__bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR)
}
得到的结果放在了MQ_result中!
预热的时间并不需要很长的!
平时:
用固态松香烟熏一下: