Arduino UV (Ultraviyole) sensör ile alev tesbit ve takibi Arduino UV (Ultraviolet) sensor with flame detection and tracking

Arduino devreleri ve uygulamaları

Arduino UV (Ultraviyole) sensör ile alev tesbit ve takibi

Kullandığımız sensör UV ultraviyole dalga boyunda açık alev den yayılan ışınıma duyarlıdır,bu dalga boyunda ki hassas sensörler savaş uçakları ve hava savunma mühimmatlarında da kullanılır ki bu sayede hava aracının egsozundan yayılan sıcaklık ve alevi takip ederek hedeflerine ulaşırlar.

Bu uygulamada Alev sensörü ile 360 dereceyi tarayacağız.Sensörümüz alevi gördüğünde duracak ve alev kaynağı hareketli ise onu takip edecek.

Uygulama daha hassas bir alev sensörü ile yapıldığında alevin konumu motor miline takılacak bir pozisyoner dekoder ile yada step motor kullanıyorsak palsler sayılarak başka işlemler için bir işlemciye girdi sağlanabilir. Örneğin bir kumaş deposu veya yanıcı patlayıcı yangın riskinin yüksek olduğu ortamlarda bu uygulama muhtemel bir yangına sebep olabilecek alevin yerini tesbit edebilir ve su tabancalarına konum bilgisi gönderilebilir.böylece yangına sebep olacak bir alev, henüz büyüyemeden algılanarak anında o noktaya yönlendirilecek tazyikli su ile söndürülebilir.

Uygulamanın çalışma mantığı,yangın güvenliği ile ilgili çok işe yarayacak projeler için yol gösterici iyi bir fikir olabilir.

Akla ilk gelen soru tek bir sensör ile takip ve konum tesbit işlemi nasıl olabiliyor ?

Devrenin çalışma prensibi

Alevi algılamakta kullandığımız sensör,sensör kartı üzerinde bulunan siyah led kılıfında ki UV ışığa duyarlı alıcı vasıtasıyla bize açık alev olduğu bilgisini verir

Sensör kartı üzerinde bulunan mavi renkli trimpot ile sensörün hassasiyet ayarı yapılır,sensör alev algılamazken çıkışı “1” +5V tur ve alev algılandığında çıkışı “0” GND olur.

Ayrıca sensör kartı üzerinde iki adet yeşil smd led bulunur, bu ledler den biri power gösterge ledi,diğeri ise cisim algılandığında ışık vererek kullanıcıyı görsel olarak bilgilendirir.

Videoda ki devrede UV sensör çift yüzlü bantla step motorun rotoruna monte edilmiştir ve algılama mesafesinde ki alevi yatay istikamette takip eder,alev yokken sensör saat yönünün tersi istikamette algılama mesafesinde bir alev görene kadar tıpkı bir radar gibi sürekli döner,algılama mesafesinde alev olduğunda ise alev istikametinde durarak alevin hareketlerini takip eder.

Videoda da görüldüğü gibi sensör aleve hafif açılı durmaktadır bunun sebebi sensörün algılama açısının geniş olmasıdır.

Kod da if/else komutlarından yararlanılmıştır, bilindiği gibi kodlamada “if” bir durum belli bir şarta bağlanacaksa kullanılır ve if den sonra yazılan komutlar yerine getirilir.Şartın sağlanmaması durumda ise “else” den sonra yazılan komutlar gerçekleştirilir.Bu uygulamada motorun sağa dönmesi sensörün alev algılamasına,sola dönmesi ise alev algılamamasına bağlanmıştır.

Sensör alev algılamadığı sürece sürekli sola doğru döner ve alev algıladığı anda sağa dönmeye başlar ve sağa dönerken sensör alev sınırından çıkar ve alevi yok gördüğü için tekrar sola döner,sola döndüğünde ise sensör tekrar alevin alanına girdiği için alevi algılar ve sağa döner,bu çok hızlı olduğu için  motor mili sürekli ileri geri titrer ve cisim durduğu sürece bu döngü böyle devam eder.

Cisim hareket ettirildiğinde ise mesela sola doğru hareket ettirilirse alev sensör alanından çıkacağı için sensör cisim algılamadığından motor da sola döner ve cisimi yakaladığı yerde tekrar sağa döner ve ileri geri döngü ile motor mili titremeye başlar. 

Alev sağa doğru hareket ettiğinde ise sensör alevi göreceği için motor milide sağa doğru döner ve sensör alev sınırından çıkınca tekrar sola döner ve ileri geri döngü ile motor mili titremeye başlar. 

Arduino UV (Ultraviyole) sensör ile alev tesbit ve takibi devre şeması

Kod:

int motorPin1 = 3; 
int motorPin2 = 4;
int motorPin3 = 5;
int motorPin4 = 6;
int delayTime = 200;
int sensor = 2;
int sensor_durum = 0;

void setup() 
{
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(sensor, INPUT);
}

void loop() 
{
sensor_durum = digitalRead(sensor);
if (sensor_durum == HIGH)
{

digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW); 
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime);
}
else
{
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime); 
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
}}


DC motorlu UV (Ultraviyole) sensör ile alev tesbit ve takibi “kontrolcü olmadan”


DC motorlu UV (Ultraviyole) sensör ile alev tesbit ve takibi devre şeması

Yukarıda ki şema da koda gerek yoktur devre kurulduğu gibi çalışır ve aynı işi yapar,devrede bir kontrolcü olmadığı için farklı opsiyonlarla deneme ve geliştirme olanağı bulunmaz.

Motorun ters yönde dönmesi durumunda motor uçlarının ters çevrilmesi gerekebilir.

Şekil ve şemaların çiziminde www.easyeda.com online editör programından yararlanılmıştır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir