- Gerekli Bileşenler
- YFS201 Su Akış Sensörü
- Devre şeması
- Arduino Su Akış Sensörü Kodu
- Arduino Su Akış Sensörü Çalışıyor
Daha önce büyük ölçekli imalat şirketlerini ziyaret ettiyseniz, fark edeceğiniz ilk şey hepsinin otomatik olmasıdır. Alkolsüz İçecek Endüstrileri ve Kimya endüstrileri, bu otomasyon işlemi sırasında işledikleri sıvıları sürekli olarak ölçmek ve ölçmek zorundadır ve bir sıvının akışını ölçmek için kullanılan en yaygın sensör bir Akış Sensörüdür. Arduino gibi bir mikrodenetleyiciye sahip bir akış sensörü kullanarak akış hızını hesaplayabilir, bir borudan geçen sıvının hacmini kontrol edebilir ve gerektiği gibi kontrol edebiliriz. Üretim endüstrilerinin yanı sıra, akış sensörleri tarım sektöründe, gıda işleme, su yönetimi, madencilik endüstrisi, su geri dönüşümü, kahve makineleri vb. Yerlerde de bulunabilir. Ayrıca, bir su akış sensörü Otomatik Su Sebili gibi projelere iyi bir katkı olacaktır. ve sıvı akışını izlememiz ve kontrol etmemiz gereken Akıllı Sulama Sistemleri.
Bu projede Arduino'yu kullanarak bir su akış sensörü inşa edeceğiz. Su akış sensörünü Arduino ve LCD ile arayüzleyecek ve vanadan geçen su hacmini görüntüleyecek şekilde programlayacağız. Bu özel proje için, sıvının akış oranını algılamak için bir salon efekti kullanan YF-S201 su akış sensörünü kullanacağız.
Gerekli Bileşenler
- Su Akış Sensörü
- Arduino UNO
- LCD (16x2)
- İçten dişli konektör
- Bağlantı telleri
- Boru
YFS201 Su Akış Sensörü
Sensörde aşağıdaki şekilde gösterildiği gibi 3 kablo KIRMIZI, SARI ve SİYAH bulunur. Kırmızı kablo, 5V ile 18V arasında değişen besleme voltajı için kullanılır ve siyah kablo GND'ye bağlanır. Sarı kablo, bir MCU tarafından okunabilen çıkış (darbeler) için kullanılır. Su akış sensörü, içinden geçen sıvı miktarını ölçen bir fırıldak sensöründen oluşur.
YFS201 su akış sensörü çalışma anlamak kolaydır. Su akış sensörü, salon etkisi prensibine göre çalışır. Hall etkisi, akımın akışına dik yönde bir manyetik alan uygulandığında bir elektrik iletkeni boyunca potansiyel farkının üretilmesidir. Su akış sensörü, her devirde bir elektrik darbesi üreten manyetik bir salon etkisi sensörüyle entegre edilmiştir. Tasarımı, salon efekti sensörünün sudan yalıtılacağı ve sensörün güvenli ve kuru kalmasına izin verecek şekildedir.
YFS201 sensör modülünün tek başına resmi aşağıda gösterilmiştir.
Boru ve su akış sensörüne bağlamak için, aşağıda gösterildiği gibi dişi dişli iki konektör kullandım.
YFS201 Spesifikasyonlarına göre 5V'de çektiği maksimum akım 15mA ve çalışma debisi 1 ila 30 litre / dakikadır. Sıvı sensörden aktığında, akan sıvının yoluna yerleştirilen türbin çarkının kanatları ile temas eder. Türbin çarkının şaftı bir salon etkisi sensörüne bağlıdır. Bundan dolayı, su vanadan her aktığında darbeler üretir. Şimdi, tek yapmamız gereken artılar için zamanı ölçmek veya 1 saniyedeki darbe sayısını saymak ve ardından litre / saat (L / Hr) cinsinden akış oranlarını hesaplamak ve ardından hacmi bulmak için basit dönüşüm formülünü kullanmak. içinden geçen suyun. Darbeleri ölçmek için Arduino UNO'yu kullanacağız. Aşağıdaki resim size su akış sensörünün pin çıkışını gösterir.
Devre şeması
Su akış sensörü devre şemasıdır Arduino ile bir su akış sensörü ve LCD (16x2) arabirimi için aşağıda gösterilmiştir. Arduino ve LCD'lerde yeniyseniz, bu Arayüz Arduino ve LCD Makalesini okumayı düşünebilirsiniz.
Su akış sensörü ve LCD'nin (16x2) Arduino ile bağlantısı aşağıda tablo formatında verilmiştir. Potun 5V ile GND arasına bağlandığını ve potun pimi 2'nin LCD'nin V0 pini ile bağlandığını unutmayın.
S.NO |
Su Akış sensörü pimi |
Arduino Pinleri |
1 |
Kırmızı kablo |
5V |
2 |
Siyah |
GND |
3 |
Sarı |
A0 |
S.No |
LCD ekran |
Arduino |
1 |
Vss |
GND (breadboard'un zemin rayı) |
2 |
VDD |
5V (Devre tahtasının pozitif rayı) |
3 |
V0 ile bağlantı için yukarıdaki nota bakın |
|
4 |
RS |
12 |
5 |
RW |
GND |
6 |
E |
11 |
7 |
D7 |
9 |
8 |
D6 - D3 |
3 ila 5 |
Bir devre tahtası kullandım ve bağlantı yukarıda gösterilen devre şemasına göre yapıldığında, test kurulumum buna benzer bir şeye benziyordu.
Arduino Su Akış Sensörü Kodu
Tam su akış sensörü Arduino kodu sayfanın altında verilmiştir. Kodun açıklaması aşağıdaki gibidir.
LCD ile Arduino arasında arayüz oluşturmamızı kolaylaştıran LCD başlık dosyasını kullanıyoruz ve 12,11,5,4,3,9 pinleri LCD ile Arduino arasında veri aktarımı için ayrılmıştır. Sensörün çıkış pini Arduino UNO'nun 2. pinine bağlıdır.
uçucu int flow_frequency; // Akış sensörü darbelerini ölçer // Hesaplanan litre / saat float vol = 0.0, l_minute; işaretsiz karakter akış sensörü = 2; // Sensör Girişi unsigned long currentTime; işaretsiz uzun cloopTime; #Dahil etmek
Bu işlev bir kesinti servis rutinidir ve bu, Arduino UNO'nun pin2'sinde bir kesinti sinyali olduğunda çağrılacaktır. Her kesme sinyali için akış_frekansı değişkeninin sayısı 1 artırılacaktır. Kesintiler ve bunların çalışması hakkında daha fazla ayrıntı için Arduino kesmeleri hakkındaki bu makaleyi okuyabilirsiniz.
void flow () // Kesinti işlevi { flow_frequency ++; }
Void kurulumunda, MCU'ya Arduino UNO'nun 2. pininin pinMode (pin, OUTPUT) komutunu vererek INPUT olarak kullanıldığını söylüyoruz. AttachInterrupt komutunu kullanarak, pim 2'deki sinyalde bir yükselme olduğunda, akış işlevi çağrılır. Bu, flow_frequency değişkenindeki sayımı 1 artırır. Geçerli zaman ve cloopTime, kodun her 1 saniyede bir çalışması için kullanılır.
void setup () { pinMode (flowsensor, INPUT); digitalWrite (akış sensörü, YÜKSEK); Serial.begin (9600); lcd.begin (16, 2); attachInterrupt (digitalPinToInterrupt (akış sensörü), akış, YÜKSELEN); // Kesmeyi Kur lcd.clear (); lcd.setCursor (0,0); lcd.print ("Su Akış Ölçer"); lcd.setCursor (0,1); lcd.print ("Devre Özeti"); currentTime = milis (); cloopTime = currentTime; }
İf işlevi, içindeki kodun her saniye için çalışmasını sağlar. Bu şekilde, su akış sensörünün saniyede ürettiği frekansların sayısını sayabiliriz. Veri sayfasındaki akış hızı darbe özellikleri, frekansın akış hızı ile 7,5 çarpımı olduğu verilmiştir. Yani akış hızı frekans / 7.5'tir. Litre / dakika cinsinden akış oranını bulduktan sonra, litre / sn'ye dönüştürmek için 60'a bölün. Bu değer vol değişkenine saniyede bir eklenir.
geçersiz döngü () { currentTime = milis (); // Her saniye, litre / saat hesaplayın ve yazdırın if (currentTime> = (cloopTime + 1000)) { cloopTime = currentTime; // (flow_frequency! = 0) if (flow_frequency! = 0) { // Darbe frekansı (Hz) = 7.5Q, Q, L / dak cinsinden akış hızıdır l_minute = (akış_ sıklığı / 7.5); // (Darbe frekansı x 60 dakika) / 7,5Q = L / saat cinsinden akış hızı lcd.clear (); lcd.setCursor (0,0); lcd.print ("Oran:"); lcd.print (l_minute); lcd.print ("L / M"); l_minute = l_minute / 60; lcd.setCursor (0,1); hacim = hacim + l_dakika; lcd.print ("Cilt:"); lcd.print (hacim); lcd.print ("L"); flow_frequency = 0; // Sayaç Serial.print'i Sıfırla (l_minute, DEC); // litre / saat yazdır Serial.println ("L / Sec"); }
Diğer işlevi, verilen zaman aralığında su akış sensöründen çıktı olmadığında çalışır.
else { lcd.clear (); lcd.setCursor (0,0); lcd.print ("Oran:"); lcd.print (flow_frequency); lcd.print ("L / M"); lcd.setCursor (0,1); lcd.print ("Cilt:"); lcd.print (hacim); lcd.print ("L"); }
Arduino Su Akış Sensörü Çalışıyor
Projemizde su akış sensörünü bir boruya bağladık. Borunun çıkış vanası kapalıysa, su akış sensörünün çıkışı sıfırdır (Darbe yok). Arduino'nun 2. pininde görülen hiçbir kesinti sinyali olmayacak ve flow_frequency'nin sayısı sıfır olacaktır. Bu durumda, else döngüsünün içine yazılan kod çalışacaktır.
Borunun çıkış vanası açılırsa. Su, sensörün içindeki tekerleği döndüren sensörden akar. Bu durumda sensörden üretilen darbeleri gözlemleyebiliriz. Bu darbeler, Arduino UNO'ya bir kesinti sinyali olarak hareket edecektir. Her kesme sinyali için (yükselen kenar), flow_frequency değişkeninin sayısı bir artırılacaktır. Geçerli zaman ve cloopTIme değişkeni, akış hızı ve hacmin hesaplanması için her saniye için flow_frequency değerinin alınmasını sağlar. Hesaplama bittikten sonra, flow_frequency değişkeni sıfıra ayarlanır ve tüm prosedür baştan başlatılır.
Tam çalışma, bu sayfanın alt kısmında bağlantısı verilen videoda da bulunabilir. Öğreticiden keyif aldığınızı ve faydalı bir şeyden keyif aldığınızı umuyoruz, herhangi bir sorununuz varsa, lütfen bunları yorum bölümünde bırakın veya diğer teknik sorular için forumlarımızı kullanın.