K

PWM ile Dimmmer Nasıl Yapılır.

Başlatan kurtelektronik, 15 Ekim 2011, 10:41:40

Mucit23

C bildikten sonra kullanırsın. Temin etmek artık okadarda zor değil
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Mucit23

Ete hocam, Programcılık adına fikriniz almak istediğim bir konu var.

Bir Proje için AC Kıyıcı yapmam gerekiyor.

Şebekenin 0 noktasını yakaladığımı varsayın. Tam sıfır noktasında RB0 kesmesi oluşuyor diyelim. İşin mantığını biliyorum. RB0 kesmesinden sonra şebeke frekansı 50Hz olduğu için 0-10ms gecekmeli olarak triyak'a puls göndermek gerekiyor. Verilen gecikmeyle ters orantılı olacak şekilde çıkış değeri artıp azalır. Buraya kadar sıkıntı yok. Normalde şu dakika yapsaydım aynı işi RB0 kesmesinde bir flag'ı set edip main programında flag'ın durumuna göre gecikmeli olarak triyak'a puls gönderirdim.

Ben bu periyodik olarak ve aksatılmadan yapalması gereken işlemin kullanacağım MCU'nun kendisinin yapmasını istiyorum. Main programında ben kendi işime gücüme bakayım.

Aklımda 16F886 kullanmak var. 8 Mhz Dahili OSC ile çalıştırmayı düşünüyorum.

Bu işi nasıl yapacağımı kestiremedim. Timer'ler ile felan yapmayı düşünüyorum ama gecikme nasıl ayarlanacak, timer gecikmesi sonunda nasıl puls verilecek, RB0 kesmesi ile nasıl ilişkilendiririm timer'i bu konular kafamı karıştırdı.

Aynı anda timer ile display tarama durumumda var.

Normade STM32 ler ile bu işi yapmak çok ama çok kolay. Bakmadım ama belki hiç kesme bile oluşturmadan %100 donanımla yapılabilir. Biraz kolaya alıştık herhalde

Fikriniz varmı?
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

#32
Pek çok ac dimmer yaptım. Hemen her türlü yoluda denedim diyebilirim bu konuda ama inan bana gecikmeyi ikinci bir timer ile vermenin hiç bir espirisi yok. Ben yinede nasıl yapılacağını anlatmaya çalışayım. Süre ayarını ana program kısmında ya bir pot ile ya buton ile bir şekilde yapacaksın.
Süre aralığın her nekadar 0-10 ms olsada gerçekte bu  komut gecikmeleri nedeni ile 0-8800 us gibi bir aralıkta oluyor. Gecikemyi ikinci bir itmer ile verince belki değerin artması yönünde artış olabilir.
Öncelikle ayarlanan süre nin timer1 sayacına parametre olarak verilmesi yapılmalıdır.
Gecikme maksimum değerini 9000 us alalım. Bu değeri 65535 den çıkartırsak 65536-9000=56536 gibi bir değer buluruz. O halde timer1 sayacı bu değerle 65535 arasında bir değer alacak demektir. (TMR1 bu değerden saymaya başlayacak taşma oluncada kesme oluşturacaktır. 4 Mhz için bu hesabı yaptım 8 M hz için 9000 yerine 18000 alman gerekir.
(65536-18000+7=47543 Burada 7 sayısını ekliyoruz çünkikomut gecikmelerinde dolayı biraz zaten gecikme oluyor. Dolayısıyla onlara karşı bir ön değer eklemiş oluyoruz)
Ayarlamayı ne ile yapacağını söylememişsin. Butonla yapılacak ise zaten işin kolay. Süre azaldıkça parlaklık artacak çoğaldıkça parlaklık azalacaktır. O galde hesabını (18000- süre) olarak yaparsan süre arttıkça parlaklık artar azaldıkça azalır.
Bundan sonrası iki kesmeyi bir arada çalıştırmaya kalıyor. B0 kesmesi olunca timer aktif olup ayarlanan değeri alacak ve saymaya başlayacak, tmr1 kesmesi oluşuncada triac ateşlenip 10-15 us beklenip yeniden sıfırlanacak ve tmr1 kesmesi kapatılacaktır. Hepsi bu.

Aşağıda bir uygulamamdan aldığımkesme bölümünü veriyorum,
DISABLE
KESME:                     'KESME OLUŞUNCA PROGRAM BURAYA GELİR
      IF PIR1.0=1 THEN  '!TMR1 KESMESİ MEYDANA GELMİŞ İSE
         TRIAK=1
         PAUSEUS 10
         TRIAK=0
         PIR1.0=0 'TMR1 KESME BAYRAK SIFIRLANDI
         PIE1=0   'TMR1 KESMESİ KAPALI
         GOTO CIK
       ENDIF
       TEMP=65529-GECIKME
       TMR1L=TEMP.BYTE0
       TMR1H=TEMP.BYTE1
       PIE1=1  'TMR1 KESMESİ AÇILDI GECİKME SAYMAYA BAŞLADI
       INTCON.1=0  'RB0 KESME BAYRAĞI SIFIRLANDI
CIK:
      Resume              'geldiğin yere dön.
    Enable              'kesmeler yeniden aktif.
End

Ana değeri 65535 yerine 65529 almışım sanırım uygulamada bu sayıyı deyerek bulmuşum. Bana kalırsa sen 65535-SURE+8 olarak kullan bu hesabı gerekirse yada aksaklıkolursa deneyerek bir değer tespit edebilirsin.
Ete

Mucit23

Anladım hocam. Cevabınız için teşekkürler.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Elzemefe

TCA785 entegresinin 11 nolu pini0-12 volt arası değiştiğinde  dim yapıyor
şayet biraz nazlı bir entegre ama devre  oluştuğu zaman güzel çalışıyor
3 faz ısıtıcı kontrol devresi yaptım 1kw lık lamba sürdüm  par64 gibi gayet  güzel
çalıştı dimmer konusunda biraz daha profosyonel olmak  istenirse  ideal olur

gokhan1325

Merhabalar,
Ben bu devreyi yapmak istiyorum. Devrenin sistemini anlamaya çalışıyorum. Birkaç soru var kafama takılan yardımcı olursanız sevinirim. Birincisi pic 16f628a yerinde daha az pinli 12f675 kullanmam sorun yaratır mı? İkincisi,  köprü diyottan çıkan çıkışı tekini neden iki katlı yükselteç ile yükseltip timera veriyoruz. Saygılarımla

ete

628 yerine 12F675 kullanılması sorun yaratmaz ama 16F628 de önemi bir özellik var ki HPWM özelliği. Geri planda PWM üretebilmektedir. 12F675 de bu özellik yok maalesef. BU nedenle yazılım yolu ile PWM üretmek zorunda kalırsınki buda kolay değil. Ama 12F683 kullanırsan olur zira bu işlemcide donanımsal PWM özelliği mevcut.

Köprü diyot çıkışından bir sinyal alıp bunun seviyesini iki transistörle düzelttikten sonra 555'in trigger ucuna veriyoruz ki sıfırr geçişlerde bizim PWM sinyalimizle şebeke senkron içinde çalışsın.

Ete

gokhan1325

Teşekkür ederim. Çalışmalarınızda başarılar dilerim. Saygılarımla

gokhan1325

Ete Hocam, Bahsettiğiniz ır kontrollü pwm ile dimmer devresi yapmayı düşünüyordum ki sayfanızda kesme kullanarak dimmer yapılabileceğine dair bir yazınızı okudum. Kesmeler kullanıldığında daha az komponent kullanılıyor. Sizce kesme ile ir kontrollü dimmer yapmak pwm ile yapmaktan çok daha iyi mi? İyi derken kastettiğim ekonomik(daha az ) malzeme kullanımı, daha sağlıklı lamba kontrolü açısından söylüyorum. Cevaplarsanız sevinirim. Saygılarımla. Teşekkür ederim herşey için.

ete

En az malzeme ile yapılacak dimmer, kesme sıfır noktası yakalayarak yapılan dimmerdir.
Ancak sıfır noktası yakalama işinin türlü çeşidi var. Kimisi tek dirençle yapıyor kimisi opamp ile kimisi transistör ile.
İşin bu kısmı çeşit arzediyor. Lambanın sürülmesi değişmiyor MOC3021 , 1 triac bir kaç direnç hepsi bu. Kimiside optro triac (MOC3021 ) bile kullanmıyor direk sürüyor triacı. Ancak şebeke tehlikelidir ve ana devreden izole edilmesi her zaman faydalıdır. İzole işinide MOC yapar. Tercih sana kalmış. Önce işi kademe kademe düşünmek lazım. Birinci kademede sıfır geçiş yakalama sistemlerini araştır. Gerekirse deneme yap. Sonra triac sürme sistemlerini araştır. Sonunda da dimmeri nasıl çalıştıracağına karar ver ve onu araştır. Hepsi bu.

Ete

gokhan1325

Merhabalar
internette ekteki dimmer devresini buldum. Bu devreyi kuracağım. Anlamadığım bir husus var yardımcı olursanız sevinirim. Devredeki GP2'ye bağlanan 1Mohm direnç'in ne işe yarıyor. Neden o direnci kullanıyoruz? Saygılarımla

onurinci

AC 'yi kıyacağı için sıfır geçişini yakalama ihtiyacı var,onuda GP2 ile ölçüp doğru zamanda kıyıyor..

gokhan1325

Yardımcı olduğunuz için teşekkür ederim.

Powered by EzPortal