一·实验效果
二·所需材料
三·接线图
四·实验所需代码
一·实验效果
·蜂鸣器 发出警报。
·红灯 亮。
·串口监视器打印“检测到火灾”

二·所需材料
·Arduino Uno 开发板 x 1
·Arduino Uno 开发板 x 1
·火焰传感器模块 x 1
·无源蜂鸣器 x 1
·LED发光二极管 x 1
·220Ω 电阻 x 1 (用于LED限流)
·杜邦线 若干
三·接线图
四·实验所需代码
/*
* 火焰传感器检测程序
* 功能:检测火焰并输出数值,当检测到火焰时触发声光警报
*/
// --- 宏定义与常量 ---
#define NOTE_ALARM 1047 // 警报音频率
#define FLAME_VALUE 0 // 0表示检测到火灾(低电平触发)
// 定义引脚
const int FlameSensorPin = 13; // 火焰传感器连接引脚13
const int buzzerPin = 3; // 蜂鸣器模块连接引脚3
const int LED_PIN = 8; // 警报LED连接引脚8
// 变量
int sensorValue = 1; // 存储传感器读取结果
// --- 函数声明 ---
void playNote(int frequency, int duration);
void FlameAlarm();
void NoAlarm();
void LED(int pin, int state);
void setup() {
// 1. 初始化串口通信
Serial.begin(9600);
// 2. 配置引脚模式
pinMode(FlameSensorPin, INPUT); // 传感器为输入
pinMode(buzzerPin, OUTPUT); // 蜂鸣器为输出
pinMode(LED_PIN, OUTPUT); // LED为输出
// 3. 初始化状态
digitalWrite(buzzerPin, HIGH); // 初始关闭蜂鸣器(视模块而定,有的为LOW关闭)
LED(LED_PIN, LOW); // 初始关闭LED
Serial.println("火焰传感器初始化完成!");
Serial.println("---------------------");
}
void loop() {
// 1. 读取传感器值
sensorValue = digitalRead(FlameSensorPin);
// 2. 判断是否检测到火焰
// 注意:大多数火焰传感器检测到火时输出低电平(0)
if(sensorValue == FLAME_VALUE)
{
FlameAlarm(); // 触发报警声音
LED(LED_PIN, HIGH); // 点亮LED
}
else
{
NoAlarm(); // 停止报警
LED(LED_PIN, LOW); // 熄灭LED
}
// 3. 延时 (注意:这里延时太长会影响反应速度,后文会优化)
delay(500);
}
// --- 自定义函数实现 ---
// 封装的LED控制函数
void LED(int pin, int state) {
digitalWrite(pin, state);
}
// 没有检测到火灾时的状态
void NoAlarm() {
// 对于某些有源蜂鸣器或特定模块,HIGH可能是关闭,noTone是更通用的关闭方法
digitalWrite(buzzerPin, HIGH);
// noTone(buzzerPin); // 建议使用noTone确保无源蜂鸣器静音
Serial.println("安全:没有检测到火灾");
}
// 检测到火灾时的报警动作
void FlameAlarm() {
Serial.println("警报!!!检测到火灾");
// 播放急促的警报音
playNote(NOTE_ALARM, 300);
delay(50); // 声音间隔
playNote(NOTE_ALARM, 300);
noTone(buzzerPin); // 播放完停止
}
// 基础工具函数:播放指定音符
void playNote(int frequency, int duration) {
tone(buzzerPin, frequency);
delay(duration);
}
代码概括
这是一个基于Arduino的火焰报警器程序,主要功能如下:
核心功能
· 通过数字火焰传感器检测火焰(低电平触发)
· 检测到火焰时触发声光报警(蜂鸣器鸣响 + LED点亮)
· 安全状态下关闭所有警报
· 通过串口监视器输出状态信息
硬件连接
· 火焰传感器 → 引脚13
· 蜂鸣器 → 引脚3
· LED指示灯 → 引脚8
工作流程
1. 初始化:设置引脚模式,关闭所有输出
2. 主循环:
· 读取火焰传感器状态
· 检测到火焰(值为0)→ 触发警报
· 未检测到火焰 → 关闭警报
· 每次循环延迟500ms
警报模式
· 声音警报:蜂鸣器发出1047Hz的双短音
· 视觉警报:LED持续点亮
· 串口输出:显示"警报!!!检测到火灾"
这是一个基础的火焰检测报警系统,适用于简单的安全监控场景。
1万+

被折叠的 条评论
为什么被折叠?



