1.火焰传感器(4线)

火焰传感器模块主要是利用外敏感型AC4067对红外信号强度的检测并将其转换位机器人可识别的信号,从而检测火焰信号。

图1-1火焰传感器

1、火焰传感器检测的波长在760纳米~1100纳米范围的光源,打火机测试火焰距离为80cm,对火焰越大,测试距离越远。

2、工作电压3.3~5V

3、输出形式:DO数字开关量输出(0和1)和AO模拟电压输出

2.火焰警报器的设计

火焰传感器报警的设计中我使用了LED灯、蜂鸣器和一个火焰传感器,当火焰传感器检测到火焰的时候拉高电平,蜂鸣器响起来并带动LED灯点亮。

LED灯的配置PB2时钟的GPIOB6引脚;      蜂鸣器PB2时钟的GPIOA1引脚;

火焰传感器配置的是PB2时钟的GPIO10引脚

正常给各个硬件配置好初始化,其中的LED灯与蜂鸣器使用的模式为GPIO_Mode_OUT_PP为推挽输出,而火焰传感器的模式则是使用GPIO_Mode_IPU为上拉输入。上拉输入,只要检测到火焰则会接收到信号,而GPIO_Mode_IPD是下拉输入,则是火焰检测后才接收到信号,所以程序该写GPIO_Mode_IPU。

3.程序设计

(1)LED灯程序

LED灯的程序则采用本人上一分文章写的按键开关LED程序即可

https://blog.csdn.net/weixin_62353329/article/details/126001958?spm=1001.2014.3001.5501

(2)蜂鸣器程序

蜂鸣器正常的给程序打开时钟,进行初始化

Buzzer.c

#include "stm32f10x.h"                  // Device headervoid Buzzer_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;  //推挽输出GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  //速率50MHzGPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_1);}
void Buzzer_ON(void)
{GPIO_ResetBits(GPIOA,GPIO_Pin_1);
}
void Buzzer_OFF(void)
{
GPIO_SetBits(GPIOA,GPIO_Pin_1);
}
void Buzzer_Turn(void)
{if (GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==1){GPIO_SetBits(GPIOA,GPIO_Pin_1);}else{GPIO_ResetBits(GPIOA,GPIO_Pin_1);}
}

Buzzer.h

#ifndef __Buzzer_H
#define __Buzzer_Hvoid Buzzer_Init(void);
void Buzzer_ON(void);
void Buzzer_OFF(void);
void Buzzer_Turn(void);#endif

(3)火焰传感器

Flame.c

#include "stm32f10x.h"                  // Device header
void Flame_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU ;  //上拉输入GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB, GPIO_Pin_10);}
uint8_t Flame_Get(void)
{return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10);  //读取输入值}

Flame.h

#ifndef __Flame_H
#define __Flame_H
#include "stm32f10x.h"              void Flame_Init(void);
uint8_t Flame_Get(void);#endif

(4)主程序

主程序中配置好头文件,在main函数中就可以直接调用前面写出来的硬件程序xxx_Init。使用while...if语句,如果传感器得高电平,蜂鸣器响起与LED灯点亮,否则反之,这样火焰警报就配置好了。

main.c

#include "stm32f10x.h"                  // Device header
#include  "Delay.h"
#include  "Buzzer.h"
#include  "Flame.h"
#include  "LED.h"int main(void)
{Buzzer_Init();Flame_Init();LED_Init();while (1){if ( Flame_Get() ==1){Buzzer_OFF();LED2_OFF();}else{Buzzer_ON();LED2_ON();}}
}

4.效果展示

图4-1未检测火焰前效果

图4-2检测到火焰效果后

基于火焰传感器的火焰警报相关推荐

  1. Arduino 使用火焰传感器检测火焰实验

    相关资料链接 点这里 1.1 项目介绍: 火焰传感器它可以检测火焰或者波长在760纳米-1100纳米范围内的光源,它的探测角度为60度左右,它对火焰光谱特别灵敏并且灵敏度可调,性能稳定,是救火机器人必 ...

  2. 使用火焰传感器和Arduino开发板搭建火灾报警系统

    在本篇文章中,我们通过将火焰传感器与Arduino开发板连接起来,一步步学习使用Arduino和火焰传感器搭建火灾报警系统.火焰传感器模块包含一个用于检测光照的光电二极管和一个用于控制灵敏度的运算放大 ...

  3. Arduino火焰传感器(红外线接收器)的使用

    前言 在智能家居环境监测项目需要使用的传感器元件中,火焰传感器是一个简单易用的传感器,它使用红外线接收管作为基本元件,电位器调整灵敏度,三个管脚或者四根管脚输出: 在使用火焰传感器之前,我们首先需要了 ...

  4. 火焰传感器+蜂鸣器 实现温度报警

    物联网小项目之火焰报警器 通过使用火焰传感器和蜂鸣器的组合,实现温度报警,模拟火焰报警器的作用. 一.火焰传感器的介绍 1. 认识火焰传感器 火焰传感器,由各种燃烧生成物.中间物.高温气体.碳氢物质以 ...

  5. 基于视觉的烟雾/火焰检测数据集整理(检测、识别、分割)

    基于传感器的火灾预警系统,比较适用于较小空间. 随着视觉技术的发展,基于视觉的火灾预警系统,更适用于对森林等大范围场景进行 远距离监控1. 当前的烟雾火焰检测系统中,采用机器学习的视觉技术暂未广泛替代 ...

  6. 基于51单片机的火焰报警器

    基于51单片机的火焰报警器 一.模块描述 1.可以检测火焰或者波长在760纳米心1100纳米范围内的光源 2.探测角度60度左右,对火焰光谱特别灵敏3灵敏度可调(图中蓝色数字电位器调节) 3.对火焰的 ...

  7. Arduino笔记实验(初级阶段)—火焰传感器+有源蜂鸣器实验

    Arduino笔记实验(初级阶段)-火焰传感器+有源蜂鸣器实验 文章目录 Arduino笔记实验(初级阶段)-火焰传感器+有源蜂鸣器实验 前言 一.电路图 二.火焰传感器(4引脚)-有源蜂鸣器 代码 ...

  8. 基于深度学习的火焰检测系统(YOLOv5清新界面版,Python代码)

    摘要:火焰检测系统用于检测日常是否出现火情,支持图片.视频.摄像头等多方式检测火焰.实现火灾警报功能,提供了登录注册界面.在介绍系统实现原理的同时,给出部分Python的实现代码以及PyQt的UI界面 ...

  9. Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所构成的室内安全报警模块

    该系统模块主要由Arduino UNO R3开发板+MQ-2烟雾浓度传感器+火焰传感器+舵机+无源蜂鸣器+风扇+步进电机+WIFI模块+RGB三色LED灯+SIM900A所组成,MQ-2烟雾浓度传感器 ...

  10. 【MATLAB项目实战】基于RGB特征的火焰检测

    首先数据转换为帧图像 clc; clear all;obj = VideoReader('1.mp4');%输入视频位置 numFrames = obj.NumberOfFrames;% 帧的总数 f ...

最新文章

  1. WinAPI: GetLocalTime、SetLocalTime、SetSystemTime - 获取与设置系统时间
  2. Spring Boot 2.x基础教程:使用 Thymeleaf开发Web页面
  3. c# 自定义控件使其填充方格且自动变换大小
  4. ML之LoR:kaggle比赛之利用泰坦尼克号数据集建立LoR模型对每个人进行获救是否预测
  5. amp sqlserver中 什么意思_sql server中创建表时各个数据类型时什么意思??
  6. html间隔怎么打_iPhone手机便签内容怎么设为重要事项?
  7. Debug Assertion Failed.Expression:_BLOCK_TYPE_IS_VALID(phead-nBlockUse)
  8. python识别数字程序_Python识别处理照片中的条形码
  9. Opencv的使用教程,opencv比较全的基础教程
  10. 语音社交app源码,更改ProgressBar颜色(圈圈)
  11. grasshopper for rhino 6下载_Grasshopper做分形图案
  12. html5设置图片为页面背景透明度,纯CSS设置图片半透明,DIV半透明,背景半透明的方法...
  13. java实现输入数字 输出金额_JAVA实现数字大写金额转换的方法
  14. 《演说之禅》读书笔记
  15. 杭电多校联赛2017年总结
  16. keras进行时间序列预测
  17. 菜鸟最爱,60行代码打造一款音乐播放器!
  18. img取消无图片时的默认边框
  19. 图像视觉保真度(VIF)评估-MATLAB代码与matlab-PyrTools-master工具包
  20. Nginx学习心得总结第一章

热门文章

  1. IMO 2017 T4解答
  2. cortex M3/4 内部总线
  3. python安装目录插件
  4. ES监视器Watcher详解
  5. 共享文件夹——Window与linux
  6. 手动生成linux中Qt的moc文件,手动生成Qt的moc文件的方法
  7. 6.MySQL列Cardinality(基数)
  8. 《tkinter实用教程二》tkinter的子模块ttk
  9. html字体倾斜45度,CSS3+JS 很酷的45度角斜射式照片墙效果
  10. 10个提供Logo设计灵感的创意网站