代码编号:smokeAlert_1
[code]
bool fireSta; //火情状态:false=有火情;true=无火情
void setup() {
// put your setup code here, to run once:
pinMode(7, OUTPUT); //设置7号管脚为输出模式
pinMode(8, INPUT); //设置8号管脚为输入模式
for(int cnt=0; cnt <15; cnt++){ //重复15次,每次2秒钟
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
delay(1000);
} //预热时间结束
}
void loop() {
// put your main code here, to run repeatedly:
fireSta = digitalRead(8); //将8号管脚的状态读入
if(fireSta == false) { //有烟雾,2秒声音告警
digitalWrite(7, HIGH); //蜂鸣器发声
delay(2000);
}
else{
digitalWrite(7, LOW);
}
}
[/code]
=======================================================================
代码编号:smokeAlert_2
bool fireSta; //火情状态:false=有火情;true=无火情
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); //设置串口波特率
pinMode(7, OUTPUT); //设置7号管脚为输出模式
pinMode(8, INPUT); //设置8号管脚为输入模式
for (int cnt = 0; cnt < 15; cnt++) { //重复15次,每次2秒钟
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
delay(1000);
} //预热时间结束
}
void loop() {
// put your main code here, to run repeatedly:
fireSta = digitalRead(8); //将8号管脚的状态读入
if (fireSta == false) { //有烟雾,2秒声音告警
digitalWrite(7, HIGH);//蜂鸣器发声
delay(2000);
} else {
digitalWrite(7, LOW);
}
//输出实时烟雾传感器值
int vlt; //原始输入电压值
vlt = analogRead(A0);
//计算烟雾浓度值
int dnsty;
dnsty = vlt * (10000 - 300)/1023; //根据线性函数计算
Serial.print("当前烟雾浓度:");
Serial.print(dnsty);
Serial.println("ppm");
delay(1000);
}
=======================================================================
代码编号:smokAlert_GYR
bool fireSta; //火情状态:false=有火情;true=无火情
//传感器AO端口与UNO的A0端口相连
void setup() {
// put your setup code here, to run once:
pinMode(7, OUTPUT); //设置7号管脚为输出模式,连接蜂鸣器
pinMode(6, OUTPUT); //设置6号管脚为输出模式,连接绿灯
pinMode(5, OUTPUT); //设置5号管脚为输出模式,连接黄灯
pinMode(4, OUTPUT); //设置4号管脚为输出模式,连接红灯
pinMode(8, INPUT); //设置8号管脚为输入模式,连接传感器DO端口
for(int cnt = 0; cnt < 15; cnt++ ){//重复15次,每次2秒钟
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
delay(1000);
}//传感器预热
}
void loop() {
// put your main code here, to run repeatedly:
int vlt;//原始输入电压值
vlt = analogRead(A0);
//计算烟雾浓度值
int dnsty;
dnsty=vlt*(10000-300)/1023; //根据线性函数计算
if(dnsty <100) {// 安全状态
digitalWrite(6, HIGH); //绿灯亮起
digitalWrite(5, LOW); //黄灯灭
digitalWrite(4, LOW); //红灯灭
}
else if(dnsty < 300){ //提醒状态
digitalWrite(6, LOW); //绿灯灭
digitalWrite(5, HIGH); //黄灯亮起
digitalWrite(4, LOW); //红灯灭
}
else { //危险状态
digitalWrite(6, LOW); //绿灯灭
digitalWrite(5, LOW); //黄灯灭
digitalWrite(4, HIGH); //红灯亮起
}
delay(1000);
}