16f877 ADC ve PWM

Başlatan slammer, 28 Nisan 2010, 02:36:11

slammer

herkese selamlar,

öncelikle herkese teşekkürler böyle 1 forum ve yardımlaşma ortamı için (:
benim herhangi bir pic ile ki benim aklıma 16f877 geldi, şu şekilde 1 uygulama yapmam gerek, görüşlerinizi almak istedim, 1 yıldan fazladır pic ile uğraşmadım o yüzden çok birşeyde hatırlamıyorum,
durum şu, denetleyicim, anaglok girişe göre pwm i değiştirecek, yani elimdeki dc-dc converterin çıkış voltajını sabit tutmam gerek ve kontrol olayını pic ile yapmam lazım. konverterim 12V çıkışlı olacak. devreyi şu şekilde ayarladık, çıkış gerilimine paralel yaptık böldük yani kısaca 12V çıkış aldığımızda bizim pic e gelecek voltaj 2.5 volt olacak ( değişik öneriler varmı ? :)
ve pic in yapacağı şey şu, gelen bu voltajı kontrol edecek, 2.5 voltun altında veya üstüne olması durumuna göre 100kHz lik pwm çıkışımızın duty cycle ını değiştirerek hep girişi hep 2.5 voltta tutmaya çalışacak, dolayısıyla çıkış 12V ta sabit kalacak. değişken yük durumlarında değişken gerilim düşümü yaşadığımız için böyle birşey lazım.
bu iş komperatör modülü ile de yapılabilir mi ?

aşağıda devre şemasını verdim :)




ozkancelebi

buna benzer bir uygulamayı bende proje olarak aldım lütfen bilen arkdaşlar bu konuda yardımcı olsunlar ki çalışmlarımızı sağlıklı bi şekilde yapabilelim..şimdiden teşekkürler...

Klein

Burada önemli olan şu!
Girişteki değişimin çıkışa ne kadar sürede yansıması senin için yeterli?
Eğer mikroişlemci hızı benim için yeterli ,  DC-DC çevirici çıkışım bir şekilde düşerse , ben çıkışı birkaç milisaniyede düzeltsem de sorun olmaz diyorsan  çok sorun değil. Dediğiniz gibi olur.

Ama yok o süreler uzun diyorsan ,  geribeslemeyi  mikroişlemci ile değil , doğrudan analog devre ile  yapman gerekir.

slammer

o kadar süre yeterli, yani mikroişlemci kullanmam lasım :) şöyle 1 kod ayarladım eksikleri mutlaka vardır, proteus ta denedim tam verim alamadım, yani voltaj çıktı 17 ye kadar üstelik açık devre, birde gerçekte denemem lazım, ne diyorsunuz bu konuda ? kodları inceleme imkanınız varmı ?


#include <16f877.h>
#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#define use_portb_lcd TRUE
#include <lcd.c>
#INT_AD               
void ADC_Kesmesi ( )
{
   output_high(pin_d0);  // RC5 çıkışı 1
   delay_ms(200);
   output_low(pin_d0);   // RC5 çıkışı 0
}

unsigned long int bilgi; 
float voltaj;            
int i=10; 
void main ( )
{
   setup_psp(PSP_DISABLED);  
   setup_timer_1(T1_DISABLED);
   

   setup_ccp1(CCP_PWM);  

   

   setup_adc(adc_clock_div_32);   
   setup_adc_ports(ALL_ANALOG);   
   enable_interrupts(INT_AD);     
   enable_interrupts(GLOBAL);     

   lcd_init();                    

 setup_timer_2(T2_DIV_BY_1,199,1);
 set_pwm1_duty(10); 

   while(1)  
   {
      set_adc_channel(0);  
      delay_us(20);        
      bilgi=read_adc();    

      voltaj=0.0048828125*bilgi;
      
      
      printf(lcd_putc,"\fDijital=%lu",bilgi);
      printf(lcd_putc,"\nVoltaj=%fV",voltaj);
      delay_ms(1000);
if (voltaj<2.2)
{
i=i+1;
set_pwm1_duty(i);
}
else if (voltaj>2.5)
{
i=i-1;
set_pwm1_duty(i);      
}
  }
}


teknikelektronikci

ben mosfetli kismi pek saglikli bulmadim acikcasi veya niye böyle bir yöntem kullandiniz ?
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

slammer

aslında o şekli ben çizmedim ama ona benzer 1 tane kullanacağım, pic i direkt mosfete bağlamayacağım :) TC1413N mosfet driver aldım, araya onu katacağım, benim sorunum kodlarla, gönderdiğim kodlar hakkında ne diyorsunuz ? ayrıca hem pwm hem ADC hemde lcd yi aynı anda çalıştırmış oluyorum, picte bir yavaşlama söz konusu olur mu ?
birde kafama takıldı eğer çıkış gerilimini 2.5k lık dirençten ölçüyorum ama diyelim ki 1 aksilik oldu bu direncin üstüne 5V tan fazla gerilim düştü, bu durumda burası ADC ye bağlı olduğu için pic zarar görür ? yani ADC bile olsa onuna max sınırı 5V değil mi ? eğer öyleyse aşırı gerilimden pic i nasıl korurum ? mesela şöyle 1 devre işe yararmı ?


z

#6
Bu tip sorular bana duş almamı hatırlatır.

Şofben mutfakta, duş ise banyoda. Soyunur duşun altına girerim. Sıcak ve soğuk su musluklarını belli bir orana getirir ılıkk su elde ederim.
Başlarım duşumu almaya. Biraz sonra başlarım yanmaya. Sıcak musluğunu kısar yada soğuk su muslugunu açarım.
Biraz sonra da başlarım donmaya. Bir yanar bir donarım. Sistemi dengeye oturtuncaya kadar birilerine küfrederim.

Arada bir mutfak musluğunu açar aile fertleri. Bir küfür de onlar yer. Suçları neyse?

Slammer kaçıncı sınıfta okuyorsun?

Tencereye su koydunuz, başladınız kaynatmaya. Suyun sıcaklıgı 60 derece oldu ve ocağı kapadınız.
Suyun sıcaklığı bu andan itibaren derhal düşmeye başlarmı yoksa yükselmeye devam edermi?
 
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

slammer

2. sınıftayım  :D güç elektroniği ve mikroişlemci dersleri almamış birine göre yinede eksik mi kaldım ? :) sadece temel devre dersleri yeterli midir bu tür konular için ? yeterli değil değil mi ?

z

Universite 2 mi?

Normalde bu projeyi hakkiyla gerceklestirmek icin universite 4. sinif derslerini alman lazim. Ben yaptim oldu mantigindan gidersek okumaya bile gerek yok.
Pwm=pwm+1 yada tersi pwm=pwm-1 cok cok ozel katsayilarla integral almak demek. Bu mantikla yapilan kontrol %100 cuvallar.

Konu islemci yada guc elektronigi konusu değil tamamen digital sinyal isleme konusu. Islemci ve anahtarlama kismi isin hikaye tarafi.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

slammer

#9
evet üniversite 2 :D işte bir şekilde idare etmem lazım :D
dediğin gibi o yöntemle çuvalladım gibi birşey, hatta çuvallamışta olabilirim :D onun için işin o kısmını nasıl yapacağım bilemiyorum, devrenin o kısmını, yani pwm kısmını pic ile yapmalıyım, bu durumda devre üzerinde ne tür modifiyeler yapmam lazım ? algoritmamda ne tür değişiklikler yapmam gerek ? bu konularda yardıma ihtiyacım var, lütfen yardım edin :)

z

#10
2. Sinif ogrenicisi isen Pwm le oynamak yerine Hysteretic kontrol stratejisine bakmani oneririm.
Texas instrumensin sitesinde bu isin felsefesine ait detaylari bulabilirsin.

Kisaca ozeti soyle. Sabit Ton/Toff sureli darbelerle sistemi hareketlendir. Voltaj arzulanan degeri asti ise darbelerii kes. Arzulanan degerin altina indiyse darbeleri uygula.

Burara arzulanan degeri bir band icinde dusun ve bu bandin icinde kalmaya calis.

Sayisal sinyal isleme yapmadan en kolay boyle yapabilirsin. Yoksa 4. sinifi beklemen gerekecek.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ipek

Microchip'in uygulama notlarında AN701A vardı
birde japon sitesinde göz gezdirirken  buldum google dan lisan çevirisi yapıp matığını çıkarabilirsin.
http://einst.hp.infoseek.co.jp/DCDC2/DCDC2.html
buradaki uygulama step up gibi

OG

@slammer gayretini tebrik ederim.

Switch mode power kontrolunu pek tabiiki PIC ile yapabilirsin, ancak arkadaşların uyarısında olduğu gibi PIC den bu konuda çok birşey beklememek gerekir. Çünkü PIC'ın ölçüm yapması (ADC işlemleri) ve hatayı hesaplayıp gereken değişikliği yapması, yeni değeri sürmesi, sonucu tekrar kontrol etmesi, gerekiyorsa tekrar yeni değeri sürmesi uzun zaman alacaktır.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.