guclusat

Tanınmış Üye
Süper Moderatör
Bir fotodirenç üzerine düşen bir ışık huzmesinin (kısa huzmeli fardan, park veya fren lambasından gelen) tespit edilmesi prensibiyle çalışır. Makinenin şematik diyagramı Şekil 2'de gösterilmektedir. 1.
1732296267905.webp
Şekil. 1. Aydınlatma decresinin şematik diyagramı

ATtiny13 mikrodenetleyicisi devrenin tüm fonksiyonlarından sorumludur. Her 4 ms'de bir foto direnç ve P1 ve P2 potansiyometreleri arasındaki voltaj değerini okur. P1 aktivasyon eşiğini belirler ve P2 aktivasyon süresinin ayarlanmasından sorumludur.

Foto direnç yanmıyorsa ve üzerindeki voltaj kaydırıcı P1'den yüksekse, çıkış devre dışı kalır. Aksi takdirde yük bir triyak aracılığıyla açılır. Burada galvanik izolasyon için bir optotriyak kullanılıyor.

Açma süresi bir saniyelik artışlarla 10 saniyeden 18 dakikaya kadar ayarlanabilir. Açılma süresini belirlemek için kullanılan potansiyometre P2'nin ayarı geri sayım sırasında sürekli olarak kontrol edilir, böylece ayarlamalar kolaylıkla yapılabilir. Ayarlanan süre geri sayıldıktan sonra devre yükü kapatır ve koşulsuz olarak 3 saniye bekler. Bu gecikme gereklidir çünkü garajı aydınlatan ışıklar devreyi harekete geçirecek ve onları asla kapatmayacaktır.

Anahtarlama devresi, devre kartı Şekil 2'de gösterilen tek taraflı bir baskılı devre kartı üzerine monte edilmiştir. 2.
1732296349331.webp
şekil. 2. Devrenin baskılı devre kartı
Fotodirenç kabloları FR işaretli terminallere lehimlenmelidir. Aydınlatılabilmesi için fotorezistörün kendisi araba farlarının karşısına yerleştirilmelidir. Fotorezistörün türü isteğe bağlıdır, ancak parametreleri GL5537 prototipinde kullanılanlara benzer olmalıdır:

- karanlıkta direnç 2 MOhm,
- aydınlatıldığında direnç 10 lüks: 20...50 kOhm,
- aydınlatıldığında direnç 100 lüks: 4...10 kOhm.

Prototipte kullanılan triyak, 8 A'dan fazla olmayan ancak yaklaşık olarak 8 A'nın üzerinde bir akım tüketen yükleri açmanıza olanak tanır. Isı emiciye 0,5 A triyak takılması tavsiye edilir. Ayrıca 3 A'yı aşan akımlarda, triyak ile ilişkili baskılı devre kartı izlerinin kalınlaştırılması tavsiye edilir.

Gerçekleştirilecek ayar adımları basittir: Doğru bağlantıdan sonra P1 potansiyometresini yarıya ve P2'yi minimuma ayarlayın. İlk olarak P1, optimum hassasiyeti seçecek şekilde ayarlanır. Kaydırıcıyı "MAX" etiketli yöne çevirmek hassasiyeti azaltır, bu da çalışmak için daha güçlü bir aydınlatmaya ihtiyaç duyulacağı anlamına gelir. Etkinleştirme eşiği tatmin edici olduğunda aydınlatma süresi uzatılabilir.

Baskılı devre kartı üzerindeki tüm elemanlar elektrik şebekesine galvanik olarak bağlı olduğundan, bu cihazı çalıştırırken ve çalıştırırken güvenlik kurallarına kesinlikle uyulmalıdır.

Cihazın genel görünümü:
1732296468729.webp
 

Eklentiler

ATTINY13 Akıllı Lamba Kontrolü (Açık Kod)

Bu kod; LDR'den gelen ışık bilgisini ve potansiyometrelerden gelen ayarları okuyarak, gece olduğunda lambayı belirlediğin süre boyunca yakar.
Kod:
/*
 * Uydudoktoru - ATTINY13 Akıllı Lamba Kontrol Yazılımı
 * Donanım: ATTINY13, LDR, Triac (BT137)
 */

#define TRIAC_PIN PB0   // Pin 5: MOC3063 Tetikleme
#define LDR_PIN   A3    // Pin 2: LDR Işık Sensörü (ADC3)
#define LEVEL_POT A2    // Pin 3: Eşik Ayar Potu (ADC2)
#define TIME_POT  A1    // Pin 7: Zaman Ayar Potu (ADC1)

void setup() {
  pinMode(TRIAC_PIN, OUTPUT);
  digitalWrite(TRIAC_PIN, LOW); // Başlangıçta lamba kapalı
}

void loop() {
  int ldrValue = analogRead(LDR_PIN);     // Ortam ışığını oku
  int threshold = analogRead(LEVEL_POT);  // Kullanıcı eşik ayarını oku
  int timeSetting = analogRead(TIME_POT); // Zaman süresini oku

  // Eğer ortam, kullanıcının belirlediği eşikten daha karanlıksa
  if (ldrValue < threshold) {
    
    // Lambayı yak (Triyak tetikle)
    digitalWrite(TRIAC_PIN, HIGH);
    
    // Zaman ayar potuna göre bekleme süresi (Örn: 1sn ile 10dk arası)
    // map fonksiyonu ile ADC değerini (0-1023) milisaniyeye çeviriyoruz
    long delayTime = map(timeSetting, 0, 1023, 1000, 600000);
    delay(delayTime);
    
    // Süre bitince lambayı söndür
    digitalWrite(TRIAC_PIN, LOW);
    
    // Gereksiz tetiklemeyi önlemek için kısa bir bekleme
    delay(2000);
  }
 
  delay(100); // Kararlı okuma için kısa bekleme
}

Kodun Teknik Analizi ve Çalışma Mantığı

  1. Işık Algılama (LDR): Kod, ADC3 pininden gelen voltajı okur. Hava karardığında LDR'nin direnci artar ve işlemciye giden voltaj düşer.
  2. Eşik Ayarı (LEVEL): <span>P1</span> potansiyometresi, lambanın hangi karanlık seviyesinde yanacağını belirleyen bir "kıyaslama voltajı" oluşturur.
  3. Zamanlama (TIME): P2 potansiyometresi, map fonksiyonu ile okunur. En düşük seviyede lamba 1 saniye, en yüksek seviyede ise yaklaşık 10 dakika (600.000 ms) açık kalır.
  4. Güvenli Anahtarlama: Çıkış pini (PB0), MOC3063 opto-kuplörünü sürer. Bu parça, sıfır geçiş (zero-crossing) özelliği sayesinde şebeke gürültüsü yaratmadan BT137 triyakını ateşler.
 
hazırladığımız bu açık kodu ATTINY13'e yüklemek için en pratik yol Arduino IDE yazılımını bir "arayüz" olarak, bir Arduino Uno'yu veya USBASP cihazını ise "programlayıcı" olarak kullanmaktır.
İşte adım adım derleme ve yükleme rehberi:

1. Hazırlık: Arduino IDE'ye ATTINY13 Desteği Ekleme

Arduino IDE normalde ATTINY serisini tanımaz. Önce bu desteği eklemeliyiz:
  • Arduino IDE'yi açın: Dosya > Tercihler yolunu izleyin.
  • "Ek Devre Kartları Yöneticisi URL'leri" kısmına şu adresi yapıştırın:
    https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
  • Araçlar > Kart > Kart Yöneticisi kısmına girip "MicroCore" yazarak aratın ve kurun.

2. Arduino Uno'yu Programlayıcıya Dönüştürme (ISP Yöntemi)

Eğer elinde özel bir programlayıcı yoksa, bir Arduino Uno'yu bu iş için kullanabilirsin:
  • Arduino Uno'yu bilgisayara bağla.
  • Dosya > Örnekler > ArduinoISP kodunu aç ve Uno'ya yükle.
  • Artık Uno bir "ISP Programlayıcı" oldu.

3. Donanım Bağlantıları (Pin Eşleştirme)

Arduino Uno ile ATTINY13 arasındaki bağlantıları şu şekilde yapmalısın:

Arduino Uno PinATTINY13 PinGörev
5VPin 8 (VCC)Besleme
GNDPin 4 (GND)Şase
10Pin 1 (Reset)Reset
11Pin 5 (MOSI)Veri Girişi
12Pin 6 (MISO)Veri Çıkışı
13Pin 7 (SCK)Saat Sinyali

4. Derleme ve Yükleme Ayarları

Kodun hatasız derlenmesi için Araçlar menüsünden şu ayarları seç:
  • Board: ATtiny13
  • BOD: 2.7V (veya 4.3V)
  • Clock: 1.2 MHz Internal (veya 9.6 MHz)
  • Programmer: "Arduino as ISP"
Önemli Adım: İlk kez yükleme yapıyorsan önce "Önyükleyiciyi Yak" (Burn Bootloader) seçeneğine tıkla. Bu işlem, işlemcinin çalışma hızını (Fuse bitlerini) ayarlar.

5. Kodu Gönderme

  • Yazdığımız açık kodu yeni bir sayfaya yapıştır.
  • Sol üstteki Kontrol Et (Tik) butonuna basarak derle.
  • Hata yoksa, Taslak > Programlayıcıyı Kullanarak Yükle (veya Ctrl+Shift+U) diyerek kodu gönder.

Usta Notu: Hata Alırsanız Ne Yapmalı?

Usta, yükleme sırasında "Target not responding" hatası alırsan, Arduino Uno'nun Reset ve GND pinleri arasına 10µF bir kondansatör takman gerekebilir (Artı ucu Reset'e gelecek şekilde). Bu, Uno'nun kodu yüklerken kendini resetlemesini engeller.
 
Geri
Yukarı