Dünyanın yaklaşık% 71'i su ile kaplıdır, ancak ne yazık ki sadece% 2,5'i içme suyu. Nüfus, kirlilik ve iklim değişikliğindeki artışla birlikte, 2025 yılına kadar sürekli su kıtlığı yaşayacağımız bekleniyor. Bir yandan nehir suyunu paylaşma konusunda uluslar ve eyaletler arasında küçük anlaşmazlıklar var, öte yandan biz insanlar ihmalimiz nedeniyle çok fazla içme suyu israf ediyoruz.
İlk seferde büyük görünmeyebilir, ancak musluğunuz saniyede bir damla su damlasa, bir galon suyu boşa harcamanız yalnızca beş saatinizi alır, bu da ortalama bir insanın iki kişi için hayatta kalması için yeterlidir. günler. Peki bunu durdurmak için ne yapılabilir? Her zaman olduğu gibi bunun cevabı, teknolojideki gelişmede yatıyor. Tüm manuel bataryaları otomatik olarak açılıp kapanan akıllı bir bataryayla değiştirirsek, sadece su tasarrufu sağlamakla kalmaz, aynı zamanda musluğu kirli ellerimizle kullanmak zorunda olmadığımız için daha sağlıklı bir yaşam tarzına sahip oluruz. Bu yüzden bu projede, Arduino ve yanına bir bardak yerleştirildiğinde size otomatik olarak su verebilecek bir Solenoid valf kullanarak bir Otomatik Su Sebili inşa edeceğiz. Kulağa hoş geliyor! Öyleyse bir tane yapalım…
Gerekli malzemeler
- Selenoid vana
- Arduino Uno (herhangi bir versiyon)
- HCSR04 - Ultrasonik Sensör
- IRF540 MOSFET
- 1k ve 10k Direnç
- Breadboard
- Kabloların Bağlanması
Çalışma Konsepti
Otomatik Su Sebilinin arkasındaki Konsept çok basittir. Bardağın dağıtıcının önüne konulmasına neden olacak herhangi bir nesne olup olmadığını kontrol etmek için bir HCSR04 Ultrasonik Sensör kullanacağız. Suyun akışını kontrol etmek için bir solenoid valf kullanılacaktır; bu, enerji verildiğinde su dışarı akacak ve enerjisi kesildiğinde su durdurulacaktır. Bu yüzden, musluğun yakınına herhangi bir nesnenin yerleştirilip yerleştirilmediğini her zaman kontrol eden bir Arduino programı yazacağız, evet ise, o zaman solenoid açılacak ve nesne kaldırılıncaya kadar bekleyecek, nesne kaldırıldığında solenoid otomatik olarak kapanacak ve su temini. Arduino ile Ultrasonik sensörü kullanma hakkında daha fazla bilgiyi burada bulabilirsiniz.
Devre şeması
Arduino tabanlı su sebili için tam devre şeması aşağıda gösterilmiştir.
Bu projede kullanılan solenoid valf, maksimum 1,2A akım derecesine ve 700mA sürekli akım derecesine sahip bir 12V valftir. Bu, Valf açıldığında, valfi açık tutmak için yaklaşık 700mA tüketecektir. Bir Arduino'nun 5V ile çalışan bir Geliştirme kartı olduğunu bildiğimiz için Solenoidin onu açıp kapatması için bir anahtarlama sürücü devresine ihtiyacımız var.
Bu projede kullanılan anahtarlama cihazı IRF540N N-Kanal MOSFET'tir. Sırasıyla pin 1'den 3 pinli Gate, Source ve Drain'e sahiptir. Devre şemasında gösterildiği gibi, solenoidin pozitif terminaline Arduino'nun Vin pini ile güç verilir. Çünkü Arduino'ya güç sağlamak için bir 12V adaptör kullanacağız ve bu nedenle Vin pini Solenoidi kontrol etmek için kullanılabilecek 12V çıkış verecektir. Solenoidin negatif terminali, MOSFET'in Kaynak ve Boşaltma pimleri aracılığıyla toprağa bağlanır. Bu nedenle solenoide yalnızca MOSFET açıksa güç verilecektir.
MOSFET'in kapı pimi, onu açmak veya kapatmak için kullanılır. Kapı pimi topraklanmışsa kapalı kalacak ve bir geçit voltajı uygulandığında açılacaktır. Kapı pimine voltaj uygulanmadığında MOSFET'i kapalı tutmak için, kapı pimi 10k dirençle toprağa çekilir. Arduino pimi 12, MOSFET'i açmak veya kapatmak için kullanılır, bu nedenle D12 pimi, kapı pimine 1K'lık bir dirençle bağlanır. Bu 1K direnç, akım sınırlama amacıyla kullanılır.
Ultrasonik Sensör +5 ve Arduino zemin pimleri tarafından desteklenmektedir. Yankı ve Tetikleme pimi pimi 8 ve sırasıyla iğne 9'a bağlanır. Daha sonra Arduino'yu, mesafeyi ölçmek ve bir nesne algılandığında MOSFET'i açmak için Ultrasonik sensörü kullanacak şekilde programlayabiliriz. Tüm devre basittir ve bu nedenle bir devre tahtasının üzerine kolayca kurulabilir. Bağlantıları yaptıktan sonra benimki aşağıdaki gibi görünüyordu.
Arduino Kartını Programlama
Bu proje için, önündeki nesnenin mesafesini ölçmek için HCSR-04 Ultrasonik sensörü kullanan bir program yazmamız gerekiyor. Mesafe 10 cm'den az olduğunda MOSFET'i açmalıyız, aksi takdirde MOSFET'i kapatmalıyız. Ayrıca pin 13'e bağlı yerleşik LED'i kullanacağız ve MOSFET ile birlikte değiştireceğiz, böylece MOSFET'in açık veya kapalı durumda olduğundan emin olabiliriz. Tüm program aynı şeyi bu sayfanın sonunda verilmiştir. Hemen aşağıda programı küçük anlamlı parçacıklara bölerek açıkladım.
Program makro tanımı ile başlar. Ultrasonik sensör için tetikleyici ve yankı pinine ve Arduino'muz için I / O olarak MOSFET geçit pini ve LED'e sahibiz. Bu yüzden bunların hangi pime bağlanacağını tanımladık. Donanımımızda Echo ve Trigger pinini sırasıyla 8 ve 9 ncu dijital pinlere bağladık. Daha sonra MOSFET pini pim 12'ye bağlanır ve yerleşik LED varsayılan olarak pim 13'e bağlanır. Aynısını aşağıdaki satırları kullanarak tanımlarız.
#define trigger 9 #define echo 8 #define LED 13 #define MOSFET 12
İçinde kurulum fonksiyonu biz girdi ve çıktı hangi hangi pimleri beyan. Donanımımızda sadece Ultrasonik (ABD) sensörün Yankı pini giriş pini ve geri kalanı da çıkış pimleridir. Bu nedenle, aşağıda gösterilenin aynısını belirtmek için Arduino'nun pinMode işlevini kullanıyoruz.
pinMode (tetikleyici, ÇIKIŞ); pinMode (echo, INPUT); pinMode (LED, ÇIKIŞ); pinMode (MOSFET, OUTPUT);
Ana döngü işlevi içinde, measure_distance () adlı işlevi çağırırız . Bu işlev, önündeki nesnenin mesafesini ölçmek için ABD sensörünü kullanır ve değeri değişken " mesafe" olarak günceller . US sensörünü kullanarak mesafeyi ölçmek için tetik pimi önce iki mikro saniye boyunca aşağıda tutulmalı ve ardından on mikrosaniye boyunca yukarıda tutulmalı ve tekrar iki mikro saniye boyunca düşük tutulmalıdır. Bu, önündeki nesne tarafından yansıtılacak olan havaya Ultrasonik sinyallerin sonik bir patlamasını gönderecek ve yankı pimi, yansıyan sinyalleri alacaktır. Ardından, sensörün önündeki nesnenin mesafesini hesaplamak için alınan zaman değerini kullanırız. Eğer bilmek istiyorsan