- Sıvıdaki Bulanıklık Nedir?
- Arduino ile Bulanıklık Nasıl Ölçülür?
- Bulanıklık Ölçer Yapmak için Gerekli Bileşenler
- Bulanıklık Sensörüne Genel Bakış
- Bulanıklık Modülünün Temel Özellikleri
- Arduino ile Bulanıklık Sensörünün Arayüzü - Devre Şeması
- Sudaki Bulanıklığı Ölçmek için Arduino Programlama
Sıvılar söz konusu olduğunda bulanıklık önemli bir terimdir. Çünkü sıvı dinamiğinde önemli bir rol oynar ve su kalitesini ölçmek için de kullanılır. Öyleyse bu eğitimde, bulanıklığın ne olduğunu, Arduino kullanarak bir sıvının bulanıklığının nasıl ölçüleceğini tartışalım. Bu projeyi daha ileriye götürmek istiyorsanız, ayrıca bir pH metreyi Arduino ile arayüzlemeyi düşünebilir ve ayrıca suyun kalitesini daha iyi değerlendirmek için suyun pH değerini okuyabilirsiniz. Daha önce ESP8266 kullanarak IoT tabanlı bir Su kalitesi izleme cihazı da yaptık, ilgileniyorsanız bunu da kontrol edebilirsiniz. Olduğu söyleniyor, hadi başlayalım
Sıvıdaki Bulanıklık Nedir?
Bulanıklık, bir sıvının bulanıklık veya bulanıklık derecesi veya seviyesidir. Bu, havadaki beyaz dumana benzer çok sayıda görünmez partikülün (çıplak gözle) varlığından kaynaklanır. Işık sıvıların içinden geçtiğinde bu küçük parçacıkların varlığı nedeniyle ışık dalgaları dağılır. Bir sıvının bulanıklığı, serbest asılı partiküllerle doğru orantılıdır, yani partikül sayısı artarsa bulanıklık da artacaktır.
Arduino ile Bulanıklık Nasıl Ölçülür?
Daha önce de bahsettiğim gibi bulanıklık, ışık dalgalarının saçılmasından kaynaklanıyor, bulanıklığı ölçmek için ışığın saçılımını ölçmeliyiz. Bulanıklık, ölçüm için kullanılan yönteme bağlı olarak genellikle nefelometrik bulanıklık birimleri (NTU) veya Jackson bulanıklık birimleri (JTLJ) cinsinden ölçülür. İki birim kabaca eşittir.
Şimdi bir bulanıklık sensörünün nasıl çalıştığını görelim, iki parçası var, verici ve Alıcı. Verici, tipik olarak bir led ve bir sürücü devresinden oluşan bir ışık kaynağından oluşur. Alıcının ucunda, fotodiyot veya LDR gibi bir ışık detektörü vardır. Çözümü verici ve alıcı arasına yerleştiriyoruz.
Verici basitçe ışığı iletir, ışık dalgaları çözümden geçer ve alıcı ışığı alır. Normalde (bir çözüm olmadan) iletilen ışık alıcı tarafında tamamen alır. Ancak bulanık bir çözelti varlığında, iletilen ışık miktarı çok düşüktür. Yani alıcı tarafında, sadece düşük yoğunluklu bir ışık alıyoruz ve bu yoğunluk bulanıklıkla ters orantılı. Dolayısıyla, ışık yoğunluğu yüksekse, çözüm daha az bulanıksa ve ışık yoğunluğu çok düşükse bu, çözümün daha bulanık olduğu anlamına gelen ışık yoğunluğunu ölçerek bulanıklığı ölçebiliriz.
Bulanıklık Ölçer Yapmak için Gerekli Bileşenler
- Bulanıklık modülü
- Arduino
- 16 * 2 I2C LCD
- Ortak katot RGB LED
- Breadboard
- Atlama telleri
Bulanıklık Sensörüne Genel Bakış
Bu projede kullanılan bulanıklık sensörü aşağıda gösterilmiştir.
Gördüğünüz gibi bu bulanıklık sensör modülü 3 parçalı olarak geliyor. Su geçirmez bir kablo, bir sürücü devresi ve bir bağlantı kablosu. Test probu hem verici hem de alıcıdan oluşur.
Yukarıdaki görüntü, bu tip modülün bir ışık kaynağı olarak bir IR diyot ve bir dedektör olarak bir IR alıcısı kullandığını göstermektedir. Ancak çalışma prensibi öncekiyle aynı. Sürücü bölümü (aşağıda gösterilmiştir) bir op-amp ve algılanan ışık sinyalini yükselten bazı bileşenlerden oluşur.
Gerçek sensör, bir JST XH konektörü kullanılarak bu modüle bağlanabilir. Üç pimi, VCC, toprak ve çıkışı vardır. Vcc, 5v'ye ve toprağa bağlanır. Bu modülün çıkışı, ışık yoğunluğuna göre değişen analog bir değerdir.
Bulanıklık Modülünün Temel Özellikleri
- Çalışma Gerilimi: 5VDC.
- Akım: 30mA (MAX).
- Çalışma sıcaklığı: -30 ° C ila 80 ° C
- Arduino, Raspberry Pi, AVR, PIC vb. İle uyumludur.
Arduino ile Bulanıklık Sensörünün Arayüzü - Devre Şeması
Bulanıklık sensörünü Arduino'ya bağlamak için eksiksiz şema aşağıda gösterilmiştir, devre EasyEDA kullanılarak tasarlanmıştır.
Bu çok basit bir devre şemasıdır. Bulanıklık sensörünün çıkışı analogdur, böylece Arduino'nun A0 pinine bağlanır, I2C LCD'si Arduino'nun SCL'den A5'e ve SDA'dan A4'e olan I2C pinlerine bağlanır. Ardından, dijital pin D2, D3 ve D4'e bağlanan RGB LED. Bağlantılar yapıldıktan sonra donanım kurulumum aşağıdaki gibi görünüyor.
Sensörün VCC'sini Arduino 5v'ye bağlayın, ardından toprağa bağlayın. Sensörün çıkış pini Arduino'nun analog 0'ına. Ardından, VCC'yi ve LCD modülün topraklamasını 5v'ye ve Arduino'nun topraklamasına bağlayın. Sonra SDA'dan A4'e ve SCL'den A5'e, bu iki pin Arduino'nun I2C pinleridir. Son olarak RGB LED'in zeminini Arduino'nun zeminine bağlar ve yeşili D3'e, maviyi D4'e ve kırmızıyı D5'e bağlar.
Sudaki Bulanıklığı Ölçmek için Arduino Programlama
Plan, 0'dan 100'e kadar bulanıklık değerlerini göstermektir. Yani sayaç, saf sıvı için 0 ve yüksek bulanık olanlar için 100 göstermelidir. Bu Arduino kodu da çok basittir ve kodun tamamı bu sayfanın alt kısmında bulunabilir.
İlk olarak I2C likit kristal kütüphanesini dahil ettim çünkü bağlantıları en aza indirmek için bir I2C LCD kullanıyoruz.
# dahil
Sonra sensör girişi için tamsayı ayarladım.
int sensorPin = A0;
Kurulum bölümünde pinleri tanımladım.
pinMode (3, ÇIKIŞ); pinMode (4, OUTPUT); pinMode (5, ÇIKIŞ);
Döngü bölümünde, daha önce de bahsettiğim gibi, sensörün çıkışı analog bir değerdir. Bu yüzden bu değerleri okumamız gerekiyor. Arduino AnalogRead fonksiyonu yardımıyla loop bölümündeki çıkış değerlerini okuyabiliriz.
int sensorValue = analogRead (sensorPin);
Öncelikle, sensörümüzün davranışını anlamamız gerekir, bu da bulanıklık sensörünün minimum ve maksimum değerini okumamız gerektiği anlamına gelir. bu değeri seri monitörde serial.println işlevini kullanarak okuyabiliriz .
Bu değerleri elde etmek için önce sensörü herhangi bir çözüm olmadan özgürce okuyun. 640 civarında bir değer aldım ve bundan sonra, verici ile alıcı arasına siyah bir madde yerleştirin, minimum değer olan bir değer elde ederiz, genellikle bu değer sıfırdır. Böylece maksimum 640 ve minimum olarak sıfır elde ettik. Şimdi bu değerleri 0-100'e çevirmemiz gerekiyor
Bunun için Arduino'nun harita fonksiyonunu kullandım.
int bulanıklık = harita (sensorValue, 0,640, 100, 0);
Sonra bu değerleri LCD ekranda görüntüledim.
lcd.setCursor (0, 0); lcd.print ("bulanıklık:"); lcd.print (""); lcd.setCursor (10, 0); lcd.print (bulanıklık);
Ondan sonra if şartlarının da yardımıyla farklı şartlar verdim.
eğer (bulanıklık <20) { digitalWrite (2, HIGH); digitalWrite (3, DÜŞÜK); digitalWrite (4, DÜŞÜK); lcd.setCursor (0, 1); lcd.print ("CLEAR"); }
Bu, yeşil led'i etkinleştirecek ve bulanıklık değeri 20'nin altında ise LCD'de "net" olarak görüntülenecektir.
eğer ((bulanıklık> 20) && (bulanıklık <50)) { digitalWrite (2, LOW); digitalWrite (3, YÜKSEK); digitalWrite (4, DÜŞÜK); lcd.setCursor (0, 1); lcd.print ("BULUTLU"); }
Bu, mavi ledi aktif hale getirecek ve bulanıklık değeri 20 ile 50 arasında ise LCD'de "bulutlu" gösterecektir.
if ((bulanıklık> 50) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("onun KİRLİ"); }
Bu, aşağıda gösterildiği gibi bulanıklık değeri 50'den büyükse kırmızı led'i etkinleştirecek ve LCD'de "kirli" gösterecektir.
Sadece devre şemasını takip edin ve kodu yükleyin, her şey doğru giderse, suyun bulanıklığını ölçebilmelisiniz ve LCD yukarıda gösterildiği gibi suyun kalitesini göstermelidir.
Bu bulanıklık ölçerin bulanıklık yüzdesini gösterdiğini ve doğru bir endüstriyel değer olmayabileceğini, ancak yine de iki suyun su kalitesini karşılaştırmak için kullanılabileceğini unutmayın. Bu projenin tam çalışması aşağıdaki videoda bulunabilir. Öğreticiden keyif aldığınızı ve herhangi bir sorunuz varsa faydalı bir şeyler öğreneceğinizi umuyoruz, bunları aşağıdaki yorum bölümünde bırakabilir veya teknik sorularınızı göndermek için CircuitDigest forumlarını kullanabilir veya ilgili bir tartışma başlatabilirsiniz.