Su Seviyesi Sensörü Nasıl Çalışır ve Arduino
Bu Su Seviyesi Sensörü ile bunu yapabilirsiniz!
Bu sensör, su seviyesini ölçmek, bir çukur su derinliğini izlemek, yağmuru tespit etmek veya sızıntıyı tespit etmek için kullanılabilir.
Donanıma Genel Bakış
Sensör, beşi güç izleri ve beşi duyu izleri olmak üzere on adet açık bakır izine sahiptir.
Bu izler, her iki güç izi arasında bir duyu izi olacak şekilde iç içe geçmiştir.
Genellikle bu izler birbirine bağlı değildir, ancak suya daldırıldığında su ile köprülenir.
Kart üzerinde, karta güç verildiğinde yanacak bir Güç LED'i vardır.
Su Seviyesi Sensörü Nasıl Çalışır?
Su seviye sensörünün çalışması oldukça basittir.
Açıktaki paralel iletken serileri , direnci su seviyesine göre değişen değişken bir direnç (tıpkı bir potansiyometre gibi) görevi görür.
Dirençteki değişiklik, sensörün tepesinden su yüzeyine olan mesafeye karşılık gelir.
Direnç, suyun yüksekliği ile ters orantılıdır:
- Sensör ne kadar çok suya daldırılırsa, daha iyi iletkenlik sağlar ve daha düşük bir dirençle sonuçlanır.
- Sensör ne kadar az suya daldırılırsa, zayıf iletkenliğe neden olur ve daha yüksek dirençle sonuçlanır.
Sensör, dirence göre bir çıkış voltajı üretir ve bunu ölçerek su seviyesini belirleyebiliriz.
Su Seviyesi Sensörü Pin Çıkışı
Su seviyesi sensörünün kullanımı çok kolaydır ve bağlanması gereken sadece 3 pime sahiptir.
S (Sinyal) pin, Arduino'nuzdaki analog girişlerden birine bağlanacak olan analog bir çıkıştır.
+ (VCC)pin sensör için güç sağlar. Sensöre 3,3V - 5V arasında güç sağlanması önerilir. Lütfen analog çıkışın sensör için sağlanan voltaja bağlı olarak değişeceğini unutmayın.
- (GND) bir toprak bağlantısıdır.
Arduino ile Kablolama Su Seviye Sensörü
Su seviye sensörünü Arduino ya bağlayalım.
Önce sensöre güç sağlamanız gerekir. Bunun için modül üzerindeki + (VCC) pinini Arduino'daki 5V'a ve - (GND) pinini toprağa bağlayabilirsiniz.
Ancak, bu sensörlerle ilgili yaygın olarak bilinen bir sorun, nemli bir ortama maruz kaldıklarında kısa ömürlülükleridir . Proba uygulanan gücün olması, korozyon oranını sürekli olarak önemli ölçüde hızlandırır.
Bunun üstesinden gelmek için, sensöre sürekli güç sağlamamanızı, sadece okumaları alırken ona güç vermenizi öneririz.
Bunu başarmanın kolay bir yolu, VCC pinini bir Arduino'nun dijital pinine bağlamak ve ihtiyacınıza göre YÜKSEK veya DÜŞÜK olarak ayarlamaktır. Bu yüzden, VCC pinini bir Arduino'nun 7 numaralı dijital pinine bağlayacağız.
Son olarak, S (Sinyal) pinini Arduino'nuzdaki A0 ADC pinine bağlayın.
Aşağıdaki çizim kablolamayı göstermektedir.
Su Seviyesi Algılama Temel Örneği
Devre kurulduktan sonra, aşağıdaki programı Arduino'nuza yükleyin.
Çizim yüklendikten sonra, Arduino'dan çıktıyı görmek için bir Seri Monitör penceresi açın. Sensör hiçbir şeye dokunmadığında bir 0 değeri görmelisiniz. Suyu algıladığını görmek için bir bardak su alabilir ve sensörü yavaşça içine koyabilirsiniz.
Sensör tamamen suya daldırılacak şekilde tasarlanmamıştır, sadece PCB üzerindeki açıkta kalan izler suyla temas edecek şekilde monte etmeye dikkat edin.
Açıklama:
Çizim, sensörün + (VCC) ve S (sinyal) pinlerinin bağlı olduğu Arduino pinlerinin beyanı ile başlar.
Ardından, val
mevcut su seviyesini depolayan bir değişken tanımlıyoruz .
Şimdi Kurulum bölümünde, önce sensöre giden güç bağlantısını çıkış olarak açıklıyoruz, ardından düşük ayarlıyoruz, böylece başlangıçta sensörden güç akışı olmaz. Seri monitörü de kurduk.
Döngü bölümünde, readSensor()
bir saniye aralıklarla tekrar tekrar fonksiyonu çağırıyoruz ve döndürülen değeri yazdırıyoruz.
readSensor()
Fonksiyonu mevcut su seviyesini elde etmek için kullanılır. Sensörü AÇIK konuma getirir, 10 milisaniye bekler, analog değer form sensörünü okur, sensörü KAPATIR ve ardından analog değeri döndürür.
Kalibrasyon
Su seviyesi sensörünüzden doğru okumalar almak için, önce onu izlemeyi planladığınız belirli su türü için kalibre etmeniz önerilir.
Bildiğiniz gibi saf su iletken değildir. Aslında onu iletken yapan sudaki mineraller ve safsızlıklardır. Bu nedenle, kullandığınız su türüne bağlı olarak sensörünüz az çok hassas olabilir.
Verileri kaydetmeye veya olayları tetiklemeye başlamadan önce, sensörünüzden gerçekte hangi okumaları aldığınızı görmelisiniz.
Yukarıdaki çizimi kullanarak, sensör tamamen kuru olduğunda -vs- kısmen suya daldırıldığında -vs- tamamen daldırıldığında sensörünüzün hangi değerleri çıkardığına dikkat edin.
Örneğin, yukarıdaki aynı devreyi kullandığınızda, seri monitörde sensör kuru olduğunda (0) ve kısmen suya daldırıldığında (~ 420) ve tamamen suya daldığında seri monitörde aşağıdaki değerlere yakın olduğunu göreceksiniz. (~ 520).
Bu test biraz deneme yanılma alabilir. Bu okumaları iyi bir şekilde ele aldığınızda, bir eylemi tetiklemeyi düşünüyorsanız, bunları eşik olarak kullanabilirsiniz . Bir sonraki örnekte, tam da bunu yapacağız.
Su Seviyesi Algılama Projesi
Bir sonraki örneğimiz için, su seviyesine göre LED'leri yakacak portatif bir su seviyesi sensörü yapacağız.
Kablolama
Devreyi önceki örnekten kullanacağız. Bu sefer sadece birkaç LED eklememiz gerekiyor.
Üç LED'i # 2, # 3 ve # 4 ile 220Ω akım sınırlayıcı dirençlere dijital pinlere bağlayın.
Devrenizi aşağıda gösterildiği gibi bağlayın:
Arduino Kodu
Devre kurulduktan sonra, aşağıdaki çizimi Arduino'nuza yükleyin.
Bu taslakta iki değişken tanımlanmıştır, yani. lowerThreshold
ve upperThreshold
. Bu değişkenler eşik seviyelerimizi temsil eder.
Alt eşiğin altındaki herhangi bir şey kırmızı LED'in yanmasını tetikleyecektir. Üst eşiğin üzerindeki herhangi bir şey yeşil LED'i açacaktır. Bunların arasında herhangi bir şey sarı LED'i açacaktır.
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.