【合泰HT32火焰传感器报警】
合泰HT32火焰传感器报警
今天分享的是HT32加火焰传感器和蜂鸣器实现火灾报警测试
Buzzer硬件
1.工作电压:DC 3.3V-5V
2.灵敏度可调(可调电位器)
3.工作温度:-10℃—+50℃
4.设有固定螺铨孔,方便安装
5.探测角度 60 度左右,对火焰光谱特别灵敏
6.输出形式数字开关量输出(0 和 1) 检测到火焰或光源引脚输出1,否则输出0
本例程是使用的是普通的火焰传感器。当检测到火焰的时候,火焰传感器的IO口输出一个高电平,通过检测引脚端口的电平判断是否检测到的火焰,检测到火焰之后,蜂鸣器响。
HT32F52352 + 蜂鸣器 + 火焰传感器
接线:火焰传感器VCC GND 接开发板的VCC GND
DO 接自己使用的开发板引脚 (蜂鸣器同样如此IO接自己配置的引脚)
我使用了四个火焰传感器和一个蜂鸣器 大家根据自己情况来
Buzzer.h
#ifndef _BUZZER_H_
#define _BUZZER_H_#include "ht32f5xxxx_ckcu.h"
#include "ht32f5xxxx_gpio.h"//端口号定义
#define HT_GPIO_Buzzer_PORT HT_GPIOD
//Buzzer引脚定义
#define HT_GPIO_Buzzer_PIN GPIO_PIN_0//Buzzer 宏定义开和关
#define Buzzer_ON() GPIO_WriteOutBits(HT_GPIO_Buzzer_PORT,HT_GPIO_Buzzer_PIN,RESET)
#define Buzzer_OFF() GPIO_WriteOutBits(HT_GPIO_Buzzer_PORT,HT_GPIO_Buzzer_PIN,SET)
void Buzzer_Init(void);
void Buzzer_Running(void);#endif
Buzzer.c
#include "buzzer.h"
#include "delay.h"void Buzzer_Init(void)
{CKCU_PeripClockConfig_TypeDef BuzzerCLOCK ={{0}};BuzzerCLOCK.Bit.PD = 1; //使用PD0 //CKCU_PeripClockConfig(CKCU_PeripClockConfig_TypeDef Clock, ControlStatus Cmd);CKCU_PeripClockConfig(BuzzerCLOCK,ENABLE); //使能时钟//GPIO_DirectionConfig(HT_GPIO_TypeDef* HT_GPIOx, u16 GPIO_PIN_nBITMAP, GPIO_DIR_Enum GPIO_DIR_INorOUT);GPIO_DirectionConfig(HT_GPIO_Buzzer_PORT,HT_GPIO_Buzzer_PIN,GPIO_DIR_OUT); //配置GPIO PC15为输出模式//GPIO_WriteOutBits(HT_GPIO_TypeDef* HT_GPIOx, u16 GPIO_PIN_nBITMAP, FlagStatus Status);GPIO_WriteOutBits(HT_GPIO_Buzzer_PORT,HT_GPIO_Buzzer_PIN,SET); //将LED1 LED2 熄灭
}//蜂鸣器响10次
void Buzzer_Running(void)
{uint8_t i = 0;for(i = 0;i < 10;i++){Buzzer_ON();delay_ms(500);Buzzer_OFF();delay_ms(500);}
}
Fire.h
#ifndef _FIRE_H_
#define _FIRE_H_#include "ht32f5xxxx_ckcu.h"
#include "ht32f5xxxx_gpio.h"//端口号定义
#define HT_GPIO_PORT HT_GPIOC
//火焰引脚定义
#define GPIP_PIN_FIRE1 GPIO_PIN_1#define GPIP_PIN_FIRE2 GPIO_PIN_2#define GPIP_PIN_FIRE3 GPIO_PIN_3#define GPIP_PIN_FIRE4 GPIO_PIN_13#define HT_GPIO_FIRE_PIN (GPIP_PIN_FIRE1|GPIP_PIN_FIRE2|GPIP_PIN_FIRE3 | GPIP_PIN_FIRE4)//引脚读取
#define GPIO_Read_Stat1() GPIO_ReadInBit(HT_GPIO_PORT,GPIP_PIN_FIRE1)
#define GPIO_Read_Stat2() GPIO_ReadInBit(HT_GPIO_PORT,GPIP_PIN_FIRE2)
#define GPIO_Read_Stat3() GPIO_ReadInBit(HT_GPIO_PORT,GPIP_PIN_FIRE3)
#define GPIO_Read_Stat4() GPIO_ReadInBit(HT_GPIO_PORT,GPIP_PIN_FIRE4)
void Init_Fire(void);
#endif
fire.c
#include "fire.h"void Init_Fire(void)
{CKCU_PeripClockConfig_TypeDef FIRELOCK ={{0}};FIRELOCK.Bit.PC = 1; //使用PCCKCU_PeripClockConfig(FIRELOCK,ENABLE); //使能时钟GPIO_DirectionConfig(HT_GPIO_PORT,HT_GPIO_FIRE_PIN,GPIO_DIR_IN); //配置PD1/2/3为输入模式 GPIO_PullResistorConfig(HT_GPIO_PORT,HT_GPIO_FIRE_PIN,GPIO_PR_DOWN); //下拉GPIO_InputConfig(HT_GPIO_PORT,HT_GPIO_FIRE_PIN,ENABLE);
}
main.c
#include "ht32.h"
#include "ht32_board.h"
#include "led.h"
#include "delay.h"
#include "uart.h"
#include "fire.h"
#include "buzzer.h"/**********************TH32 火焰报警**********************
Author:小殷Date:2022-5-1
******************************************************/
uint8_t data = 0;
uint8_t sendbuf[128] = {0};//火焰检测
void Fire_Test(void)
{//火焰传感器1if(GPIO_Read_Stat1() == RESET){//LED1_ON();//printf("has fire\n"); //测试提示Buzzer_Running();//delay_ms(1000);}else{//LED1_OFF();//printf("has no fire\n"); //测试提示//delay_ms(1000);Buzzer_OFF();}//火焰传感器2if(GPIO_Read_Stat2() == RESET){//LED2_ON();//printf("has fire2\n");Buzzer_Running();//delay_ms(500);}else{//LED2_OFF();//printf("has no fire2\n"); //测试提示Buzzer_OFF();//delay_ms(1000);}//火焰传感器3if(GPIO_Read_Stat3() == RESET){//LED2_ON();//printf("has fire3\n"); //测试提示Buzzer_Running();//delay_ms(500);}else{//LED2_OFF();//printf("has no fire3\n"); // 测试提示//delay_ms(1000); Buzzer_OFF();}//火焰传感器4if(GPIO_Read_Stat4() == RESET){//LED2_ON();//printf("has fire4\n"); //测试提示Buzzer_Running();//delay_ms(500);}else{//LED2_OFF();//printf("has no fire4\n"); //测试提示//delay_ms(1000); Buzzer_OFF();}
}int main()
{Led_Init(); //LED初始化USARTx_Init(); //uart初始化Init_Fire();Buzzer_Init(); //Buzzer初始化Usart_SendStr(HT_USART1,(uint8_t *)"------HT32 fire TEST-------\r\n");//循环发送字符串,测试用while(1){Fire_Test();}}
火焰传感器本是检测到火焰后输出高电平,但是我在实验的时候是检测到火焰输出的是低电平,配置的模式也尝试过修改,最后还是这样。望大佬指正
githubg测试链接需要自取
加油耶
【合泰HT32火焰传感器报警】相关推荐
- 火焰传感器+蜂鸣器 实现温度报警
物联网小项目之火焰报警器 通过使用火焰传感器和蜂鸣器的组合,实现温度报警,模拟火焰报警器的作用. 一.火焰传感器的介绍 1. 认识火焰传感器 火焰传感器,由各种燃烧生成物.中间物.高温气体.碳氢物质以 ...
- 火焰传感器与蜂鸣器组成火灾报警
主控制器为树莓派3b,火焰传感器和蜂鸣器为组成模块,通过树莓派读取火焰传感器来控制蜂鸣器. 硬件组成如下: 代码: #include<wiringPi.h> #include<std ...
- 使用火焰传感器和Arduino开发板搭建火灾报警系统
在本篇文章中,我们通过将火焰传感器与Arduino开发板连接起来,一步步学习使用Arduino和火焰传感器搭建火灾报警系统.火焰传感器模块包含一个用于检测光照的光电二极管和一个用于控制灵敏度的运算放大 ...
- 合泰HT32单片机使用PDMA和ADC采集多路模拟值并显示在OLED屏上
合泰单片机HT32F52352使用PDMA+ADC采集多路模拟值并显示在0.96寸OLED屏上. 最近在参加合泰杯的比赛,顺便写点小教程方便大家. 合泰HT32单片机开发环境搭建和配置教程:https ...
- Arduino火焰传感器(红外线接收器)的使用
前言 在智能家居环境监测项目需要使用的传感器元件中,火焰传感器是一个简单易用的传感器,它使用红外线接收管作为基本元件,电位器调整灵敏度,三个管脚或者四根管脚输出: 在使用火焰传感器之前,我们首先需要了 ...
- Arduino Uno 火焰传感器实验
火焰传感器 火焰燃烧的时候会产生一种紫外线,火焰传感器对这非常灵敏,所以能检测出火焰. 实验效果 当打火机点燃的时候,传感器输出的数值变小,越是靠近,数值越小. BOM表 Arduino Uno ...
- 树莓派4B之火焰传感器模块(python3)
背景 本人最因工作原因接触到各种电路板,传感器,而自己又是一个小白,随意在其他朋友的推荐下决定从树莓派开始玩传感器:本例子为树莓派控制红外避障传感器 材料 1.树莓派4b 2.火焰传感器模块 3.导线 ...
- 合泰HT32 淘晶驰TJC--T0串口屏学习笔记
串口屏开发环境搭建 串口屏的优点就不用多说了,用过的老师傅都说好! 开发专用上位机软件下载:传送门主要用来设计屏幕界面的,简单方便. 1.软件安装好后点击新建工程 2.选择你需要存放的目录,输入文件名 ...
- Arduino 使用火焰传感器检测火焰实验
相关资料链接 点这里 1.1 项目介绍: 火焰传感器它可以检测火焰或者波长在760纳米-1100纳米范围内的光源,它的探测角度为60度左右,它对火焰光谱特别灵敏并且灵敏度可调,性能稳定,是救火机器人必 ...
- Arduino笔记实验(初级阶段)—火焰传感器+有源蜂鸣器实验
Arduino笔记实验(初级阶段)-火焰传感器+有源蜂鸣器实验 文章目录 Arduino笔记实验(初级阶段)-火焰传感器+有源蜂鸣器实验 前言 一.电路图 二.火焰传感器(4引脚)-有源蜂鸣器 代码 ...
最新文章
- 第二十五课.元学习MetaLearning
- 利用三层交换机实现VLAN间路由
- 安装Ubuntu18.04遇到的问题
- 百度浏览器支持html5,百度手机浏览器完美驾驭HTML5
- [系统集成] CI持续集成项目简介
- PowerShell远程管理Windows Server(2):公网访问【web形式】
- js基本包装类型和引用类型
- 再度吐槽,PHP在centos7的安装方式稍不注意可能就打击你的积极性
- java 分批同时处理_java中List集合分批处理
- 博弈——巴什博弈(hdu1846,2188,2897)
- 宝塔 php5.6 极速安装_cltphp5.6.6版本安装教程-宝塔练手
- Redis基准测试火焰图 | 附 svg矢量图
- notifier chain — 内核通知链【转】
- oracle iso,Oracle数据库之Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\u...
- 查看电脑ip(cmd) 利用php获取ip地址
- 计算机怎么设置本地硬盘启动,怎么设置移动硬盘启动
- python str center_Python str方法总结
- 小鱼发现玩机械臂的小姐姐越来越多了。。。再说说手眼标定那些事~
- Java(三)对象类型的转换和多态机制
- 微信小程序 wxss之 background 属性
热门文章
- 计算机显示文档在哪打开,我的文档在哪?小编教你找到电脑Windows系统我的文档在哪...
- 泛微OA流程表单提交JS验证
- 通过Fildder下载百度音乐里的收费歌曲
- 刀哥咱俩探讨一下重构的手法
- 分享 百度网盘搜索引擎原理以及实现部分源码
- html5中播放本地音乐播放器,首款HTML5播放器 支持浏览器内播放本地音乐
- 《线性代数及其应用》阅读笔记:第二章 矩阵代数
- 【基于python实现UI自动化】6.selenium实现浏览器相关操作(最大化、自定义宽高、前进、后退)
- C# LeetCode刷题 - LeetCode 148. Sort List 解题报告(归并排序小结)
- 不用找了,大厂在用的分库分表方案,都在这了