Ö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.
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.

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
}
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.
Henüz yorum yapılmamış. İlk yorumu siz yapın!