Analog ve Dijital Dimmerleri inceleyelim.

Farkında olmasak da dimmerleri hayatımızın birçok noktasında kullanıyoruz.

Birkaç örnek verecek olursak çamaşır makinasının tambur hızını ayarlayan sistem, mutfak robotu, mikser, çırpıcı gibi araçların devir hızını ayarlayan sistem, aspiratör hızını ayarlayan sistem  olarak örnek verebiliriz.

Dimm etmeyi kısmak olarak tanımlayabiliriz.

Şimdi dimmerlerin nasıl çalıştığını anlamaya çalışalım.
Bilindiği gibi şehir şebekesi sinus dalga formundadır. Ülkelere göre voltaj, frekans değişse de dalga formu olarak sinus dalga formundadır.

Dimmer yapımında, sinus dalga formunun sıfır noktasını kestiği noktalardan  faydalanılır.
Çalışma sistemine göre dimmerleri ikiye ayırıp çalışma sistemlerini incelemeye başlayalım.

1) Analog dimmer:
Temel yapı itibariyle bir ayarlı direnç, kondansatör, diyak ve triyaktan oluşan bir sistemdir.

Google aramasında stalls.co sitesinde bulduğum dimmer devresi.


Çalışma sistemi olarak her bir alternansı inceleyelim. Alternansın pozitif kısmında C kondansatörü R direnci üzerinden şarj olur. C kondansatörü üzerindeki gerilim 33 volta ulaşınca diyak açılır ve üzerinden geçen akım triyakı tetikler. Triyak iletime geçer ve lamba enerjilenerek ışık vermeye başlar. Bu sırada triyak tetiklendiği için C kondansatörü R direnci üzerinden boşalmaya başlar.

Alternans sıfır noktasını geçip negatif kısmında aynı olay tekrarlanır ve triyak tekrar tetiklenerek bu alternansta da lambanın ışık vermesini sağlar.

Burada kısma işlemi nerede yapılıyor sorusunun cevabı: C kondansatörünün 33 volta kadar şarj olma süresidir.

C kondasötünün dolma süresi T=R x C olarak hesaplanır.
C farad, R Ohm birimindendir. Kondansatörün giriş geriliminin %63üne kadar dolma süresini verir.
Burada alternansın tepe değerinin 220 x 1,41 şeklinde hesaplarsak 314 değerini buluruz. 33 Voltta bu değerin yaklaşık %10'udur.

R direncinin değeri değiştirilerek C kondansatörünün 33 volta kadar şarj olma süresi değiştirilir ve böylece her alternansta belirli bir süre lambanın açık kalması sağlanır.

Yeri gelmişken açıklayalım Dimmer devreleri ile TV, CD-DVD player, SMPS  gibi cihazları kullanamazsınız. Dimmer devreleri ile en uygun olarak ısıtıcı gibi rezistif yükleri ve çok uygun olmasa da motorlar gibi endüktif yükleri kontrol edebilirsiniz. 

Lambanın üzerinde düşen zaman voltaj grafiğini inceleyelim.

(http://www.ecmweb.com web sitesinden yüklenmiştir.)

Buradaki mavi alan lambanın çalıştığı süredir. Eğer R direnci üzerinden C kondansatörünün dolma süresi uzarsa diyak ve triyak tetiklenmesi gecikecek ve mavi kısmın alanı azalacaktır. Bu da lambanın üzerinden akım geçme süresi azalacaktır. Bu da lambanın açık kalma süresini azaltacak ve parlaklığı azalacaktır. 


2) Dijital Dimmer:

Dijital dimmerde ise tetiklenme zamanı R ve C tarafından değil mikroişlemci tarafından  belirlenir. Tabi ki burada kondansatör direnç diyak üçlüsü olmadığı için alternans değişimini işlemciye hatırlatan bir devreye ihtiyacımız var. 

http://fidenetgaraj.blogspot.com/2018/06/zero-crossing-detector-sfr-noktas-gecis.html yazısında bahsetmiştik.

Devrenin çalışmasına bakacak olursak: Alternans geçişinde R5 direnci üzerindeki voltaj transistörü iletime geçirecek değere ulaşınca zincirleme olarak Q3 transistörü iletime geçer. Trg üzerindeki sinyal 0 seviyesine düşer. Bu da işlemciyi tetikler. 

Triyak devresinden bahsedecek olursak:

transistör, Triyak sürmek ve yalıtım sağlamak için MOC3021 ve Triyak var.
R direncine işlemci üzerinden voltaj uygulanınca led iletime geçer, triyak sürücü tetiklenir ve triyak tetiklenir. Yük enerjilenir.

Bu süreçte işlemci içinde olması gereken süreçleri ve kodları inceleyelim.

Sıfır Noktası Dedktörü (ZCD) tetik verince işlemci Alternansın sıfır noktasını geçtiği konusunda uyarılır. Bu noktada işlemci triyakı tetikleyeceği zaman için saymaya başlar. Bu sayma işlemi için timer kullanır. 

Küçük bir hesap yapalım.

Ülkemizde 220AC 50Hertz  gerilim kullanılmakta. 50Hz demek saniyede 50 defa hem pozitif hem negatif alternansı gördüğümüz anlamına gelir. Bu da 100 defa sıfır noktası geçişi anlamına gelir. 
Her alternansta dimm yapmak istediğimiz yüzde kadar bu süreyi bölmemiz gerekir. Her bir alternansı 100e bölecek olursak Timerımız her saniyede 100(saniyedeki geçiş) x 100(alternansdaki dimm maiktarımız) = 10.000 kadar sayması gerekir. 

Bunun için PIC mikroişlemci için 32Mhz de CCS C için 

setup_timer2(TMR_INTERNAL | TMR_DIV_BY_8, 199);  

ile ayarımız yapıyoruz.
Bu sayede Pic MCU saniyede 10.000 defa kesme oluşturuyor.

#INT_TIMER2
void  timer2_isr(void) 
{
  dimmCounter++;
  if (parentDimm==1)  //Eğer aprentDimm açık ise normal dimm yap yoksa triyakları kapat.
  {
      //triacları kontrol rutini
      //----------------- TRIAC1 ------------------------------------------
      if((dimm1Val>0)&&(enableDimm1==1)) //enable edilmediyse triac'ı açma
      {
         if((dimmCounter>dimm1Val)&&(dimmCounter<(dimm1Val+counterOnVal)))
         {
            hi_x(triac1);
         }
      }
      //triac'ı kapat
      if(dimmCounter>(dimm1Val+counterOnVal))
      {
         lo_x(triac1);
      }
     
     
      
  }
  else
  {
     lo_x(triac1);      //Eğer parentDimm kapalı ise triacları kapat
     lo_x(triac2);
  }
}

Burada timer kesmeye her girişinde dimmCounter değeri 1 artar.
dimm1Val  ve enableDimm değişkenlerinden sonra bahsedicem.

dimmCounter değeri dimm etmek istediğimiz değerden büyükse triyak açılır ve counterOnVal süresi kadar (burada 5 kesme) açık kal. Sonra kapat.

 if((dimmCounter>dimm1Val)&&(dimmCounter<(dimm1Val+counterOnVal)))
         {
            hi_x(triac1);
         }
      }
      //triac'ı kapat
      if(dimmCounter>(dimm1Val+counterOnVal))
      {
         lo_x(triac1);
      }

Buradaki dimm1Val değeri değiştirilerek triyakın açılma süresi değiştirilir. Bu da dimm değerinin değiştirilmesi anlamına gelir.  Burada alternans değişiminde bu işlemi tekrarlamak için ZCD tarafından tetiklenen bir external interrupt kullanılır.
#INT_EXT2
void  ext2_isr(void) 
{
   dimmCounter=0;
}

dimmCounter değeri sadece belirli aralıklarda açıldığı için bunu her alternansta sıfırlamak gerekir.

dimm1Val ve enableDimm değişkenleri zamanlama ayarını değiştirmeden triyakın açılmasını engellemek için tanımlanan değişkenlerdir. Bu değişkenlerin kullanılma sebebi işlemci Seri port gibi başka bir interrupta girildiği zaman triacın açık kalmasını engellemektir.

Motor kontrol ettiğinizi düşünün. Eğer triac açılır ve seri porttan uzun bir veri alınırsa veri alma işlemi bitene kadar motorunuz son sürat çalışmaya başlar bu da kontrolü kaybetmeniz anlamına gelir. Böyle bir durumdan kaçınmak için kontrol değişkenleri kullanmak zorundayız.

Faydalı oması umuduyla...