Arduino 16bit PWM
konfera na efton.sk
konfera na efton.sk
Úterý Říjen 2 23:49:00 CEST 2018
Presne o to ide - ludske oko (ako aj ine vnemy) nie je linearne, a aj ked ani slovo "logaritmicke" nie je uplne spravne, je blizsie realite. Takze uloha neznie ani tak 12-bit PWM t.j. PWM so striedou K:2**12 ako skor PWM so striedou 2**N:2**12. Pri frekvencii cca 100Hz (prah vnimania blikania sa pri nizkom osvetleni znizuje) to znamena najkratsi pulz pri N=0 cca 2.5us, pri 16MHz hodinach AVRka je to teda asi 40 cyklov. Aby pripadny jitter v striede neposobil rusivo, musi byt pod cca 10% ON, takze pri tej najmensej striede asi 4 cykly.
Toto by slo ciste v software ocasovat tak, ze pre nizke N by sa pulz generoval loopdelayom v asembleri pri zakazanych preruseniach. Na presnej polohe pulzu v ramci frekvencneho cyklu totiz nezalezi, dolezita je len jeho dlzka. Nepamatam si casy pre onewire, ale ak je to aspon v stovkach us, tak do nejakych N=5 by to mohlo fungovat. Pre vyssie N zase nezalezi az tak na jitteri, takze sa da pouzit metoda pana kolegu Fucika. Dat vsak tri taketo quasiPWM dohromady plus este k tomu ten onewire (nech je akokolvek dobre napisany, no a aka je na to sanca) je podla mna uz aj pri normalnom programovani AVRka vyssi divci, a na arduino sa da pokojne zabudnut.
Ale podla mna sa to cele da vyriesit aj jednoduchsie a lepsie kombinaciou PWM s dvojbitovym DA prevodnikom vo forme dvoch pinov na jednu LED, s roznymi seriovymi odpormi.
wek
-----Original Message-----
Bude zalezet na proudu ledkou, dovedu si to predstavit ze 0 = tma, 1 =
puljas, 2 = skoro plny jas a 3-255 se nedeje nic pozorovatelneho. Asi
jako pri praci s plynem u moderniho benzinoveho motoru :-P
(trosku si to upravte na mensi prehaneni, no ;-) )
Dne 02.10.2018 v 18:44 Jindrich Fucik napsal(a):
> Mno, asi tedy neuvauje o tom, e by jsi to napsal celé?
> Dovedu si pedstavit tu úlohu dost jednodue.
> Nastavím si timer s reloadem a v main budu blikat podle timeru. 1W pak
> udlat na peruení pi zmn vstupu. Zase s pouitím njakého timeru.
>
> BTW: 12 bit PWM pro ledku sledovanou okem je dost velká pesnost.
> nemyslím si, e bych rozeznal 7 bit od 8 bit.
>
> Dne 2.10.2018 v 15:50 Jaroslav Lukesh (seznam IMAP) napsal(a):
>> Pesnost není podstatná, jde o svtýlka a aby umly najet od
>> prakticky nuly a refresh takový, aby to ruiv neblikalo. Není to LED
>> displej, aspo zatím, take njaká divoká sigma-delta tam moná je.
>>
>> Problém je, e je tam 1W komunikace a nechci o ni pijít blbou
>> knihovnou. Pravdpodobn mi ale nic jiného nezbyde, ne poítat as.
>>
>>
>>
>> ----- Pvodní zpráva ----- Od: "Jindrich Fucik" <fulda at seznam.cz>
>>
>>
>>> A s jakou pesností a s jakou rychlostí si to pedstavuje?
>>> Pro bné ledky jsem si jich napsal asi milion, protoe se mi nikdy
>>> nechce hledat vhodnou knihovnu.
>>> Pokud hledá nco komplexnjího, tak se podívej na PCA9685 nebo
>>> podobné.
>>>
>>> ---------- Pvodní e-mail ----------
>>> Od: Jaroslav Lukesh <lukesh at seznam.cz>
>>> Komu: HW-news <hw-list at list.hw.cz>
>>> Datum: 2. 10. 2018 1:33:10
>>> Pedmt: Arduino 16bit PWM
>>>
>>> Dobrý den,
>>>
>>> neznáte náhodou njakou pknou knihovnu, která by umlla aspo 12
>>> bit na
>>> aspo tech pinech ATmega32, ani by serala vekeré prostedky
>>> daného MCU a
>>> jet aby to zvládlo komunikovat po 1Wire sbrnici jako slave?
>>>
>>> Chystám se na vánoní stromeek a 1/256 hodnoty je potm víc jak
>>> naplno ve
>>> dne, chce to jít od nejmeního jasu, aby to mohlo plynule najet.
>>>
>> _______
Další informace o konferenci Hw-list