Bu proje, su sensörünün algıladığı suyu ölçerek, bu durumu LCD ekranda ve LED ışıkları ile görselleştirir. Su tespit edildiğinde buzzer devreye girer ve kullanıcıyı uyarır.
Proje İçin Gerekli Malzemeler:
- 1x Arduino
- 1x Breadboard
- 1x Su sensörü
- 1x Buzzer
- 1x I2C 16×2 LCD Ekran
- 2x LED (Kırmızı ve Mavi)
- 2x 220 ohm Direnç
- Jumper kablolar
Bağlantı Şeması:

- Su Sensörü:
- VCC → Arduino 5V pinine
- GND → Arduino GND pinine
- Analog çıkış → Arduino A0 pinine
- I2C 16×2 LCD Ekran:
- VCC → Arduino 5V pinine
- GND → Arduino GND pinine
- SDA → Arduino A4 pinine
- SCL → Arduino A5 pinine
- LED’ler:
- Kırmızı LED → Arduino 6 pinine
- Mavi LED → Arduino 7 pinine
- Her LED için 220 ohm direnç eklenmelidir.
- Buzzer:
- Buzzer → Arduino 2 pinine
Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | //------------------------------------// //-------------KODKAMPUSU-------------// //---Arduino | Su Sensörü Kullanımı---// //------------------------------------// //Ledlerin bağlı oldukları pinlerin tanımlamasını yapıyoruz #define kirmiziled 6 #define maviled 7 //Su sensörünün bağlı olduğu analog pini tanımlıyoruz #define susensoru A0 //Buzzer pin tanımlamasını yapıyoruz #define buzzer 2 #include //I2C LCD Ekranımızın kütüphane tanımlamasını yapıyoruz LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2); //Kullanacağımız ekranın pixel boyutunu tanımlıyoruz void setup() { //Ledlerin OUTPUT, çıkış birimlerinin tanımlamasını yapıyoruz pinMode(kirmiziled, OUTPUT); pinMode(maviled, OUTPUT); //LCD Ekranımızın arka ışığını ve çalışması için gereken kodları yazıyoruz lcd.init(); lcd.backlight(); } void loop() { int sudegeri = analogRead(susensoru); //Su sensöründen gelecek olan verileri okumak ve işlemek için sudegeri değişkeni oluşturup, bu değişkene tanımlıyoruz if (sudegeri < 200) { //Eğer, sensör tarafından tespit edilen suyun değeri 200'ün altındaysa; LCD Ekranda "Su Tespit Edilmedi" yazısı yazacak, kırmızı led yanacak. lcd.setCursor(7, 0); lcd.print("SU"); lcd.setCursor(0, 1); lcd.print("TESPIT EDILMEDI"); digitalWrite(kirmiziled, HIGH); // Kırmızı LED'i yakıyoruz digitalWrite(maviled, LOW); // Mavi LED'i söndürüyoruz } else { //Eğer, sensör tarafından tespit edilen suyun değeri 200'ün üstündeyse; LCD Ekranda "Su Tespit Edildi!" yazacak, mavi led yanacak ve buzzer uyarı sesi çıkaracak. lcd.setCursor(7, 0); lcd.print("SU"); lcd.setCursor(0, 1); lcd.print("TESPIT EDILDI !"); digitalWrite(kirmiziled, LOW); // Kırmızı LED'i söndürüyoruz digitalWrite(maviled, HIGH); // Mavi LED'i yakıyoruz tone(buzzer, 750); // Buzzer'ı 750 Hz frekansında çalıştırıyoruz delay(125); // 125ms bekliyoruz noTone(buzzer); // Buzzer'ı kapatıyoruz delay(50); // 50ms bekliyoruz tone(buzzer, 650); // Buzzer'ı 650 Hz frekansında çalıştırıyoruz delay(125); // 125ms bekliyoruz noTone(buzzer); // Buzzer'ı kapatıyoruz delay(100); // 100ms bekliyoruz } } |
Açıklamalar ve Dikkat Edilmesi Gereken Noktalar:
- Setup() Fonksiyonu:
pinMode()
ile LED’leri ve buzzer’ı çıkış (OUTPUT) olarak tanımlıyoruz.- LCD ekranın çalışma ayarlarını yapıyoruz (
lcd.init()
velcd.backlight()
).
- Loop() Fonksiyonu:
analogRead(susensoru)
komutu ile su sensöründen veri okuyoruz. Bu veri, suyun varlığını belirler.- Eğer sensör değeri 200’ün altındaysa, LCD ekranına “Su Tespit Edilmedi” mesajı yazdırılır, kırmızı LED yanar ve mavi LED söner.
- Eğer sensör değeri 200’ün üstündeyse, LCD ekranına “Su Tespit Edildi!” mesajı yazdırılır, mavi LED yanar, kırmızı LED söner ve buzzer belirli frekansta çalmaya başlar.
- Su sensörünün kalibrasyonu: Su sensörleri her ortamda farklı tepki verebilir. 200 değeri, su tespiti için örnek bir sınırdır. Sensörünüzü test ederek uygun bir değer belirlemek gerekebilir.
- LCD Ekran Bağlantısı: I2C LCD ekranın doğru şekilde bağlanması ve adresinin doğru ayarlandığından emin olun.
- LED ve Buzzer Bağlantıları: Her LED için 220 ohm direnç kullanmayı unutmayın. Buzzer’ı doğru pin’e bağladığınızdan emin olun.
Bağlantı ve kodlama sırasında karşılaştığınız hataları; aşağıda ki yorum bölümünden belirtebilirsiniz 🙂