Arduino ve YF-S201 Sensörüyle Akıllı Su Akış Kontrolü
Arduino ile birçok projeyi hayata geçirme şansı bulabilirsiniz. Bu yazımızda, YF-S201 Su Akış Sensörü'nün Arduino ile nasıl kullanıldığını inceleyeceğiz.
Arduino Uno ve YF-S201 sensörünü kullanarak su akışını saatte kaç litre olduğunu hesaplayan bir örnek devre oluşturacağız. Gereksinim duyacağımız malzemeleri, hiber.com.tr stoklarında bulabileceğimiz ürünler arasından seçeceğiz. Bu malzemeler şunlar:
- Arduino Uno R3 DIP Klon
- YF-S201 Su Akış Sensörü
YF-S201 Su Akış Sensörü Özellikleri: Bu sensör, üç kablo ile birlikte gelir:
- Kırmızı (VCC): 5-24V DC giriş gücü
- Siyah (GND): Topraklama (0V)
- Sarı (Çıkış): Darbe çıkışı
Sensörün çıkışındaki darbeleri sayarak, uygun bir dönüşüm formülü kullanarak su akış hızını (litre/saat - L/saat) kolayca hesaplayabiliriz. Sensörün akış hızına bağlı olarak darbe frekansı ölçülerek litre cinsinden suyun akış hızı hesaplanabilir.
Bağlantıları şemaya uygun yaptıktan sonra kodumuzu Arduino uno kartımıza yükleyip test edebiliriz.
Kodumuzda, sensörün ürettiği darbeleri kesme (interrupt) özelliğini kullanarak 2. harici kesme girişinden sayacak ve elde edilen frekans değerini "sensor frekansı * 60 / 7.5" formülü kullanarak hesaplayacağız.
YF-S201 Su Akış Sensörü Arduino Kodu için INO dosyasını indirmek için lütfen burayı tıklayınız.
Aşağıda, Arduino geliştirme kartına yükleyeceğimiz kod örneğini bulabilirsiniz:
// YF-S201 Su Akış Sensörü ile suyun akış hızını ölçen Arduino kodu
// Değişkenler
volatile int flow_frequency; // Sensör darbe sayacı
unsigned int l_hour; // Saatteki litre cinsinden akış miktarı
unsigned char flowsensor = 2; // Sensörün bağlı olduğu pin
unsigned long currentTime; // Geçerli zaman
unsigned long cloopTime; // Döngü zamanı
// Interrupt fonksiyonu, sensör darbelerini sayar
void flow()
{
flow_frequency++; // Darbe sayacını artır
}
void setup()
{
pinMode(flowsensor, INPUT); // Sensör pini giriş olarak ayarlanır
digitalWrite(flowsensor, HIGH); // Dahili pull-up direnci aktif edilir
Serial.begin(9600); // Seri iletişim başlatılır
attachInterrupt(0, flow, RISING); // Dijital pin 2'ye bağlı kesmeyi etkinleştir
sei(); // Interrupts (kesmeler) aktif edilir
currentTime = millis(); // Geçerli zaman kaydedilir
cloopTime = currentTime; // Döngü zamanı güncellenir
}
void loop()
{
currentTime = millis(); // Geçerli zaman güncellenir
// Her saniye akış hızı hesaplanır ve seri portta gösterilir
if (currentTime >= (cloopTime + 1000))
{
cloopTime = currentTime; // Döngü zamanı güncellenir
l_hour = (flow_frequency * 60 / 7.5); // Saatteki litre cinsinden akış miktarı hesaplanır (frekans * 60 / 7.5)
flow_frequency = 0; // Darbe sayacı sıfırlanır
Serial.print(l_hour, DEC); // Hesaplanan sonuç seri portta gösterilir
Serial.println(" L/hour"); // Birim belirten metin seri portta gösterilir
}
}
Sizler de Arduino ve YF-S201 Su Akış Sensörü ile projelerinizi geliştirebilir ve bambaşka sistemler oluşturabilirsiniz.
Berat KURTGÖZ (Yazar)
Tasarım ssnasıl göründüğü ya da nasıl hissettirdiği ile ilgili bir şey değildir. Tasarım nasıl çalıştığı ile ilgilidir
Makaleleri
45
Makale Okunması
14807
Yorumunuz Gönder