www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 
Sponsored by SiOL

CC/CV način polnjenja - software za arduino

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
malci
Član
Član



Pridružen-a: Sob 15 Sep 2007 21:05
Prispevkov: 554
Aktiv.: 3.76
Kraj: Polhov Gradec

PrispevekObjavljeno: Tor Feb 06, 2018 10:49 pm    Naslov sporočila:  CC/CV način polnjenja - software za arduino Odgovori s citatom

Moji polnilci sedaj delujejo, a z zelo grobo regulacijo, ker sem brez ideje, kako napisati optimalneje kodo za arduino.
Hardwersko imam narejeno tako, da z spremembo PWM-ja spreminjam analogni izhod, kateri potem regulira izhodno napetost in posledično tok MeanWell polnilca.

Program pa ima sedaj narejen tako, da imam 3 stopnje PWM-ja (ok, lahko jih imam tudi 10, a bo program ( z mojim znanjem)dolg in še vedno ne bo linearna regulacija), in ko na bateriji napetost naraste na določeno vrednost, pač povečam PWM za eno stopnjo (npr iz 100 na 115) (zmanjšam analogni izhod) in stem se tok polnilca zmanjša.

Vprašanje: Kako izračunati potrebno vrednost PWM-ja, da bo izhodni tok čim linearen v CC načinu in in da bo v CV načinu napetost stabilna?

Za CC se mi sanja, da bi moral začeti z visoko vrednostjo PWM-ja, jo potem po 1 zmanjševati in vmes gledati izhodni tok. Ko bi le ta bil presežen, bi PWM povečal za eno in potem vsakih nekaj sekund poskusil spet zmanjšati, če tok ne bi presegel nastavljeno vrednost, bi še zmanjševal, sicer bi se vrnil....

Za CV pa...? Prosim za ideje oz. namig



Koda:
//***********************   kontrola MW PWM-ja *************************************
// ko je adc0< od Umax-40 je Uout 100 (st1). ko je adc0 < od Umax-20 je Uout 115 (st2), ko je adc0 < Umax-10 je Uout 120,
// ko je adc0 >=umax je  Uout=150( stop polnjenje, lahko tudi MWPower =false(0))

int st1=100; //stopnja 1 za zmanjšanje Uout   
int st2=115; //stopnja 2 za zmanjšanje Uout   
int st3=120; //stopnja 3 za zmanjšanje Uout   


      if (adc0<(Umax-40)){
            Uout=st1;
      }else if (adc0<(Umax-20)){
            Uout=st2;
      }
      else if (adc0<(Umax-10)){
            Uout=st3;
      }else{
        Uout=150;   // preneha se polnjenje
      }

 }  // konec if stavka od delay_sec pogoja
}  // konec voida

_________________
Elektronika za hobi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Peter123
Član
Član



Pridružen-a: Tor 13 Jan 2009 15:34
Prispevkov: 1166
Aktiv.: 8.90
Kraj: Lj.

PrispevekObjavljeno: Sre Feb 07, 2018 8:02 am    Naslov sporočila:   Odgovori s citatom

Predlog:
Prvo začneš dvigovati napetost.
Po vsakem dvigu napetosti po cca 0,1s ali podobno preveriš ali je tok prekoračil nastavljeno vrednost.
Če je tok prekoračil maksimalno vrednost znižaš napetost in s tem tudi tok.
Če toka ni presegel potem višaš napetost dokler ne dosežeš maksimalne željene.

Vedno je prvi pogoj ali je dosegel tok, in drugi ali je napetost že na max.
Torej najbolje dvojna if stavka lahko v enem ali eno za drugo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 174 dni


Powered by phpBB © 2001, 2005 phpBB Group