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 neuvažuješ o tom, že by jsi to napsal celé?
> Dovedu si pedstavit tu úlohu dost jednoduše.
> Nastavím si timer s reloadem a v main budu blikat podle timeru. 1W pak 
> udlat na perušení pi zmn vstupu. Zase s použití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 rušiv neblikalo. Není to LED 
>> displej, aspo zatím, takže njaká divoká sigma-delta tam možná 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 bžné ledky jsem si jich napsal asi milion, protože 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 sežrala veškeré prostedky 
>>> daného MCU a
>>> ješt 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