Arduino

Arduino Hareket Sensörü Buzzer LCD Ekran ile Alarm Sistemi Projesi

Aykut AKMAN 7 ay önce Yorumlar (0) 5 Dakika Okuma
Arduino Hareket Sensörü Buzzer LCD Ekran ile Alarm Sistemi Projesi
E-Posta : 1.2k 0

Bu proje, PIR hareket sensörü kullanarak hareket algılandığında bir kırmızı LED’in yanmasını, bir buzzerın sesli uyarı vermesini ve LCD ekranında mesaj görüntülenmesini sağlar. Hareket olmadığında ise yeşil LED yanarak sistemin normal durumda olduğu belirtilir.

Gerekli Malzemeler

  • 1 x Arduino Uno
  • 1 x PIR hareket sensörü
  • 1 x Kırmızı LED
  • 1 x Yeşil LED
  • 2 x 220 Ohm direnç
  • 1 x Buzzer
  • 1 x 16x2 LCD ekran (I2C modülü ile)
  • Bağlantı kabloları ve breadboard

Devre Bağlantıları

arduino-hareket-sensörü-ile-led-buzzer-lcd-ekran-alarm-sistemi-devre-seması

PIR Hareket Sensörü

  • VCC → Arduino 5V
  • GND → Arduino GND
  • OUT → Arduino Dijital Pin 2

LED Bağlantıları

Kırmızı LED

  • Uzun bacak (anod) → Arduino Dijital Pin 13
  • Kısa bacak (katod) → 220 Ohm direnç üzerinden GND

Yeşil LED

  • Uzun bacak (anod) → Arduino Dijital Pin 12
  • Kısa bacak (katod) → 220 Ohm direnç üzerinden GND

Buzzer Bağlantısı

  • "+" bacağı → Arduino Dijital Pin 3
  • "-" bacağı → Arduino GND

LCD Ekran (I2C Modülü ile)

  • SDA → Arduino A4
  • SCL → Arduino A5
  • VCC → Arduino 5V
  • GND → Arduino GND

Arduino Kodu

#include 
#include 

// LCD ekran tanımlama
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Pin tanımlamaları
const int pirPin = 2;       // PIR sensör pin
const int redLedPin = 13;   // Kırmızı LED pin
const int greenLedPin = 12; // Yeşil LED pin
const int buzzerPin = 3;    // Buzzer pin

void setup() {
  // Pin modlarını ayarla
  pinMode(pirPin, INPUT);
  pinMode(redLedPin, OUTPUT);
  pinMode(greenLedPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);

  // LCD ekran başlatma
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Hareket Algilama");

  // Seri iletişim başlatma
  Serial.begin(9600);
}

void loop() {
  int pirValue = digitalRead(pirPin); // PIR sensöründen değer oku

  if (pirValue == HIGH) {
    // Hareket algılandıysa işlemleri gerçekleştir
    digitalWrite(redLedPin, HIGH);    // Kırmızı LED yanar
    digitalWrite(greenLedPin, LOW);   // Yeşil LED söner
    digitalWrite(buzzerPin, HIGH);    // Buzzer çalışır

    // LCD ekrana mesaj yazdır
    lcd.setCursor(0, 1);
    lcd.print("Hareket Algilandi");

    // Seri monitöre yazdır
    Serial.println("Hareket algilandi!");

    delay(10000); // 10 saniye bekle

    // Hareket algılama işlemi biter
    digitalWrite(buzzerPin, LOW);     // Buzzer kapanır
  } else {
    // Hareket yoksa yeşil LED yanar, kırmızı LED ve buzzer kapalı
    digitalWrite(redLedPin, LOW);
    digitalWrite(greenLedPin, HIGH);
    digitalWrite(buzzerPin, LOW);

    // LCD ekrana mesaj yazdır
    lcd.setCursor(0, 1);
    lcd.print("Hareket Yok      ");

    // Seri monitöre yazdır
    Serial.println("Hareket yok!");
  }

  delay(100); // Kısa bir gecikme
}

Kod Açıklamaları

PIR Sensör Okuma

  • digitalRead(pirPin): PIR sensöründen gelen dijital sinyali okur. HIGH (1) ise hareket algılanmıştır, LOW (0) ise hareket yoktur.

LED ve Buzzer Kontrolü

  • Hareket algılandığında kırmızı LED yanar, yeşil LED söner ve buzzer aktif hale gelir.
  • Hareket olmadığında ise yeşil LED yanar, kırmızı LED ve buzzer kapalı kalır.

LCD Mesajı

  • Hareket algılandığında LCD'de "Hareket Algilandi" mesajı görüntülenir.
  • Hareket olmadığında ise "Hareket Yok" mesajı görüntülenir.

Delay Kullanımı

  • delay(10000): Hareket algılandıktan sonra 10 saniye boyunca kırmızı LED ve buzzer aktif kalır.

Proje Çalışma Prensibi

  1. Hareket Algılama: PIR sensörü, hareket algılandığında Arduino’ya bir sinyal gönderir. Kırmızı LED ve buzzer aktif hale gelir. Aynı zamanda LCD ekrana "Hareket Algilandi" mesajı yazdırılır.

  2. Hareket Yok: PIR sensörü hareket algılamadığında yeşil LED yanar ve LCD'de "Hareket Yok" mesajı gösterilir.

  3. Zamanlayıcı: Hareket algılandıktan sonra kırmızı LED ve buzzer 10 saniye boyunca açık kalır, ardından kapatılır.

Projenin çalışan örneğini görmek için tıklayınız.

Ekstra İpuçları

  • Buzzer Ton Değişimi: Hareket durumuna göre farklı tonlarda sesler çıkarabilirsiniz.

  • Mesafe Algılama ile Kombinasyon: Hareket sensörü ile birlikte mesafe ölçümü yaparak daha karmaşık sistemler geliştirebilirsiniz.

Bu proje, temel robotik ve sensör sistemlerini anlamak için mükemmel bir başlangıçtır. Projeyi geliştirmek için farklı sensörler veya cihazlar ekleyebilirsiniz.

Sıkça Sorulan Sorular

Arduino ile hareket sensörü kullanmak için bir PIR sensör bağlanır. Sensörün çıkış pini Arduino'nun dijital bir pinine bağlanır. Sensör hareket algıladığında, Arduino bu durumu okuyarak bir LED veya buzzer gibi cihazları kontrol edebilir.

PIR sensörü hareket algıladığında, Arduino dijital bir pin üzerinden LED'i yakabilir. Kırmızı LED hareket olduğunda, yeşil LED hareket olmadığında yanabilir.

Arduino'da bir buzzer pini tanımlanır ve PIR sensörünün HIGH sinyal verdiği durumda digitalWrite(buzzerPin, HIGH); komutu ile buzzer aktif hale getirilir.

PIR sensörlerinin üzerinde bulunan iki ayar vidası ile hassasiyet (sensitivite) ve algılama mesafesi manuel olarak ayarlanabilir. Bu ayarları yaparak sensörün daha doğru çalışmasını sağlayabilirsiniz.

Kodda bir kontrol yapısı eklenir: Eğer PIR sensöründen gelen değer LOW ise yeşil LED yanar; HIGH ise kırmızı LED yanar.

delay() fonksiyonu ile belirli bir süre boyunca LED veya buzzer gibi cihazların aktif kalması sağlanabilir. Örneğin, delay(10000); komutu ile bir cihaz 10 saniye boyunca aktif tutulabilir.

LCD ekran Arduino'ya bağlanır ve PIR sensörü hareket algıladığında lcd.print("Hareket Algılandı"); komutu kullanılarak ekrana mesaj yazdırılabilir.

Evet, PIR sensörleri kullanarak hareket algılayan bir robot yapabilirsiniz. Sensörlerden gelen veriler motor sürücülere iletilerek robotun hareketi yönlendirilebilir.

PIR sensörler mesafe ölçemez, yalnızca hareket algılar. Mesafe ölçmek için ultrasonik sensörler gibi başka sensörler kullanmanız gerekir.

PIR sensörler düşük enerji tüketimine sahiptir ve genellikle 50-60 µA civarında akım çeker. Bu nedenle bataryalı projelerde rahatlıkla kullanılabilir.

Aykut AKMAN

Aykut AKMAN

Bilişim Öğretmeni

Bu Gönderiye Yorum Yapılmamış

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlendi.

Diğer Yazılar