传感器的使用(一)-火焰传感器

火焰传感器的介绍

传感器的使用(一)-火焰传感器_第1张图片

1.工作电压:DC 3.3V-5V
2.灵敏度可调(可调电位器)
3.工作温度:-10℃—+50℃
4.设有固定螺铨孔,方便安装
5.探测角度 60 度左右,对火焰光谱特别灵敏
6.输出形式数字开关量输出(0 和 1) 检测到火焰或光源引脚输出1,否则输出0
本例程是使用的是普通的火焰传感器。当检测到火焰的时候,火焰传感器的IO口输出一个高电平,通过检测PF5口的电平判断是否检测到的火焰,检测到火焰之后,PF9亮,蜂鸣器响。

硬件介绍

探索者STM32F407+蜂鸣器+LED蜂鸣器。VCC和GND分别接在开发板的电源和地上。传感器的输出口D0接到PF5。这里配置蜂鸣器为PF8,LED灯为PF9。

软件代码

#include "led.h" 
//	 
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK STM32F407开发板
//LED驱动代码	   
//正点原子@ALIENTEK

//初始化PF9和PF10为输出口.并使能这两个口的时钟		    
//LED IO初始化
void LED_Init(void)
{
         	 
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟

  //GPIOF9,F10初始化设置
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;//LED0和LED1对应IO口
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIO
	
	GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);//GPIOF9,F10设置高,灯灭

}


void FIRE_Init(void)
{
         	 
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟
  //GPIOF9,F10初始化设置
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//LED0和LED1对应IO口
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//输入模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  GPIO_Init(GPIOF, &GPIO_InitStructure);
  GPIO_SetBits(GPIOF,GPIO_Pin_5);
}

void BEEP_Init(void)
{
        
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟
  //初始化蜂鸣器对应引脚GPIOF8
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉
  GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIO
  GPIO_ResetBits(GPIOF,GPIO_Pin_8);  //蜂鸣器对应引脚GPIOF8拉低, 
}

初始化代码

在main函数中添加代码如下所示。

int main(void)
{
      
	LED_Init();		        //初始化LED端口
	FIRE_Init();					//初始化火焰传感器端口
	BEEP_Init();					//初始化蜂鸣器端口
  /**下面是通过直接操作库函数的方式实现IO控制**/	
	
	while(1)
	{
     

		if(GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_5)==1)
		{
     
			GPIO_ResetBits(GPIOF,GPIO_Pin_8);
			GPIO_SetBits(GPIOF,GPIO_Pin_9);
		}
		else
		{
     
			GPIO_SetBits(GPIOF,GPIO_Pin_8);
			GPIO_ResetBits(GPIOF,GPIO_Pin_9);
		}
		
	}
}

测试现象

现象如图所示,打火机打开时候,LED等亮,蜂鸣器响。
传感器的使用(一)-火焰传感器_第2张图片
没有检测到火焰的时候,传感器的灯不亮,并且PF9的LED灯不亮。
传感器的使用(一)-火焰传感器_第3张图片

你可能感兴趣的:(STM32,传感器,传感器,单片机,stm32)