AC fanı pwm kontrolü bu kadar zormu?

Başlatan alikorkmaz_88, 06 Haziran 2007, 12:59:40

CaFFeiNe

Alıntı yapılan: "alikorkmaz_88"her döngüde 20 ms oluşturmuşsun çok sağol yeni bir soru periyotu 20 ms olması gerek
demek istediğini anlayamadım, bu şekilde AC fanı MOC3021 ile sürsen istediğin gerçekleşmeyecekmi?

Alıntı yapılan: "alikorkmaz_88"ana programda yapmam gereken işler var. bunun içinde bir interput oluşurmu ?
void main(void)
{
  ...
  ...
  while(TRUE)
  {
    ...
    ...
    istedigin işleri burada yaptırabilirsin
    kesme yordamı bağımsız olarak çalışmaya devam eder
    ...
    ...
  }
}

alikorkmaz_88

anlamadım nokta ac fanlar 50 hzdir yani bunu yavaşlatmak için hz düşürmek gerekmezmi? motoru yarı yarı yavaşlatmak için 25 hz lik pwm oluşturmam gerekmezmi ? 50 hz 20 ms dir yani periyotun 20 ms olması gerekir verdiğin programda  periyot 1 sn motor çok dur kalk yapar tahminimce .

CaFFeiNe

haklısın dur-kalk yapacak zaten :)
yalnız periyodu birkaç yüz Hz yada birkaç KHz olan pwm'e göre dur-kalk olayı yüzlerce kez az olacak :)

önemli olan sonuçtur

benim gönderdiğim örnek işini görürmü görmezmi?
dur-kalk esnasında fanın devri sıfıra düşmeden yeni bir pals gelecek ve tam devrine ulaşamadanda pals kesilecek böylece palsin süresine göre ortalama bir devir elde edeceksin
en kolay böyle olur kanımca

daha profesyonel birşey istiyorsan önceki mesajlarda belirtildiği gibi AC 50Hz kaynağını bir opto vs. ile pice girip sıfır geçişlerinde kesme oluşturup alternansları kıyarak yaparsın

alikorkmaz_88

set timer verdin 131 neye göre verdin periyotu 1 sn oldu için çok fazla dur kalk yapıyor motor yavaşlıyor ama bu periyotu 100 ms indirebilirisek olumlu sonuç alabiliriz sanıyorum

CaFFeiNe



işaretli değerleri 50 yaparsan pwm periyodu 100ms olur ve duty çözünürlüğünde %10 olur (50/5)

set_timer0(131); verdim çünkü;

çalışma frekansı 4Mhz ( #use delay(clock=4000000) )
prescaler 1/16 ( setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16) )
saniyede istediğimiz kesme adedi 500 ise;

4.000.000 / 4 / 16 / 500 = 125
TMR0 registerini hangi değer ile yüklersek 125 sayımdan sonra taşar?

256 - 125 = 131

alikorkmaz_88

bu şekilde hallettim periyotu illaki 20 ms indirmek gerekiyor yoksa motor çok fazla dur kalk yapıyor

#include <16F628.h>
#use     delay(clock=4000000)

#define  UP   PIN_a0
#define  DOWN PIN_a1
#define  LED  PIN_b3

long  x = 0;
long  duty = 0;
long  dutytemp = 0;
short pwmstart = 0;

#int_timer0
void Timer0_Int(void)
{
   set_timer0(131); // saniyede 500 kesme üretir
   x++;
   if(x > 10)
   {
     x = 0;
     pwmstart = 1;
     dutytemp = duty;
   }
   if(pwmstart && dutytemp > 0)
   {
     output_high(LED);
     if(--dutytemp == 0)
     {
       output_low(LED);
       pwmstart = 0;
     }  
   }
}
  
void main(void)
{ 
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);
set_tris_a(255);
set_tris_b(255);
output_low(LED);
while(TRUE)
   {
     if(input(UP)==0)
     {
       if(duty <= 10)
       {
         duty += 1;

       }  
     }
     if(input(DOWN)==0)
     {
       if(duty >= 1)
       {
         duty -= 1;

       }

     }
     delay_ms(200);
   }
}

buda devre şeması


bi sorum daha olucak bu yöntem güvenlimidir motora bi zarar verirmi ?

çok sağol #CaFFeiNe hocam hakkın nası ödenir bilmem büyük bi dertden kurtardın.

alikorkmaz_88

olmadı beyler teoride oldu iş denemeye gelince olmadı normal ev vantilatorunde calışmıstı başta ama iş gercek fana yani 4 kutuplu monofae 0.78kw fana geline olmadı yavas devirlerde kalkmadı yuksekte kaldırıp yavaslatıncada 2 katı amper cekti yani timerle ayarlamak bi işe yaramıyo o boşluklar fana yuk olarak donuyo işi anca PWM ile yapmak gerek oda ben basaramıyorum saygılar sizde başaramadınız

CaFFeiNe



fan motoru deyince ben yukarıdaki gibi bir AC fan algıladım şimdi söylediğine göre aşağıdakine benzer birşeyden bahsediyormuşsun meğer :)



ozaman benim sistemi unut :)

alikorkmaz_88

cafeine hoca ne yapcaz peki başaramıycazmı aynen alttaki resim diyelim ne diyosun bu imkansızmı adam yapmıs ufacık bişey biz neden başaramadık

M_B

Merhaba arkadas burda fan devir ayarı devrini illaki pic lemi yapmak istiyorsun.  Guclu Dimmer devresi ile kontrol edebilirsin diye dusunuyorum. Hic uygulama yapmadım.  Teorık olarak gozukuyor.

Birde adamların yaptıgı sıstemi bir incele belki bir fikir verebilir.
Nasıl bır sey kullanmıslar. surucu olarak ve nasıl kontrol edıyorlar.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

OG

Alıntı yapılan: "OG"Logan'a ilave, zor değil belkide imkansız. Üstelik fan motoru demişsin. 220V AC motorlarda hız kontrolu genelde asenkron motorlara yapılır, hatalıysam arkadaşlar düzeltsin, universal seri motorlar (matkap motoru gibi) hariç. Fan motoru yardımcı sargılı motor ise iş daha da zor. Küçük tipler genelde öyle oluyor.
Arkadaşım böyle söylemiştim. İlk önce motorun tipini öğrenmen gerekir. Her motora her uygulama imkansız.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

CaFFeiNe

@alikorkmaz_88
adamın yaptığı ufacık kartın bi resmini filan gönderme şansın varmı?
en azından üstündeki çip vs. malzemelere göre kontrol yöntemini tahmin edebilecek arkadaşlar çıkar zannedersem