Arduino и датчик открытого огня (flame sensor)

buzzer_flame_sensor

Датчик пламени огня фиксировать наличие пламени или другого источника световых волн длиной 760 – 1100 нм в прямой видимости перед собой.
Номинальное напряжение питания датчика составляет 5 В. Устройство способно определить наличие огня в углу чувствительности 60 °. Результат представляется в качестве аналогового сигнала: 4,8 В на расстоянии 20 см – 1 В на расстоянии 100 см. Не рекомендуется подносить пламя слишком близко к измерителю, ведь это может вывести его из строя. Рабочая температура измерителя огня составляет от -25 до +85 градусов Цельсия.
Как и в случае с датчиками газа, на моем датчике присутствуют 4 контакта (цифровой вывод, аналоговый вывод, питание и земля), ваш датчик может иметь 3 контакта (питание, земля, аналоговый вывод). Свой я подключил аналоговым выводом на аналоговому входу А0 Arduino. Землю к земле и питание соответственно к питанию Arduino (5 В). В качестве сигнализатора я использовал зуммер (buzzer) подключен к 10 цифровому контакту Arduino.

Считываем данные простеньким скетчем:

const int sensorPin= 0; 
const int pinSpeaker= 10; 
int smoke_level; 

void setup() 

{ 
Serial.begin(115200); //sets the baud rate for data transfer in bits/second 

pinMode(sensorPin, INPUT);//the smoke sensor will be an input to the arduino 

pinMode(pinSpeaker, OUTPUT);//the buzzer serves an output in the circuit 

} 

void loop() 

{ 

smoke_level= analogRead(sensorPin); //arduino reads the value from the smoke sensor 

Serial.println(smoke_level);//prints just for debugging purposes, to see what values the sensor is 
picking up 

if(smoke_level < 500)

{ //if smoke level is greater than 500, the buzzer will go off 

playTone(300, 160); delay(150); 

} 

} 

void playTone(long duration, int freq) 

{ 

duration *= 1000; 

int period = (1.0 / freq) * 1000000; 

long elapsed_time = 0; 

while (elapsed_time < duration) 

{ 

digitalWrite(pinSpeaker,HIGH); 

delayMicroseconds(period / 2); 

digitalWrite(pinSpeaker, LOW); 

delayMicroseconds(period / 2); 

elapsed_time += (period); 

} 

}

Оставьте комментарий

Your email address will not be published. Required fields are marked *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.