MCU tabanlı 8 kanallı Dimmer mantığı ?

Başlatan gtekdemir, 04 Kasım 2012, 17:45:48

gtekdemir

Merhaba,

MCU tabanlı 8 kanal dimmer yapmaya çalışıyorum, şöyle bir kontrol olsun istiyorum; master olan bir mcu diğer dimmer kontrolörü olan mcu' ya uart üzerinden birkaç byte büyüklüğünde parlaklık bilgisi gönderecek ve bu bilgiye göre çıkışlar dimlenecek. Zero cross detect ile fazın sıfır olduğu anı algılayıp triyak tetikleme açısını değiştirerek tek kanalı kontrol ediyorum bunda bir sorun yok fakat tek mcu ile 8 kanal kontrol etmek istediğimde istenilen zamanlamayı sağlayamadım. Özelikle 8 kanalında parlaklık ayarları birbirine çok yakın olduğu zaman yoğun bir kesme trafiği olduğu için lambalarda kırpışmalar olur diye düşünüyorum.
Sizce nasıl bir algoritma kurmalıyım ki sağlıklı bir çalışma sağlansın.

Teşekkürler.

z

ARM işlemcilerle ilgli örnek programlarda 8 kanal pwm uygulması vermiştim. (Linki bulursun)

Mantık aynı.

Pwm frekansını 50Hz seçersen duty degerine göre pals süreleri değişir. Sen dutylerden bağımsız olarak timer ile int rutinine gireceğin için bahsettiğin kırpışmalar olmaz.

Verdiğim örneği incele. Mantığı değiştirirsen bahsettiğin sorunla karşılaşırsın.

Örnek programa ilave olarak  sadece zero cross ile timerı senkronlatacaksın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

MC_Skywalker

NXP nin bu konuda ARM Cortex M0 MCU ları için örnekleri mevcut.

gtekdemir

Alıntı yapılan: z - 04 Kasım 2012, 17:58:08
ARM işlemcilerle ilgli örnek programlarda 8 kanal pwm uygulması vermiştim. (Linki bulursun)

Mantık aynı.

Pwm frekansını 50Hz seçersen duty degerine göre pals süreleri değişir. Sen dutylerden bağımsız olarak timer ile int rutinine gireceğin için bahsettiğin kırpışmalar olmaz.

Verdiğim örneği incele. Mantığı değiştirirsen bahsettiğin sorunla karşılaşırsın.

Örnek programa ilave olarak  sadece zero cross ile timerı senkronlatacaksın.

Hocam dediğiniz gibi duty' den bağımsız olarak  200us'de bir interrupta girerek bu işi çözdüm, istenirse çıkış sayısı 8 değil daha fazla olabilir. 200us için lambanın parlaklık çözünürlüğü 50 kademe oldu (10ms/200us) ve bu değer yumuşak bir parlaklık geçişi için yeterli seviyede. 200us yerine daha kısa sürede kesmeye girerek daha yumuşak bir geçiş sağlanabilir fakat gerek yok çünkü yaptığım denemelerde göz ile algılamanın mümkün olmadığını gördüm. Teşekkürler.