Şimdi Ara

buck-boost converter yüksek bobin akımı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
969
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Devre çalışıyor. duty'i yavaş yavaş arttırıyor. çıkışta belirli bir yere kadar düzgün gerilim alıyorum. bir noktadan sonra bobin üstündeki akım aşırı yükselmeye başlıyor. sebebi ne olabilir?


    şematik çizim
    buck-boost converter yüksek bobin akımı

    analog analiz
    buck-boost converter yüksek bobin akımı

    ARDUINO KODU

    [/code]

    //MK


    const int pot_pin = A0; //potansiyometreden okunan degerin pini
    const int feedback = A1; //cikistaki feedback'in 1/10 miktarindaki degeri
    int vout = 0; //vout'u tanimladik
    int vpot = 0; //vpot degerini tanimladik
    int duty = 1; //duty'i tanimladik
    int i=1; //i

    void setup() {
    cli(); // stop interrupts----- interrupt'lari durdurduk
    TCCR1A = 0xA2; //registerleri belirledik
    TCCR1B = 0x19; //registerleri belirledik
    TIMSK1 = 0x01 ; // overflow interrupt
    ICR1 = 249 ; // 31.25us cycle time, 32kHz PWM but 64kHz drive pulses (differential)----- frekansi ayarladik
    OCR1A = 125-100 ; // example U drive
    OCR1B = 125 ;
    GTCCR = 0x83 ; // clear and halt prescalers
    TCNT1 = 0xFFFF ; // synchronize counters exactly.
    GTCCR = 0x00 ; // allow prescalers to fly
    sei(); // allow interrupts-----interrut'lari tekrardan baslattik
    pinMode(pot_pin, INPUT);
    pinMode(feedback, INPUT);
    pinMode(9, OUTPUT);
    pinMode(10, OUTPUT);
    Serial.begin(9600);

    }

    ISR(TIMER1_OVF_vect){

    OCR1A=duty; //dutyi buradan ayarla bu kismi silebiliriz.
    OCR1B=249-duty;
    }



    void loop(){

    oku(); //potansiyometreden istenen gerilim ve cikistan alinan gerilimi okutuyoruz

    while(i==1){

    for(i=1;i<25;i++){
    duty=duty+1;
    delay(4);
    }
    }

    oku();

    if(vout < vpot){ //istenen gerilim cikis geriliminden buyuk ise calistirir--YUKSELTME

    while(vout<vpot){ //cikis pot geriliminden dusuk oldugunda duty'i yukseltmesi daha sonra tekrardan okumasini istiyoruz.

    duty=duty+1;
    dutybelirleme();
    delay(4+duty/10);

    oku();
    }
    }

    else if(vout > vpot){ //istenen gerilim cikis geriliminden kucuk ise calisir--DUSURME

    while(vout>vpot){ //cikis pot geriliminden yuksek oldugunda duty'i dusurmesi daha sonra tekrardan okumasini istiyoruz.


    duty=duty+1;
    dutybelirleme();
    delay(4+duty/10);
    oku();

    }
    }

    delay(10); //araya kucuk delay koyduk.

    }

    void dutybelirleme(){

    if(duty>225){
    duty=225; //duty'i sinirlandirdik.
    }
    else if(duty<25){
    duty=25; //duty'i sinirlandirdik.
    }
    }

    void oku(){

    vpot = analogRead(pot_pin); //pottan okunan degeri vpot'a atadik

    vout = analogRead(feedback ); //cikistan okunan degeri vout'a atadik

    if(vpot>780){ //pot degeri 4V'dan(cikistan alinan deger icin 40V'a tekabul ediyor) buyuk oldugunda 40V'a cekiyor.
    vpot=780;
    }

    }
    [code]



    < Bu mesaj bu kişi tarafından değiştirildi Frost 112 -- 22 Aralık 2018; 0:6:1 >



  • D1 ters sanki.
  • quote:

    Orijinalden alıntı: kukubara

    D1 ters sanki.
    buck boost topolojisinde öyle. neden ters dedin ki
  • quote:

    Orijinalden alıntı: kukubara

    Uygulamada biraz daha farklı gibi.

    https://www.elprocus.com/buck-boost-converter-circuit-theory-working-applications/
    orada gördüğünüz diyotun sağa doğru dönük olduğu devre sadece boost devresidir. Devrenin yerleşiminde sorun yok sadece arduino ile biraz daha kontrol edilmesi gözüküyor gibi. Güç elektroniği hakkında biraz araştırma yaparsanız buck, boost, buck-boost converter hakkında daha fazla bilgiye sahip olabilirsiniz. iyi günler.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.