Elektronik şafak simülatörü

 Bir mikrodenetleyici Eric Wilhelm onların saatler de tam şafak simülatörü yükleyebilir. Günün belirli saatlerinde cihaz parlaklık kodu ile ayarlanır, farklı tonları parlıyor.

Elektronik şafak simülatörü

Elektronik şafak simülatörü

Elektronik şafak simülatörü

 Adım 1: Işık
 Zaten bir elektronik mağazasından satın alınabilir tür cihazlar, orada hazır olduğunu bir sır değil. Tüm proje aynı adı şirketlerin resmi web sitesinde satın alınabilir elektronik saat markası Soleil Alarm bağlıdır.
 Ne çeşitli online mağazalarında diğer elektronik öğeler almadan yapmak.
 Adım 2: Bileşenler
  1.  Mikrodenetleyiciler Atmel ATMEGA8-16PI (aniden yanık eğer iyi birkaç satın almak).
     Optocoupler 4N35.
     Mavi LED Kutu.
     kontrolör 5 md.
     Dirençler 1 ohm ve 470 ohm.
     Elveda.
    [Ol]

    Elektronik şafak simülatörü

     Adım 3: izle
     Bu veri portu ile geliyor 0-5 W kontrolör 300 sinyalini okur.

    Elektronik şafak simülatörü

    Elektronik şafak simülatörü

    Elektronik şafak simülatörü

     Adım 4: LED
     Eğer harici bir transistör ekleme hakkında düşünüyorsanız, o zaman düşük parlaklık ile çalıştırabilirsiniz.
     Bu nedenle 130 Hz frekansında sabit ışık tutmak için 16 bit iyi bir PWM sinyali oluşturmak için bir mikro satın almak daha iyidir.
    Elektronik şafak simülatörü

     Adım 5: Fonksiyon
     PWM sinyali doğrusal değildir. Bizim saat 44 ayrı adımlardır. Buna göre, biz üstel fonksiyonu oluşturabiliriz:
     f (x) A (1-exp ((Bx + D), x + C)) =.
    Elektronik şafak simülatörü

    Elektronik şafak simülatörü

    Elektronik şafak simülatörü

     Adım 6: Zincir
     Düzeni tarafından sağlanan elektrik zincir koymak.
     Adım 7: Mikrokontrolör
     Biz WinAVR ve AVR Studio ile mikrodenetleyici kodunu derlemek gerekir.
    Elektronik şafak simülatörü

     Adım 8: Teller
     Programcı gelen teller, 1 Temmuz (VCC), 8 (GND) için işaretçilerine AMEGA8 171 819 20 (AVC), 21 (Aref) ve 22 (GND).
     Adım 9: Programı
     Bu durumda, mikro doğrusal olmayan bir PWM filtre görevi görür. Program başlangıç ​​saati, kontrol LED'ler ve çıkış PWM sinyalinin seviyesini hesaplar.
     Eric William kodu kendi yorumlarla aşağıda gösterildiği.
     Atmel Atmega8 için Soleil Güneş AlarmWritten ve avr-gccEric J. WilhelmSquid Labs, LLCAttribution-ShareAlike 2.5You ücretsiz kullanım için sönük [Spoiler] / * LED mikrodenetleyici: *, kopyalama, dağıtma ekran, ve çalışma * gerçekleştirmek için Türev worksUnder aşağıdaki koşulları olun: Attribution tarafından. Yazar veya licensor.Noncommercial tarafından belirtilen şekilde Esere. Sen Benzer ticari purposes.Share için bu işi kullanamazsınız. Eğer değiştirmeniz, dönüştürmeniz ya da bu eseri inşa halinde, sadece bu bir özdeş bir lisans altında ortaya çıkan eser dağıtabilirsiniz. * Herhangi bir yeniden dağıtım için, bu çalışmanın lisans haklarını açık yapmalısınız. Eğer telif hakkı sahibinin izni alırsanız * Bu koşullardan herhangi feragat edilebilir * / # #include #include #include #include # OC1 PB1 # DDROC DDRB # OCR OCR1Avolatile uint16_t XTimer tanımla tanımlamak dahil;. Uçucu uint16_t TIMER0; uçucu uint8_t durumu; SİNYAL (SIG_OVERFLOW0) {Timer0 ++; TCNT0 = 96; .. Zamanlayıcı 96 ile Preload // kesmeler, bu tanım olmadan düzgün çalışmaz} // saate kenar PWM sinyali (yükselen kenar Düşen // {} Bu kesme her 20 bizi meydana SİNYALİ (SIG_OVERFLOW1) yapmak için; nedeniyle ters optoizolatörüdür) SİNYAL (SIG_INTERRUPT1) için {// Sıfır Timer0 pozitif darbe Timer0 = 0 uzunluğunu saymak; Durum = 1;} // yükselen kenar PWM sinyali (saate düşen kenar, optoizolatör nedeniyle ters) SİNYAL (SIG_INTERRUPT0) {// XTimer olumlu pwm sinyalinin uzunluğunu kayıt // Timer0 (yaklaşık 263 büyükse darbe kaçırılan 20 bize kesme başına) eğer (timer00; ben--) {x (i) = x (i-1);} x (0) = XTimer; y = 0; için (i = 0; i 0; ben--) {t (i) = t (i-1);} // ne yapılacağını belirlemek durumunda (Timer0 & gt; 270 && durum == == 1 && 1) { t ışık açın // (0) = 0; = 1;} else (Timer0 & gt; 270 && durum == 0) {eğer kapatma ışığı açın // t (0) = 65535; XTimer = 0; = 0 üzerine; else if (timer065535) t (0) = 65535; if (t (0) 270 ama PWM üzerinde olumlu bir darbe var // bu saatin PWM oldukça else if doğru frekansta açık değil bir gündoğumu başından sırasında olur (Timer0 & gt; 270 && durumu = = 1) {if (++ == 5 oncounter) {= 1; // etrafında u atlamak değil bu yüzden çıkış = 0 ortalama (i = 0; i<100;i++) {="" u="u+t(i);" }="" change="" the="" output="" pwm="" ocr="u/100;" }="" return="" (0);}="">
    Elektronik şafak simülatörü

    Elektronik şafak simülatörü

     Adım 10: Kablo
     2 tam kabloyu doğaçlama fiş ve kablo kullanılması.
     Adım 11: Tak
     LED saati ile boks bağlayın.