Arduino ile LCD Ekranlı Mesafe Sensörü

👤 Yazar: ozcan 📅 Tarih: 09.07.2026 07:05 👁️ Görüntüleme: 37

Arduino ile Mesafe Sensörü (HC-SR04) Verilerini I2C LCD Ekrana Yazdırma (Özel Pinli)

Önceki rehberlerimizde HC-SR04 mesafe sensörünü ve I2C LCD ekranı ayrı ayrı nasıl kullanacağımızı öğrenmiştik. Bu rehberde ise bu iki popüler bileşeni, Trig=2, Echo=3 ve SDA=18, SCL=19 özel pin konfigürasyonunu kullanarak bir araya getiriyoruz. Sensörden aldığımız anlık mesafe verilerini, doğrudan 16x2 I2C LCD ekranımız üzerinde santimetre (cm) cinsinden görüntüleyeceğiz.

Gerekli Malzemeler

  • Arduino (Mega, Leonardo gibi pin 18/19 I2C destekli modeller veya Uno)
  • HC-SR04 Ultrasonik Mesafe Sensörü
  • I2C Modüllü 16x2 LCD Ekran
  • Jumper Kablolar

1. Devre Bağlantı Şeması

Bağlantılarınızı yaparken aşağıdaki güncel pin tablosunu referans alabilirsiniz:

Bileşen ve Pini Arduino Pini
HC-SR04 VCC ve LCD VCC 5V (Breadboard yardımıyla ortak)
HC-SR04 GND ve LCD GND GND (Breadboard yardımıyla ortak)
HC-SR04 Trig Pin 2
HC-SR04 Echo Pin 3
LCD SDA Pin 18 (SDA)
LCD SCL Pin 19 (SCL)

Önemli Donanım Notu: Arduino Mega kullanıyorsanız 18 (TX1) ve 19 (RX1) pinleri dijital pinlerdir; donanımsal I2C pinleri ise Mega'da 20 ve 21'dir. Eğer sisteminizde donanımsal olarak 18 ve 19. pinleri I2C (SDA/SCL) olarak kullanmak istiyorsanız Arduino Leonardo kullanabilir ya da standart kartlarda yazılımsal I2C (Software I2C) kütüphanelerinden yararlanabilirsiniz.

Arduino uno i2c lcd ve ultrasonik sensör


2. Güncel Arduino Kod Blokları

Aşağıdaki kodu doğrudan kopyalayıp Arduino editörünüze yapıştırabilirsiniz. Pin tanımlamaları istekleriniz doğrultusunda güncellenmiştir.

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

// I2C LCD ekran nesnesini tanımlıyoruz (Adres: 0x27, 16 Sütun, 2 Satır)
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Güncellenmiş Yeni Sensör Pinleri
const int trigPin = 2;
const int echoPin = 3;

long sure;
int mesafe;

void setup() {
  // Sensör pin ayarları
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  // LCD ekranı başlatma ve hazırlama
  lcd.init();
  lcd.backlight();
  
  // Ekrana sabit olan başlık yazısını yazdırıyoruz
  lcd.setCursor(0, 0);
  lcd.print("Anlik Mesafe:");
}

void loop() {
  // HC-SR04 ile mesafe ölçümü yapılıyor
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  sure = pulseIn(echoPin, HIGH);
  mesafe = sure * 0.034 / 2;
  
  // Eski değerlerin ekranda kalmaması için ikinci satırı temizleme taktiği
  lcd.setCursor(0, 1);
  lcd.print("                "); // 16 adet boşluk bırakarak satırı temizliyoruz
  
  // Yeni mesafe değerini ekrana yazdırma
  lcd.setCursor(0, 1);
  lcd.print(mesafe);
  lcd.print(" cm");
  
  delay(300); // Ekranın sürekli kırpışmaması için 300 milisaniye bekleme
}

Sık Yapılan Pin Hataları

Projeniz çalışmazsa, HC-SR04 sensörünün tetikleme kablosunun gerçekten 2 numaralı pine, yankı kablosunun ise 3 numaralı pine takılı olduğundan emin olun. Kod içerisindeki zamanlama hesaplamaları bu pin senkronizasyonuna göre yapılmaktadır.

💬 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