📅 12 Nisan 2026, Pazar
📚 Ders Kitapları ✉ İletişim
@ydiner.gen.tr İlköğretim & Lise Düzeyi Kaynak Site "Bilgi paylaştıkça çoğalır"
🏠 Ana Sayfa
  • 🧊 3D Tasarım
  • Animasyon
  • ⚡ Arduino
  • 📌 Genel
  • 🎨 Grafik
  • Pardus
  • 💻 Programlama
  • Robotik ve Kodlama
  • 🗄️ SQL
  • 🌐 Web Tasarım
  • 🤖 Yapay Zeka
  • Arduino

    Akıllı Güvenlik ve Aydınlatma Sistemi

    Bu senaryoda:

    LDR: Hava karardığında (ışık azaldığında) LCD’de “Iyi Geceler” yazacak.

    PIR: Hareket algıladığında Servo motoru (kapıyı) 90 derece açacak ve LCD’de “HOSGELDINIZ” yazacak.

    #include <Wire.h> 
    #include <LiquidCrystal_I2C.h>
    #include <Servo.h>
    
    // Tanımlamalar
    LiquidCrystal_I2C lcd(0x27, 16, 2); 
    Servo kapıServosu;
    int pirPin = 2;    // Dijital Pin
    int ldrPin = A0;   // Analog Pin
    int hareketDurumu = 0;
    int isikDegeri = 0;
    
    void setup() {
      lcd.init();                      // LCD'yi başlat
      lcd.backlight();                 // Arka ışığı aç
      kapıServosu.attach(9);           // Servoyu 9. pine bağla
      pinMode(pirPin, INPUT);          // PIR giriş olarak ayarlandı
      kapıServosu.write(0);            // Başlangıçta kapı kapalı (0 derece)
    }
    
    void loop() {
      hareketDurumu = digitalRead(pirPin);
      isikDegeri = analogRead(ldrPin);
    
      lcd.clear(); // Ekranı her döngüde temizle (veya değişim olduğunda)
    
      // 1. Durum: Hareket Algılanması
      if (hareketDurumu == HIGH) {
        kapıServosu.write(90);         // Kapıyı aç
        lcd.setCursor(0, 0);
        lcd.print("HOSGELDINIZ");
        delay(2000);                   // 2 saniye bekle
      } else {
        kapıServosu.write(0);          // Kapıyı kapat
      }
    
      // 2. Durum: Işık Seviyesi Kontrolü (LDR)
      lcd.setCursor(0, 1);
      if (isikDegeri < 400) {          // Eşik değeri (karanlık)
        lcd.print("Gece Modu: ACIK");
      } else {
        lcd.print("Gunduz Modu");
      }
    
      delay(500); // Sensör okuması için kısa bekleme
    }
    
    
    

    LDR Değeri: “LDR 500’den küçükse” gibi bir şart varsa, if (isikDegeri < 500) kısmını ona göre güncellemelisin. LCD Adresi: Eğer kod çalışmazsa sınıftaki LCD'nin adresi 0x27 yerine 0x3F olabilir. Servo Kütüphanesi: kod yazarken #include satırını unutmak en sık yapılan hatadır.

    I2C Pinleri: LCD’nin SDA ve SCL pinlerini Arduino’da doğru yerlere (genelde A4 ve A5) takman gerektiğini hatırla.