В данном материале будет рассмотрен проект самодельного детектора пламени на основе Arduino и датчика KY-026. Это довольно многофункциональное устройство, которое может применяться в различных областях.
Например, вы можете использовать его, чтобы предупредить вас о том, что тормоза вашего гоночного автомобиля становятся горячими. Он также может использоваться во многих вещах, таких как цепи отключения топливопровода, линий подачи пропана или природного газа, и а также в устройствах активации системы пожаротушения. Он также может уведомить вас о пламени в некоторых промышленных приложениях.
Схема подключения компонентов детектора огня на основе Arduino представлена далее.
Код программы следующий.
int Relay = 7;
int Buzzer = 5;
int RedLed = 6 ;
int GreenLed = 8 ;
int Digitalpin = 3;
int Analoogpin = A3;
int val ;
float sensor;
int tones[] = {261, 277, 293, 311, 329, 349, 369, 392, 415, 440, 466, 493, 523 ,554};
void setup ()
{
Serial.begin(9600);
pinMode (Relay, OUTPUT) ;
digitalWrite(Relay, LOW);
pinMode (Buzzer, OUTPUT) ;
digitalWrite(Buzzer, LOW);
pinMode (RedLed, OUTPUT) ;
pinMode (GreenLed, OUTPUT) ;
pinMode (Digitalpin, INPUT) ;
pinMode (Analoogpin, INPUT) ;
//+++++++++++++++++++++++++++++++++++++++++++
for (int i = 0; i < Buzzer; i++) {
}
}
void loop ()
{
sensor = analogRead(Analoogpin);
Serial.println(sensor);
val = digitalRead (Digitalpin) ;
if (val == HIGH)
{
digitalWrite (RedLed, HIGH);
digitalWrite(Buzzer, HIGH);
tone(Buzzer, tones[6]);
delay (100);
digitalWrite (RedLed, LOW);
digitalWrite(Buzzer, LOW);
noTone(Buzzer);
delay (100);
digitalWrite (RedLed, HIGH);
digitalWrite(Buzzer, HIGH);
tone(Buzzer, tones[1]);
delay (100);
digitalWrite (RedLed, LOW);
digitalWrite(Buzzer, LOW);
noTone(Buzzer);
delay (100);
digitalWrite(Relay, HIGH);
// digitalWrite(Relay, HIGH);
delay (100);
digitalWrite (RedLed, HIGH);
digitalWrite (GreenLed, LOW);
digitalWrite(Buzzer, HIGH);
tone(Buzzer, tones[3]);
delay (100);
}
else
{
digitalWrite (GreenLed, HIGH);
digitalWrite (RedLed, HIGH);
delay(10);
digitalWrite (RedLed, LOW);
digitalWrite(Buzzer, HIGH);
noTone(Buzzer);
// digitalWrite(Relay, HIGH);
}
delay(1000);
}
© digitrode.ru