0
Bu yazıyı " < 1 " dakikadan kısa bir zamanda okuyabilirsiniz. 🙂

Bu yazıda, Arduino ile HC-SR04 mesafe sensörü ve 16×2 karakter LCD ekranı I2C modülü ile kullanarak mesafe ölçümlerini ekranda görüntüleyeceğiz.

Gerekli Malzemeler:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • HC-SR04 mesafe sensörü
  • 16×2 karakter LCD ekran (HD44780 uyumlu)
  • I2C LCD adaptör modülü (örneğin, PCF8574)
  • Breadboard
  • Jumper kablolar

Devre Kurulumu:

  1. Mesafe Sensörü Bağlantıları:
    • Sensörün VCC pinini Arduino’nun 5V pinine bağlayın.
    • Sensörün GND pinini Arduino’nun GND pinine bağlayın.
    • Sensörün Trig pinini Arduino’nun dijital pinlerinden birine bağlayın (örneğin, pin 8).
    • Sensörün Echo pinini Arduino’nun dijital pinlerinden birine bağlayın (örneğin, pin 9).
  2. LCD Ekran ve I2C Modülü Bağlantısı:
    • I2C modülünü LCD ekranın arkasındaki pinlere takın.
  3. Arduino Bağlantıları:
    • I2C modülünün VCC pinini Arduino’nun 5V pinine bağlayın.
    • I2C modülünün GND pinini Arduino’nun GND pinine bağlayın.
    • I2C modülünün SDA pinini Arduino’nun SDA pinine bağlayın (Uno’da A4, Mega’da 20).
    • I2C modülünün SCL pinini Arduino’nun SCL pinine bağlayın (Uno’da A5, Mega’da 21).
  4. Devre Şeması:
ArduinoI2C ModülüLCD EkranMesafe Sensörü
GNDGNDVSSGND
5VVCCVDDVCC
A4SDA(I2C)
A5SCL(I2C)
Pin 8Trig
Pin 9Echo

Kodlama:

  1. Kütüphane Kurulumu:
    • Arduino IDE’sinde “Araçlar” > “Kütüphane Yöneticisi” yolunu izleyin.
    • “LiquidCrystal_I2C” arayın ve uygun bir kütüphaneyi yükleyin (örneğin, “LiquidCrystal I2C by Frank de Brabander”).
  2. Kod Yazma:
    • Aşağıdaki kodu Arduino IDE’ye yazın:
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// I2C LCD adresini ayarlayın (genellikle 0x27 veya 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2);

#define echoPin 9  // Echo pin tanımı
#define trigPin 8  // Trigger pin tanımı

long duration; // Ses dalgasının gidiş-dönüş süresi
int distance;  // Hesaplanan mesafe (cm)

void setup() {
  lcd.init();   // LCD ekranı başlat
  lcd.backlight(); // Arka ışığı aç
  pinMode(trigPin, OUTPUT); // Trigger pinini çıkış olarak ayarla
  pinMode(echoPin, INPUT);  // Echo pinini giriş olarak ayarla
  Serial.begin(9600); // Seri haberleşmeyi başlat (debug için)
}

void loop() {
  // Mesafe ölçümü yap
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2; // Mesafeyi cm cinsinden hesapla

  // Mesafeyi LCD ekrana yazdır
  lcd.clear();          // Ekranı temizle
  lcd.setCursor(0, 0);  // İmleci ilk satırın başına getir
  lcd.print("Mesafe:");
  lcd.setCursor(0, 1);  // İmleci ikinci satırın başına getir
  lcd.print(distance);
  lcd.print(" cm");

  Serial.print("Mesafe: ");
  Serial.print(distance);
  Serial.println(" cm"); // Mesafeyi seri monitöre yazdır (debug için)

  delay(500); // 500 ms bekle
}

Kod Açıklaması:

  1. Kütüphaneleri Dahil Etme: Wire.h ve LiquidCrystal_I2C.h kütüphanelerini dahil ediyoruz.
  2. LCD Nesnesi Oluşturma: LiquidCrystal_I2C sınıfından lcd adında bir nesne oluşturuyoruz ve I2C adresini, sütun ve satır sayısını belirtiyoruz.
  3. Pin Tanımları: echoPin ve trigPin değişkenlerini mesafe sensörünün pinlerine atıyoruz.
  4. setup() Fonksiyonu:
    • LCD ekranı başlatıyoruz ve arka ışığını açıyoruz.
    • trigPin ve echoPin pinlerini çıkış ve giriş olarak ayarlıyoruz.
    • Seri haberleşmeyi 9600 baud hızında başlatıyoruz (hata ayıklama için).
  5. loop() Fonksiyonu:
    • Mesafe Ölçümü:
      • trigPin üzerinden ultrasonik darbe gönderiyoruz.
      • echoPin üzerinden yankılanan darbenin süresini ölçüyoruz.
      • Mesafeyi cm cinsinden hesaplıyoruz.
    • LCD Ekran Güncelleme:
      • LCD ekranını temizliyoruz.
      • İmleci ilk satıra getirip “Mesafe:” yazıyoruz.
      • İmleci ikinci satıra getirip ölçülen mesafeyi cm cinsinden yazdırıyoruz.
    • Seri Monitör Çıktısı: Mesafeyi seri monitöre yazdırıyoruz (hata ayıklama için).
    • 500 ms bekleme süresi ekliyoruz.

Ek Açıklamalar:

  • Kütüphaneler: LiquidCrystal_I2C kütüphanesi I2C LCD ekranını kontrol etmek için kullanılır.
  • Pin Tanımlamaları: Mesafe sensörünün Trig ve Echo pinleri ile I2C LCD modülünün adresi tanımlanır.
  • LCD Başlatma: lcd.init() fonksiyonu LCD’yi başlatır ve lcd.backlight() fonksiyonu arka ışığı açar.
  • Mesafe Ölçümü: pulseIn() fonksiyonu ile Echo pinindeki yüksek sinyal süresi ölçülür ve mesafe hesaplanır.
  • LCD Görüntüleme: lcd.clear() fonksiyonu ekranı temizler, lcd.setCursor() fonksiyonu imlecin konumunu ayarlar ve lcd.print() fonksiyonu metni ekrana yazar.

Sonuç:

Bu projede, Arduino ile HC-SR04 mesafe sensörü ve I2C LCD ekranını kullanarak mesafe ölçümlerini ekranda nasıl görüntüleyeceğinizi öğrendiniz. Bu projeyi daha da geliştirebilir ve alarm sistemleri, robotik uygulamalar veya otomatik kapı sistemleri gibi projelerde kullanabilirsiniz.

Ahmet Kemal YILDIZ
Eskişehir Osmangazi Üniversitesi Bilgisayar ve Öğretim Teknolojileri Öğretmenliği mezunu bir Bilişim Teknolojileri ve Yazılım Dersi Öğretmeniyim. Bilişim Teknolojileri ve Yazılım dersi ile ilgili ders etkinlikleri, kaynak materyaller, örnek etkinlikler ve ilgi duyduğum birçok konu hakkında vakit buldukça buradan blogluyorum. :)

    13# – Arduino ile LCD Ekran Kullanımı (I2C Modülü ile)

    önceki yazı

    15# – Arduino ile Motor Kontrolü (DC Motorlar)

    Sonraki Yazı

    Bu Yazılar da İlgini Çekebilir!

    Yorumlar

    Yorum yap

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Daha Arduino