[elektro] Bascomos AVR dimmer

Csuvár Imre icsuvar at t-online.hu
Sat Feb 12 22:37:38 CET 2011


Hali,
ezen  asszem mar el tudok indulni :)
Nem akartam nullarol kitalani a cuccot,
hasznosak ezek a gyakorlati tapasztalatok, otletek.
Epitek egy kiserleti HW-t es majd programozgatok rajta,
esetleg majd meg kerdezek, mivel nem vagyok profi a temaban.

Koszi:
Csuva'r Imre

From: "Moczik Gabor" <pm_levlista at progzmaster.hu>

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