Arduino ile Su Seviyesi Sensörü ve I2C LCD Ekran

👤 Yazar: ozcan 📅 Tarih: 23.07.2026 10:58 👁️ Görüntüleme: 14

Arduino ile Su Seviyesi Sensörü ve I2C LCD Ekran Bağlantısı

Bu rehberde, Arduino Uno kontrol kartı kullanarak Su Seviyesi Sensörü (Water Level Sensor) ile sıvı miktarını ölçme ve elde edilen verileri 16x2 I2C LCD Ekran üzerinde anlık olarak görüntüleme uygulamasını inceleyeceğiz.

Arduino ile Su Seviyesi Sensörü ve I2C LCD Ekran Bağlantı şeması

Gerekli Malzemeler:
  • 1 x Arduino Uno R3
  • 1 x Su Seviye / Yağmur Sensörü Modülü
  • 1 x 16x2 Karakter LCD Ekran (I2C Modüllü)
  • 1 x Breadboard (Devre Tahtası)
  • Yeterli miktarda Jumper Kablo

Devre Bağlantı Detayları

Bağlantılar yapılırken güç hatları ortaklaştırılmış ve I2C haberleşme protokolü kullanılarak kablo karmaşası en aza indirilmiştir:

  • Su Sensörü VCC (+): Breadboard 5V Hattı (Kırmızı Kablo)
  • Su Sensörü GND (-): Breadboard GND Hattı (Siyah Kablo)
  • Su Sensörü S (Sinyal): Arduino A0 Analog Girişi (Mavi Kablo)
  • I2C LCD VCC: Breadboard 5V Hattı (Kırmızı Kablo)
  • I2C LCD GND: Breadboard GND Hattı (Siyah Kablo)
  • I2C LCD SDA: Arduino A4 Pini (Yeşil Kablo)
  • I2C LCD SCL: Arduino A5 Pini (Sarı Kablo)

Çalışma Prensibi

Devrenin çalışma mantığı temel olarak üç adımdan oluşur:

  • 1. Sensör Okuması: Su sensörü üzerindeki paralel iletken hatlar, su ile temas ettiğinde direnç değişimi yaşar. Suyun seviyesi arttıkça iletkenlik artar ve S pininden daha yüksek bir analog voltaj çıkışı elde edilir (0 - 1023 arası değer).
  • 2. I2C Haberleşmesi: Standart 16x2 LCD ekranlar 16 pin gerektirirken, I2C sürücü kartı sayesinde sadece 2 haberleşme pini (SDA ve SCL) kullanılarak kontrol sağlanır.
  • 3. Veri Gösterimi: Arduino, A0 pininden okuduğu analog ham değeri işleyerek LCD ekranın satırlarında anlık sayısal veri ve su durumu olarak gösterir.

Örnek Arduino Kodu

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// I2C adresi genellikle 0x27 veya 0x3F olur. (16 sutun, 2 satir)
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int suSensorPin = A0; 
int sensorDegeri = 0;       

void setup() {
  lcd.init();              
  lcd.backlight();         
  
  lcd.setCursor(0, 0);
  lcd.print("Su Seviye Sensori");
  lcd.setCursor(0, 1);
  lcd.print("Baslatiliyor...");
  delay(2000);
  lcd.clear();
}

void loop() {
  sensorDegeri = analogRead(suSensorPin); 
  
  lcd.setCursor(0, 0);
  lcd.print("Su Degeri: ");
  lcd.print(sensorDegeri);
  lcd.print("    "); 
  
  lcd.setCursor(0, 1);
  if (sensorDegeri < 100) {
    lcd.print("Durum: Kuru    ");
  } else if (sensorDegeri >= 100 && sensorDegeri < 400) {
    lcd.print("Durum: Dusuk   ");
  } else {
    lcd.print("Durum: Yuksek  ");
  }
  
  delay(500); 
}
Not: Seviye tespiti yapacağınız suyun içeriğine göre değerlerde değişim olabilir. Uzun vadede sensörde korozyon oluşabilir. Korozyonun etkisini en aza indirmek için sensör beslemesini sadece ölçüm yapılacağı zaman aktif etmek işe yarayabilir. Bunlara dikkat ederek projenizi hazırlarsanız daha verimli sonuçlar elde edersiniz.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1