|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Brusli Član
Pridružen-a: Tor 24 Nov 2020 12:10 Prispevkov: 141 Aktiv.: 3.41 Kraj: Hrastnik
|
Objavljeno: Ned Okt 31, 2021 4:16 pm Naslov sporočila: Kako bi pogladil svetilnost LED pri PWM krmiljenju? |
|
|
Živjo.
Pri izdelavi svojega PWM krmilnika za LED razsvetljavo sem naletel na težavo. Imam LED verige s predupori, ki se napajajo preko enosmerne napetosti. Svetilnost teh ledik pa reguliram s pomočjo N-kanalnega mosfeta, ki mu na GATE terminal dovajam oglatovalovni signal. Ta signal se generira na 8-bitnem PWM krmilniku in je fiksne frekvence, lahko pa mu spreminjam vrednost duty-cycle od 0 do 255. S spreminjanjem duty-cycle stopnje reguliram kakšen delež periode oglatovalovnega signala so ledike prižgane oz. izklopljene (in posledično tudi njihovo svetilnost). Nižja kot je ta stopnja, manjša bo svetilnost ledik. V priponki je poenostavljena shema tega vezja.
Težava pa je sledeča. Ko svetilnost po korakih manjšam z nižanjem stopnje duty-cycle in eventualno prispem do vrednosti 1, bodo ledike še vedno svetile pre močno! Naslednja nižja vrednost pa je 0 in ta povzroči, da se ledice popolnoma izklopijo nakar dobim čisto temo. Se pravi, problem je, da je sprememba svetilnosti med stopnjo 0 in 1 pre velika. Žal tukaj ne morem uporabiti vmesne stopnje svetilnosti na 8-bitnem PWM krmilniku, saj je stopnja 1 od 255 najmanjša možna nastavitev, stopnja 0 pa je že tema. Pričakoval bi, da ledike pri stopnji 1 še morda ne svetijo, pri stopnji 2 svetijo očesu komaj opazno, pri 3 svetijo čisto malo, korak 4 svetijo malenkost bolje, itd, pri koraku 10 pa svetijo toliko, kot sedaj svetijo pri stopnji 1. Skratka spremembo svetilnosti med stopnjo 0 in 1 bi želel pogladiti oz. razširiti na 10 ali več korakov.
Ima kdo kakšno ideja kako bi se lotil tega?
Po možnosti brez zamenjave PWM krmilnika za drugega.
lp
Opis: |
|
Download |
Ime datoteke: |
krmiljenje.gif |
Velikost datoteke: |
3.73 KB |
Downloadano: |
20 krat |
|
|
Nazaj na vrh |
|
|
bostjang Član
Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 3172 Aktiv.: 14.25 Kraj: Postojna
|
Objavljeno: Ned Okt 31, 2021 6:41 pm Naslov sporočila: |
|
|
Uporabi več bitni PWM. Glede na nizko zahtevano frekvenco PWM in relativno visoko frekvenco ure mikrokrmilnika, je lahko precej več kot 256 stopenj. Tudi 8-bitni mikrokrmilniki imajo pogosto 16-bitni PWM.
|
|
Nazaj na vrh |
|
|
mosqito Član
Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3234 Aktiv.: 33.10
|
Objavljeno: Ned Okt 31, 2021 10:14 pm Naslov sporočila: |
|
|
Uporabiš lahko tudi SPI vodilo namesto PWM in na vsake 4 bajte pošlješ en bit na "1". Frekvenca PWM pri 32MHz SPI je tako lahko 1MHz. Še vedno pa lahko uporabiš 256korakov za LED, le da narediš malo bolj nelinearno karakteristiko. Priporočam pa uporabo DMA, da hardver dela sam brez CPU.
_________________ Always going the extra mile. |
|
Nazaj na vrh |
|
|
Brusli Član
Pridružen-a: Tor 24 Nov 2020 12:10 Prispevkov: 141 Aktiv.: 3.41 Kraj: Hrastnik
|
Objavljeno: Ned Okt 31, 2021 10:48 pm Naslov sporočila: |
|
|
Kaj pa kakšna analogna rešitev glajenja?
Našel sem nek predlog, kjer so porabniku dodali filter oz. vezje nadgradili na neke vrste buck step-down pretvornik, ki je tiste PWM pulze pogladil v enosmerno napetost. Nisem čisto prepričan kako bi tole funkcioniralo, vendar pa je simulacija v LTspice pokazala precej nelinearno zvezo. Štos bo, da bodo od samega porabnika odvisne tudi posamezne komponente filtra (npr, če ledikam spremenim tokovno porabo, se bo krivulja svetilnosti spremenila).
https://electronics.stackexchange.com/questions/184941/smoothing-a-high-current-pwm
|
|
Nazaj na vrh |
|
|
Jan Član
Pridružen-a: Sob 10 Jun 2006 14:19 Prispevkov: 313 Aktiv.: 1.44 Kraj: Dolenjska
|
Objavljeno: Pon Nov 01, 2021 7:57 am Naslov sporočila: |
|
|
Najbolj elegantno boš to rešil na nek softwarski način kot so ti predlagali ostali.
Če pa vztrajaš na hardwarski rešitvi, lahko poskusiš tole, je hitro in enostavno za narediti test.
RC filter pred krmilnim pinom tranzistorja zmanjša hitrost naraščanja in padanja krmilnega signala, tako da pri kratkih pulzih tranzistorja dejansko ne odpre do konca.
S tem boš pri kratkih pulzih dosegel manjšo moč na LED, pri daljših pulzih pa to ne bo opazno vplivalo na obliko signala in končno povprečno moč.
Res da se ti bo tranzistor malo bolj grel, ampak mislim da ne bo pretirano, sploh če nimaš velikega toka na ledicah.
Na grafih je prikazana moč na bremenskih uporih (rumena s filtrom, zelena brez) z LED bo dejansko nekoliko drugačno to razmerje moči,
tako da moraš malo poskusiti kakšen RC filter bo ustrezen.
Jan
Opis: |
|
Velikost datoteke: |
44.13 KB |
Pogledana: |
12 krat |
|
Opis: |
|
Velikost datoteke: |
43.85 KB |
Pogledana: |
6 krat |
|
|
|
Nazaj na vrh |
|
|
Brusli Član
Pridružen-a: Tor 24 Nov 2020 12:10 Prispevkov: 141 Aktiv.: 3.41 Kraj: Hrastnik
|
Objavljeno: Pon Nov 01, 2021 10:32 am Naslov sporočila: |
|
|
Jan, hvala za info.
Štos je, da za generiranje PWM ne uporabljam mikrokrmilnika ampak ločeni oz. namenski I2C PWM krmilnik z več 8-bitnimi izhodi (8), ker jih moj mikrokrmilnik (atmega328) nima dovolj. Zato pač iščem hardware rešitev, ker v tej konfiguraciji software rešitev ne pride v poštev.
Tvoj predlog sem že preizkusil, kjer sem paralelno mojemu R3 dodal različne kondenzatorje in opazoval kako se svetilnost obnaša pri spreminjanju duty-cycle. Ugotovil sem, da dodatni kondenzator nekako razširi oz. pogladi spodnji del svetilnosti, vendar pa ima še stranski učinek, da zamakne tudi stopnjo maksimalnoe svetilnosti navzdol. Se pravi, da bodo ledike svetile že z polno močjo, ko bo duty-cycle nastavljen na cca 65% namesto na 100%. To pa mi je uspelo "rešiti" tako, da sem paralelno R2 na mojemu vezju dodal še schottky diodo, ki pospešuje le praznjenje kondenzatorja in posledično izklop mosfeta. Dosegel sem, da se je maksimalna svetilnost pomaknila proti 95% duty-cycle.
Sicer še vedno ni idealno, ampak se mi zdi še najbolj enostavna rešitev.
Poigrati se bom moral še z vrednostmi RC.
lp
|
|
Nazaj na vrh |
|
|
bostjang Član
Pridružen-a: Tor 03 Jan 2006 15:29 Prispevkov: 3172 Aktiv.: 14.25 Kraj: Postojna
|
Objavljeno: Pon Nov 01, 2021 10:58 am Naslov sporočila: |
|
|
Bolj zapletena rešitev bi bila analogna regeneracija PWM. Obstoječi signal sfiltriraš v DC s katerim potem preko ustrezne karakteristike krmiliš nov generator PWM. V enem pretvorniku jaz uporabljam TimerBlox LTC6992. Pri analognih rešitvah se hitro pojavi problem točnosti, torej ali bo nastavitev 1 res pomenila minimalno svetenje, ali bo takrat že ugasnjeno.
|
|
Nazaj na vrh |
|
|
|
|
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: 67 dni
Powered by phpBB © 2001, 2005 phpBB Group
|