>>> 10 Kanal - Pic Kontrollü Dimmer

Başlatan peko, 06 Eylül 2004, 14:14:01

peko

Tek bir pic kullanarak 10 kanaldan her kanalın dim seviyesini farklı seviyelerde olmasını nasıl sağlayabiliriz. ? ( equalizer kanalları gibi.. )

Kolay gelsin.
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

ete

@Peko,

Biraz kafa yorunca aşağıda açıklanan sistemi düşündüm. Tabiiki bazı varsayımlarım olacak Bunlar sırası ile;
- Dimmer seviyesi bir pot ile ayarlanacak
- 10 adet dimmerden hangisinin ayarlanacağı bir buton (+ ve -) çifti vasıtası ile seçilecek.
- Bu iş için en uygun PIC 16F877 veya 16F876 olabilir.

Sistem kısaca şöyle ;
- AN0 (analog0) girişine bir pot bağlıyorsun ve 10 bit değerini ADC olarak okuyorsun.
- A portunun kalan uçlarından mümkün olanları Digital yapıp buraya 4 adet LED bağlıyorsun.
-PortB.0 dan 220V AC voltajın sıfır geçiş noktasını yakalamak üzere bir devre kurup programda bir interrupt açıyorsun.
B portunun  diğer herhangi bir 2 ucuna bir Artırma Butonu birde eksiltme butonu takıyorsun. Bu butonlar hangi kanalın dimmer seviyesinin ayarlanacığını seçecekler. Yani Buton (+) bastıkça kanal=kanal+1, Buton(-) bastıkça Kanal=Kanal-1 yapacak. Tabiiki limitleri kontrol altında tutacaksın.
- POrt C nin tamamını ve Port D nin ilk iki bitini kanal çıkışı olarak kullanacaksın.
Bu çıkışlar 470 Ohm dirençle olacak ve bu uca MOC 3021 OptoTriac bağlayacaksın (l470 ohm lede girecek) ledin diğer ucu şasede olacak. Bu sistemden 10 adet port uçlarına bağlanacak.
Opto Triac çıkışını başka güçlü bir Triac'a uygun şekilde bağlacak ve lambanıda bağlayarak sistemi çalıştıracaksın.

İşin Programlanmasına gelince:
Sinüs voltajı sıfır geçiş noktasından sonra Triac tetikleme için sana 10ms lik bir süre vermektedir. Bu sürenin bir kısmını tetiksiz bir kısmını tetikli geçirdiğin sürece lambada dimmer olayını yaratabilirsin. Bunun için gecikme olarak Mikrosaniye kullan ve toplam değeri yaklaşık 9600-9700 ms. kabul et. (10000 den kalan Fark programdan gelen gecikme olacak).Yani bu kadar gecikme verirsen lamba off konumunda olacaktır.
Önce birinci kanalı seç (butonlar ile seçimi şimdilik bağladığın ledlerden takip edebilirsin). Sonra pot değerini istenilen bir seviyeye ayarla
Elde edilen okuma değeri potun max. değerinde 9600 min değerinde de 0 verecek şekilde bir hesap mantığı geliştir.  (örneğin (ADCdeğer/9) gibi.
Bu değeri Süre(0.Kanal)=sayı olarak eşitle. Her kanal değiştirdiğinde Süre değişkeni indexi de kanal olarak değişirse sonuçta 10 adet değişik süren olur ve her kanal ayrı bir dimmer seviyesine ayarlanmış olur.

Gelelim İnterrupt rutini ve tetiklemenin ayarlanması;
Sıfır geçiş anında B0 daki interrupt girişi çalışarak programı tetik bölümüne taşır.
Burada, önce 10 adet kanalın triac çıkışlarının tetikleri kapatılır. sonra hesaplanan gecikmeleri kadar bekletilip tekrar tetikleri açılır.
Böylece sistem 10 (16 adede kadar bu sistem çalıştırılabilir). adet kanalı ayrı ayrı dimmerlemiş olur.
Tabiiki bu bir teorik düşünce. Ancak eminimki çalışır. Diğer ustalardan bu konuda hatam var ise yorum beklerim.


Program konusunda yardımcı olurum. Şayet illa gerekli ve yapılması zorunlu bir sistem ise.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

arif

Merhabalar,
Öncelikle endüstriyel bir ürün yapmak istiyorsan şunu bilmende fayda var piyasada ışık sistemlerinde kullanılan dimmerler genelde 0-10V DC gerilimle kontrol edilirler. Yani dimmer hangi marka olursa olsun 0-10V arası bir gerilim değeri uyguladığında ışık parlaklığı değişir.
Bu şekilde tasarlanmış birçok dimmer devresi bulabilirsin. Pic kısmı ve dimmer kısmını ayrı düşünmelisin bence.
Asıl iş olayın ikinci kısmı yani pic kısmı.
Bunun için pic yardımı ile her kanal için analog birer çıkışa ihtiyacın var.
Bunun için 10 adet shif register, 10 adet DAC, yeterli. Shift registerleri kaskat bağlayıp her shift register outputlarına ise birer dac bağlayabilirsin.
Her DAC cıkış voltajını böylelikle 0-255 kademe ile ayarlayabilirsin.
Yada DAC kısmını direnclerlede yapabilirsin. R-2R yöntemi ile.
Böylelikle pic'in 3 pinini kullanarak 10 kanal dimmeri kumanda edebilirsin.
Picin diğer pinlerinide kanal secimi kanal ayarlama ve display işleri için kullanabilirsin.
Kolay gelsin.
Elimde daha önce yaptığım benzeri bir sisteme ait şema var ancak buraya koyamıyorum şimdilik. E-mailini verirsen yollarım.

555


Fazla zahmet olmasın ayrıyeten bu da kullanlablr:

peko

" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

mhk

Sevgili Peko. Yukardaki şemada kullanılan moc 3041 zero crossing ( 0 geçişi algılamalı ) tip. Yani sen tetiklemeyi verdiğinde optotriyak sinyalin 0 geçişini gördükten sonra triyağı tetikler. Bu endüktif yüklerde yükün şebeke sinyalinin max noktada tetiklenmesini engelleyerek triyağın yanmasını engeller. Eğer dimmer yapmak istiyorsan yine benzer bağlantı ile moc3021 serisi optotriyak kullanmalısın. Burda yapman gereken , şebeke sinyalinin 0 geçişini algılatıp belirli bir zaman gecikmesi ( Bu 50 Hz lik şebekede max 10 ms olur ) sonunda istediğin yerde triyağı tetikleyip dimmer gerçekleştirmiş olursun.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana