[elektro] Bascomos AVR dimmer

Moczik Gabor pm_levlista at progzmaster.hu
Sat Feb 12 22:00:14 CET 2011


Csuvár Imre wrote:
> Hali,
> kerestem kesz projectet a neten, de elsore nem talaltam.
> 
> Potival v +/- gombbal vezerelve mindegy,
> 50Hz-es, nullaatmenet figyelos cucc erdekelne tanulaskeppen.
> 
> Tudtok ilyet?

C-ben írtam ilyet 3 csatornára.
Csak egy kísérlet volt, nem túl szép a kód, de nem is túl hosszú.

Tulajdonképpen annyi az egész, méri a nullátmenet idejét az egyik 
timerrel, ezt folyamatosan átlagolja 8 ciklusra (gördülő átlag), majd 
ennek az időnek a 128-ad részével felprogramoz egy másik timert.
A bekapcsolás utáni első mintát el kell dobni, és amég nincs meg a 
további 8 minta az átlaghoz, addig ne indítsd a másik timert.

A másik timer növel egy változót, és ha ez eléri az adott csatornához 
megadott értéket, akkor begyújtja a triakot. Ha a számláló eléri a 
végétéket, letiltja a timert. A gyújtójel kint marad a következő 
nullátmenetig. Ki lehet kapcsolni egy ciklussal később, ugyanúgy 
működik, csak így hosszabb a kód, pont ebben a high-speed ISR-ben. 
Inkább limitáld a gate áramot a hardverben olyanra amit folyamatosan elbír.

Nullátmenetkor tehát ki kell számolni az átlagot, a számlálót kell 
nullázni, gate jeleket kikapcsolni, másik timert indítani.

Arra vigyázz, hogy a gyújtójellel ne akard a nullátmenetet teljesen 
megközelíteni, mert esetleg átesik, ha a szinkron nem teljesen pontos 
(128-as szorzónál 120-ig biztonságosan el lehet menni, ez 168.75fok...)

Lehet finomítani, hogy ha nem hihető a nullátmenet ideje (messze nem 
10ms), akkor eldobja, de nekem ez az átlagolás elégnek tűnt.

A nullátmenet detektálást úgy oldottam meg, hogy egy INT lábra megy a 
fázisról a jel egy nagy ellenálláson, van rajta 100pF szűrés, és a 
szintet az ESD védődiódák fogják meg. Szoftverben pedig minden 
átmenetben váltom hogy fel vagy lefutó élre adjon megszakítást.

Ha a nullátmenet idejét mérő timer túlcsordul (= nincs jel), akkor 
letiltod az egész kócerájt, kiüríted az átlagot is.

-- 
((( Móczik Gábor  )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))



More information about the Elektro mailing list