www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Atmega8 in fazno krmiljenje triaca

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Peter
Član
Član



Pridružen-a: Sre 30 Jun 2004 12:55
Prispevkov: 375
Aktiv.: 1.58
Kraj: Pod krvavcem nekje

PrispevekObjavljeno: Čet Mar 01, 2007 8:08 am    Naslov sporočila:  Atmega8 in fazno krmiljenje triaca Odgovori s citatom

Zadeva je sledeča hotel sem si izdelati večkanalni dimmer. Med samim testiranjem sem se lotil postopnega programiranja. Najprej sem izdelal program, ki krmili le en izhod do tu mi deluje vse OK. Potem pa hočem dodati še en kanal tu pa nastopi problem. koda za en kanal je taka:
to je samo prekinitev katera mi dela probleme ostali del pograma deluje brez problema

Tim0_isr: 'Timer0 ISR, called if T0 overflows

Count = Count + 1 '** Start counter (No. of interrupts)
'** counts each time T0 overflows
If Count > Td Then '** If the count > AD0 / 3 then send
Count = 0 '** pulses & set count to 0
Stop Timer0 '** Stop Timer 0
'** Send 3 pulses to the Triac
Set Portb.2 '** Turn Portb.2 on (high), PIN 3
Waitus 100 '** Wait 100 u/s
Reset Portb.2 '** Turn Portb.2 off (low), PIN 3
Waitus 100 '** Wait 100 u/s
Set Portb.2 '** Repeat for 3 pulses
Waitus 100
Reset Portb.2
Waitus 100
Set Portb.2
Waitus 100
Reset Portb.2
Waitus 100
End If
End If

Ko sem dodal zanko ko preverja vrednost moči in s tem kdaj naj vključi drugi kanal stvar ne dela.

Tim0_isr: 'Timer0 ISR, called if T0 overflows

Count = Count + 1 '** Start counter (No. of interrupts)

If Count > Td Then 'Td števec ki šteje kdaj vklučimo triac
Count = 0 '** pulses & set count to 0
Stop Timer0 '** Stop Timer 0
end if
if moc0=td then
Set Portb.2 '** Turn Portb.2 on (high), PIN 3
end if
Waitus 100
Reset Portb.2
Waitus 100

if moc1=td1 then
Set Portb.3
end if
Waitus 100
Reset Portb.3
Waitus 100

_________________
Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3469
Aktiv.: 14.65
Kraj: Postojna

PrispevekObjavljeno: Čet Mar 01, 2007 12:05 pm    Naslov sporočila:   Odgovori s citatom

Upam, da sem prav razumel program. Za drugič pa priporočam daljšo razlago. Tdu zaradi drugih.
Torej:
Counter resetiraš ob prehodu skozi ničlo, potem ti pa šteje prekinitve časovnika.
Ko doseže vrednost Td vključiš triak.

Kot vidim iz programa, hkrati z vključitvijo resetiraš Counter in ustaviš časovnik. Kot vidim je tukaj napaka, saj s tem motiš ostale kanale.
Counter bi moral šteti nedvisno, tudi časovnik bi moral delati ves čas. Za ugotavljanje kdaj je Counter dosegel Td, določenega kanal, pa uporabiti primerjavo = in ne <, da ne bi prožil triaka do konca polperiode.

Druga možnost je ločen Counter za oba (vse) kanala. Vsekakor pa ne smeš izklopiti časovnika, če je skupen za oba (vse) kanala.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
CarpeDiem
Član
Član



Pridružen-a: Pon 16 Feb 2004 17:24
Prispevkov: 333
Aktiv.: 1.41
Kraj: Vrhnika

PrispevekObjavljeno: Čet Mar 01, 2007 5:27 pm    Naslov sporočila:   Odgovori s citatom

Kako si izvedel detekcijo prehoda napetostnega nivoja skozi ničlo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 12.46
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Čet Mar 01, 2007 6:33 pm    Naslov sporočila:   Odgovori s citatom

Pripneš kakšno shemo? Kajti tudi mene zanima Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Peter
Član
Član



Pridružen-a: Sre 30 Jun 2004 12:55
Prispevkov: 375
Aktiv.: 1.58
Kraj: Pod krvavcem nekje

PrispevekObjavljeno: Čet Mar 01, 2007 9:32 pm    Naslov sporočila:   Odgovori s citatom

No tu pripenjam novi kos programa, ki sem ga napisal za krmiljenje triakov.
Ko se pojavi signal na pinu portd.4 sproži prekinitev. Prekinitev se proži na padajočo fronto in se pojavi enkrat na periodo.
Zadeva pa je taka, če dam pogoj, da gledam samo TD za regulacijo moči tudi če prožim več kanalov zadeva deluje, če pa uporabim različne spremenljivke za moč pa stvar ne deluje, tako kot je na spodnjem primeru.


Config Int0 = Falling
Config Timer0 = Timer , Prescale = 1

'********** Prekinitvena rutina Int0
Int0_prek:
Start Timer0 'poženemo Timer0
Return 'Se vrnemo od tam kjer smo prišli

'********** Prekinitvena rutina Tim0
Tim0_prek:
Count = Count + 1 'Povečujemo števec za 1
Count1 = Count
Gosub Triac
If Count > Td Then 'Preverjamo če je števec manši od Td
Count = 0 'Resetiramo števec
Stop Timer0 'ustavimo Timer0

End If
Return 'Se vrnemo od tam kjer smo prišli



Triac:

If Count1 > Moc0 Then
Reset Portc.3 'Prižgemo izhod
End If
If Count1 > Moc1 Then
Reset Portc.4 'Prižgemo izhod
End If
If Count1 > Moc2 Then
Reset Portc.5
End If
Waitus 200
Set Portc.3
Set Portc.4 'Ugasnemo izhod
Set Portc.5 'na katerem je triac


Waitms 10 'počakamo da mine pol periode

If Count1 > Moc0 Then
Reset Portc.3 'Prižgemo izhod
End If
If Count1 > Moc1 Then
Reset Portc.4 'Prižgemo izhod
End If
If Count1 > Moc2 Then
Reset Portc.5
End If
Waitus 200
Set Portc.3
Set Portc.4 'Ugasnemo izhod
Set Portc.5 'na katerem je triac


Return

To pa je primer ko stvar deluje vendar moč za vse kanale enaka

Tim0_prek: 'Prekinitvena rutina Tim0

Count = Count + 1 'Povečujemo števec za 1

If Count > Td Then 'Preverjamo če je števec manši od Td
Count = 0 'Resetiramo števec
Stop Timer0 'ustavimo Timer0

Reset Portb.0 'Prižgemo izhod
Reset Portb.1
Reset Portb.2
Waitus 100 'na katerem je triac
Set Portb.0 'Ugasnemo izhod
Set Portb.1
Set Portb.2

Waitms 10 'počakamo da mine pol periode

Reset Portb.0 'Prižgemo izhod
Reset Portb.1
Reset Portb.2
Waitus 100 'na katerem je triac
Set Portb.0 'Ugasnemo izhod
Set Portb.1
Set Portb.2

End If
Return 'Se vrnemo od tam kjer smo prišli



zc_sch.gif
 Opis:

Download
 Ime datoteke:  zc_sch.gif
 Velikost datoteke:  4.96 KB
 Downloadano:  82 krat


_________________
Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
CarpeDiem
Član
Član



Pridružen-a: Pon 16 Feb 2004 17:24
Prispevkov: 333
Aktiv.: 1.41
Kraj: Vrhnika

PrispevekObjavljeno: Čet Mar 01, 2007 11:12 pm    Naslov sporočila:   Odgovori s citatom

Zanimivo narisana shema. Bom preveč tečen, če prosim še za vrednosti elementov? Ker tole bom vsekakor preizkusil.

Glede sheme:
Še ena varijanta
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
Peter
Član
Član



Pridružen-a: Sre 30 Jun 2004 12:55
Prispevkov: 375
Aktiv.: 1.58
Kraj: Pod krvavcem nekje

PrispevekObjavljeno: Pet Mar 02, 2007 8:02 am    Naslov sporočila:   Odgovori s citatom

Pripenjam še vednosti elementov
OK1 CNY17F III
Q1 BC547X
D1 1N4007
R1 2*27k / 1W
R2 1M / 0,25W
R3 10k /0,25W
C1, 2 100nF

In pa link do strani
http://www.hoelscher-hi.de/hendrik/english/dimmer.htm

_________________
Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tibi
Član
Član



Pridružen-a: Tor 16 Dec 2003 11:08
Prispevkov: 253
Aktiv.: 1.07
Kraj: bukovje

PrispevekObjavljeno: Pet Mar 02, 2007 8:38 am    Naslov sporočila:   Odgovori s citatom

Kaj pa če bi hotel regulacijo v trifaznem sistemu? Princip bi verjetno ostal isti uporabil bi 3 vezja detekcije "0" zamenjal upor R1 in kontroliral vsako fazo posebej??

L.P.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Peter
Član
Član



Pridružen-a: Sre 30 Jun 2004 12:55
Prispevkov: 375
Aktiv.: 1.58
Kraj: Pod krvavcem nekje

PrispevekObjavljeno: Pet Mar 02, 2007 8:52 am    Naslov sporočila:   Odgovori s citatom

Zakaj bi pa potreboval regulacijo 3 faznega sistema?
Ja trifazni sistem kot vemo ima faze zamaknjene za 120°. Mikrokrmilnik pa ima samo 2 zunanja prekinitvena vhoda. Tako, da bi tezko gledal kdaj preidejo vse tri faze skozi nič.

_________________
Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tibi
Član
Član



Pridružen-a: Tor 16 Dec 2003 11:08
Prispevkov: 253
Aktiv.: 1.07
Kraj: bukovje

PrispevekObjavljeno: Pet Mar 02, 2007 9:37 am    Naslov sporočila:   Odgovori s citatom

No primer če bi rabil trifazno regulacijo moči. Npr. kak grelnik... Ja vem da so faze zanaknjene enako vendar nikoli ne veš vrstni red. Tako mislim da bi bilo ninimalno kontrolirati 2 fazi.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3469
Aktiv.: 14.65
Kraj: Postojna

PrispevekObjavljeno: Pet Mar 02, 2007 12:05 pm    Naslov sporočila:   Odgovori s citatom

Premisli malo, kaj se dogaja v primeru različnih moči.

Čakanje pol periode bi moralo biti ločeno za vsak kanal.
Jaz bi primerjanje za proženje realiziral z =, Count bi pa resetiral na koncu polperiode. Seveda brez čakanja. Še raje bi pa prožil v prekinitvi, v glavnem programu bi pa počel kar bi hotel.

P.S.: Kateri pin proži prekinitev mi nič ne pove, če ne vem, kaj je priključeno nanj. Bistveno je, kateri signal proži katero prekinitev.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vili
Član
Član



Pridružen-a: Ned 30 Maj 2004 16:37
Prispevkov: 64
Aktiv.: 0.27
Kraj: Ljubljana

PrispevekObjavljeno: Pet Mar 02, 2007 12:13 pm    Naslov sporočila:   Odgovori s citatom

Kako se pa sinhroniziraš na omrežje? Sam sem poskušal vendar mi pri določenih stopnjah osvetlitve žarnica utripa. Če spremenim zakasnitev 10ms za malenkost to odpravim. Kako pa bi se mikrokontroler sam popravljal da ne bi bilo utripanja?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Peter
Član
Član



Pridružen-a: Sre 30 Jun 2004 12:55
Prispevkov: 375
Aktiv.: 1.58
Kraj: Pod krvavcem nekje

PrispevekObjavljeno: Pet Mar 02, 2007 12:40 pm    Naslov sporočila:   Odgovori s citatom

bostjang
Če bi pozorno prebral poste bi videl, da prekinitev prožim z detekcijo ničle skozi nič na portu PORTD.4. V tej zanki samo startamo timer0, ki šteje impulze, ki pa jih primerjamo z nastavleno močjo in, ko je ta zadeva enaka ali večja šele lahko prožim izhode, ki pa prožijo triace.
Vili jaz uporabljam 8MHz kvarc in pa preskaler je 1 za timer0 pri tako hitrem pocesiranju ni bojazni da bi mi luč utripala. Sam triac pa prožim preko optokoplerja MOC3021 ki ima vgrajen svetlobno krmiljen diac sam sklop pa predstavlaj solid state rele

_________________
Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
clownfish
Član
Član



Pridružen-a: Pet 05 Avg 2005 13:05
Prispevkov: 765
Aktiv.: 3.23
Kraj: Povir / Ljubljana

PrispevekObjavljeno: Čet Mar 15, 2007 3:57 pm    Naslov sporočila:   Odgovori s citatom

Več kot odličen pimer z kodo..
http://semitone.sourceforge.net/wiki/index.php/Main_Page

Sw je odlično napisan!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group