学物联网,来万物简单IoT物联网!!
一、产品简介
火焰传感器对火焰最敏感,对普通光也是有反应的,一般用做火焰报警等用途。小板输出接口可以与单片机IO口直接相连,传感器与火焰要保持一定距离 ,以免高温损坏传感器,对打火机测试火焰距离为80cm,对火焰越大,测试距离越远,小板模拟量输出方式和AD转换处理,可以获得更高的精度。
二、技术参数
- 可以检测火焰或者波长在760纳米~1100纳米范围内的光源,打火机测试火焰距离为80cm,对火焰越大,测试距离越远。
- 探测角度60度左右,对火焰光谱特别灵敏。
- 灵敏度可调
- 比较器输出,信号干净,波形好,驱动能力强,超过15mA。
- 工作电压:3.3V~5V
- 输出形式:DO数字开关量输出(0和1)和AO模拟电压输出。
三、软件接口(ADC)
Fire(adcObj) - 创建Fire驱动对象
- 函数原型
fireObj = Fire(adcObj)
- 参数说明
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
adcObj | ADC | 是 | 输入ADC对象 |
- 返回值
Fire对象成功,返回Fire对象;Fire对象创建失败,抛出Exception
- 示例代码
from machine import ADC,Pin
import fire
adcObj = ADC(Pin(32))
fireDev = fire.FIRE(adcObj)
print("Testing fire ...")
- 输出
Testing fire ...
getVoltage() - 获取Fire电压值
- 函数功能:
获取火焰传感器电压值
- 函数原型:
Fire.getVoltage()
- 参数说明:
无
- 返回值:
成功返回火焰传感器电压值(数据类型:整型;单位:mv);失败抛出Exception
- 示例:
from machine import ADC,Pin
import fire
adcObj = ADC(Pin(32))
fireDev = fire.FIRE(adcObj)
print("Testing fire ...")
value = fireDev.getVoltage()
print("The fire status value ",value)
- 输出
Testing fire ...
The fire status value 218
四、接口案例
- 案例代码
from machine import ADC,Pin
import fire
import utime
adcObj = ADC(Pin(32))
fireDev = fire.FIRE(adcObj)
print("Testing fire ...")
while True:
utime.sleep(1)
value = fireDev.getVoltage()
print("The fire status value ",value)
- 输出
Testing fire ...
The fire status value 218
The fire status value 240
五、工作原理
远红外火焰传感器能够探测到波长在700纳米~1000纳米范围内的红外光,探测角度为60,其中红外光波长在880纳米附近时,其灵敏度达到最大。远红外火焰探头将外界红外光的强弱变化转化为电流的变化,通过A/D转换器反映为0~255范围内数值的变化。外界红外光越强,数值越小;红外光越弱,数值越大。
具体原理图分析如下: 首先我们介绍下电路中LM393比较器的逻辑:
(1)当以负极为参考电压时,其正极端的输入电压大于负极参考电压,则输出高电平,反之输出低电平。
(2)当以正极为参考电压时,其负极端的输入电压小于正极参考电压,则输出高电平,反之输出低电平。
在此原理图中,LM393是以负极为参考电压,而且负极的参考电压是通过一个电位器设置的,假设Vcc为5V,电位器在中间,则V-参考电压2.5V。在无红外光(例如:打火机)接近时,红外接收管关闭,呈现高阻状态,V+为5V,因为V+大于V-,所以此时Vout输出是高电平,开关指示灯不亮。当红外光逐渐靠近时,接收管打开,分得的电压逐渐变小,当V+输入电压小于2.5V,则比较器输出低电平,开关指示灯点亮。
参考文献
[1] 火焰传感器购买链接