Fázishasítás Triac-al
Szia kefeur!
A sallangokat kitöröltem,a program lényegét az alábbi helyre feltöltöttem.
Remélem a hiba okának megtalálására alkalmas lesz a forma.
Fő vonalakban:
Egy fényérzékelő figyeli a környezetet és a lámpa fényének szabályozásával próbálja a megvilágítást konstans értéken tartani.
http://www.ottomat.hu/archivum/PRG_BASCOM/program.TXT
Üdv. Ottó
A sallangokat kitöröltem,a program lényegét az alábbi helyre feltöltöttem.
Remélem a hiba okának megtalálására alkalmas lesz a forma.
Fő vonalakban:
Egy fényérzékelő figyeli a környezetet és a lámpa fényének szabályozásával próbálja a megvilágítást konstans értéken tartani.
http://www.ottomat.hu/archivum/PRG_BASCOM/program.TXT
Üdv. Ottó
Szia Ottó!
Nézem a programot, véleményem szerint jónak tűnik.
De várjunk meg más hozzászólást is.
Végignézted a részegységeket működésük szerint?
Ha az optót Te nyitod külső rásegítéssel akkor is van hullámzás?
(szoftveres hiba kiiktatása)
Ha letakarod az érzékelőt, a szoftver teljesen kinyitja a Triakot, akkor megszűnik a fényerő ingadozás?
(szabályzási pont körüli lengés kiiktatása)
Mint irtam nálam nincs a nullátmenet érzékelő tranzisztor bázis ágában kondenzátor. Ki ugyan nem számoltam, hogy nálad mennyit tol el a nullatámeneten, de érzésem szerint gond lehet ez is. Ezalatt értem azt, hogy a pontos nullaátmeneted mérése két helyen is szenved hibát.
1. trafó utáni csökkentett feszültség miatt
2. ellenállás-kondenzátor hálózat a tranzisztor előtt
Egyszóval amit ki akartam hozni ebből, hogy a hálózati 10ms-os félhullám, és a Te általad létrehozott 10ms-os időrés nagyon nincs összhangban egymással. Átfedés lehet, ami magyarázná az ingadozást.
Mit gondoltok erről?
Nézem a programot, véleményem szerint jónak tűnik.
De várjunk meg más hozzászólást is.
Végignézted a részegységeket működésük szerint?
Ha az optót Te nyitod külső rásegítéssel akkor is van hullámzás?
(szoftveres hiba kiiktatása)
Ha letakarod az érzékelőt, a szoftver teljesen kinyitja a Triakot, akkor megszűnik a fényerő ingadozás?
(szabályzási pont körüli lengés kiiktatása)
Mint irtam nálam nincs a nullátmenet érzékelő tranzisztor bázis ágában kondenzátor. Ki ugyan nem számoltam, hogy nálad mennyit tol el a nullatámeneten, de érzésem szerint gond lehet ez is. Ezalatt értem azt, hogy a pontos nullaátmeneted mérése két helyen is szenved hibát.
1. trafó utáni csökkentett feszültség miatt
2. ellenállás-kondenzátor hálózat a tranzisztor előtt
Egyszóval amit ki akartam hozni ebből, hogy a hálózati 10ms-os félhullám, és a Te általad létrehozott 10ms-os időrés nagyon nincs összhangban egymással. Átfedés lehet, ami magyarázná az ingadozást.
Mit gondoltok erről?
Szerintem ha SW hibát kerestek a Bascom ajánlás szerint itt indítják az ADC-t:
A megszakításból kihagynám!
Mivel kevés az idő a mérés elvégzésére a „Start Adc - Ertek0 = Getadc(channel)” között.
Inkább:
Így folyamatosan mér a HW-ADC és mindig az utolsó mérést olvasod a regiszterből.
Kód: Egész kijelölése
'-----------------------[ INICIALIZÁLÁS ]---------------------------------------
'ADC KONFIGURÁLÁS
Rem reference lehetne belső=internal vagy 5V-OS TÁPFESZ=AVCC
Rem a belső ref. vagy AVCC használata esetén az AREF lábra külső szűrő kondenzátort
'kell rakni.
Rem A belső referencia feszültség 2,56V (azért ezt az adatlapról ellenőrizni!)
Rem EBBEN AZ ESETBEN KÜLSŐ referenciát használunk,ezért "Off"
Rem a futási mód lehet "single" vagy "free"
Rem a "Single" mód esetén a GETADC() funkciót kell használni!
Rem a Prescaler=auto beállítás a processzor órajeléből automatikusan választja ki
Rem az ADC működéséhez szükséges megfelelő órajel leosztást.
Config Adc = Single , Prescaler = Auto , Reference = Off
'Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
'-------------------------------------------------------------------------------
Mivel kevés az idő a mérés elvégzésére a „Start Adc - Ertek0 = Getadc(channel)” között.
Inkább:
Kód: Egész kijelölése
'------------------------------------------------------------------------
Sub Ad_meres
Set Mukodesled 'set világít
Channel = 0
Ertek0 = Getadc(channel)
Reset Mukodesled 'reset sötét
End Sub
'--------------------------------------------------------------------------
Re: Fázishasítás Triac-al
Egy kissegítséget szeretnék kérni a hozzáértőktől!
Valamiért nem müxik a triakos vezérlés, és nem tudom hogy hol lehet a hiba.
Már több napja kínlódok vele! Optoval van leválasztva a hálózati szinkronjeltől, és a triaktol is. A szinkron jel szkop szerint rendesen megvan. A kimeneten megjelenik a jel, de ha éppen begyújt a triak, akkor is inkább csak vibrál, szaggat, vagy folyamatosan világit.
Vagy a tiny13 frekije nem jó?
Szerintetek mit nem csináltam jól?
Valamiért nem müxik a triakos vezérlés, és nem tudom hogy hol lehet a hiba.
Már több napja kínlódok vele! Optoval van leválasztva a hálózati szinkronjeltől, és a triaktol is. A szinkron jel szkop szerint rendesen megvan. A kimeneten megjelenik a jel, de ha éppen begyújt a triak, akkor is inkább csak vibrál, szaggat, vagy folyamatosan világit.
Kód: Egész kijelölése
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 8
$swstack = 8
$framesize = 8
$prog &HFF , &H7A , &HFF
Dim Ertek As Byte
Dim B As Byte
Config Int0 = Low Level
On Int0 Pulse
Enable Interrupts
Enable Int0
Pinb = &B00000110
Config Portb.0 = Output ' Kimenet
Config Portb.4 = Input ' Fel
Config Portb.3 = Input ' Le
Config Pinb.1 = Input ' Int0
Config Portb.2 = Input
Led1_1 Alias Portb.0
Le Alias Pinb.3
Fel Alias Pinb.4
Ertek = 2
Do
If Pinb.2 = 0 Then Incr B
If B > 9 Then B = 1
If Fel = 0 Then Ertek = Ertek + 1
If Le = 0 Then Ertek = Ertek - 1
Waitms 10
Loop
Pulse:
Waitms Ertek 'Megszakitas:
Led1_1 = 1
Waitms B
Led1_1 = 0
Return
Szerintetek mit nem csináltam jól?
Re: Fázishasítás Triac-al
Elég rossz ötlet megszakításba Waitms-eket rakni!
Mivel amíg egy megszakításban tartózkodik a programod,
Addig a másik megszakítás (Wait) nem tud érvényesülni!
Mivel amíg egy megszakításban tartózkodik a programod,
Addig a másik megszakítás (Wait) nem tud érvényesülni!
Re: Fázishasítás Triac-al
Én inkább élvezérelt INT-et állítanék be.
Ha Zerocross INT jön, akkor
kimenet=0
Timerx=offset+valamennyi
Start Timerx
Return
Timerx lejár, akkor kimenet=1
STOP Timerx
Return
Timer természetesen belőve <10msec-re.
Az ilyen cuccok villogása általában a többszörös triggerből vagy a túlságosan hosszú időzítésből adódik (túlnyúlik az aktuális
perióduson, a következőt meg gyújtja).
JAni
Ha Zerocross INT jön, akkor
kimenet=0
Timerx=offset+valamennyi
Start Timerx
Return
Timerx lejár, akkor kimenet=1
STOP Timerx
Return
Timer természetesen belőve <10msec-re.
Az ilyen cuccok villogása általában a többszörös triggerből vagy a túlságosan hosszú időzítésből adódik (túlnyúlik az aktuális
perióduson, a következőt meg gyújtja).
JAni
Re: Fázishasítás Triac-al
Tehát ha megjön a nullponti jelem, akkor int-ből át timerx-be és ott számoltatom a késleltetési időt?
Köszi kipróbálom!
Köszi kipróbálom!
Re: Fázishasítás Triac-al
Neeem, csak 0 átmenetnél lekapcsolod a triac-ot (ehhez az kell,
hogy a 0 jeled a 0-fok előtt legyen egy kicsivel) feltöltöd a timert a késleltetési idővel és elindítod.
Aztán otthagyod a francba, futtatod a főprogramod.
A Timer INT meg csak annyit csinál, hogy leállítja saját magát (nehogy többször átforduljon)
és gyújtja a triac-ot.
Tehát ha szkóppal nézed, a gyújtási szög és a 0 között (következő 0)
lesz a gyújtóimpulzusod, jó hosszú.
JAni
hogy a 0 jeled a 0-fok előtt legyen egy kicsivel) feltöltöd a timert a késleltetési idővel és elindítod.
Aztán otthagyod a francba, futtatod a főprogramod.
A Timer INT meg csak annyit csinál, hogy leállítja saját magát (nehogy többször átforduljon)
és gyújtja a triac-ot.
Tehát ha szkóppal nézed, a gyújtási szög és a 0 között (következő 0)
lesz a gyújtóimpulzusod, jó hosszú.
JAni
Re: Fázishasítás Triac-al
Triacra nem elég egy gyújtóimpulzus? Ha begyujtod az úgy is marad?
- Nullátmenet
- késleltetés letelik
- gyujtoimpulzus (L->H->L)
Esetleg nem induktív holmit kapcsolsz és az rúg vissza és kapcsol be?
H a atriac folyamatosan H-n van vezérelve, akkor a fényerő teljes?
Igaz nem halogénlámpa amit vezérelsz?
- Nullátmenet
- késleltetés letelik
- gyujtoimpulzus (L->H->L)
Esetleg nem induktív holmit kapcsolsz és az rúg vissza és kapcsol be?
H a atriac folyamatosan H-n van vezérelve, akkor a fényerő teljes?
Igaz nem halogénlámpa amit vezérelsz?
Re: Fázishasítás Triac-al
Elméletben elég egy impulzus, de akkor az elvisz még egy időzítést
a SW-ben (vagy NOP-olsz vagy ciklus vagy...) mert a túl
rövidre nem gyújt be és a uC-k azért elég gyorsak, tehát
az INTben várakoznod kell egy kicsit.
Így meg a két INT "látatlanban" csinálja a dolgát
időveszteség nélkül.
Végül is nem gond az impulzus, csak egy másik módot írtam le.
A gyújtásnál még akkor szokott akadozni, ha túl kicsi
a gyújtófesz (általában osztó méretezés).
No, meg a nullpontkapcsoló jelét is megnézném, nem
glitch-es-e.
JAni
a SW-ben (vagy NOP-olsz vagy ciklus vagy...) mert a túl
rövidre nem gyújt be és a uC-k azért elég gyorsak, tehát
az INTben várakoznod kell egy kicsit.
Így meg a két INT "látatlanban" csinálja a dolgát
időveszteség nélkül.
Végül is nem gond az impulzus, csak egy másik módot írtam le.
A gyújtásnál még akkor szokott akadozni, ha túl kicsi
a gyújtófesz (általában osztó méretezés).
No, meg a nullpontkapcsoló jelét is megnézném, nem
glitch-es-e.
JAni
Re: Fázishasítás Triac-al
Most igy probálom, de most se megy!
mi ebben a hiba?
most szkoppal nézve változik az idő, de akkor is folyamatosan világít.
Kód: Egész kijelölése
Int0_int:
Reset Triac
Start Timer0
Return
Timer0_isr:
Load Timer0 , Varakozas
Set Triac
Stop Timer0
Return
most szkoppal nézve változik az idő, de akkor is folyamatosan világít.
Re: Fázishasítás Triac-al
Ilyen a nullpont jel!
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: Fázishasítás Triac-al
Gondolom, 5msec/div az osztásod, elég használhatónak tűnik.
Ha pipeckedni akarunk, akkor lefutóra INT, egy kis offset+érték
a Timerbe és kész. Bár az a kis szögveszteség fényerőben nem
sokat számít, lehet felfutóra is INT. (akkor nem is kell offset).
Szóval ott valami más gond lesz, ha villog. A rutin jónak néz ki.
Esetleg kapcsrajz?
JAni
Ha pipeckedni akarunk, akkor lefutóra INT, egy kis offset+érték
a Timerbe és kész. Bár az a kis szögveszteség fényerőben nem
sokat számít, lehet felfutóra is INT. (akkor nem is kell offset).
Szóval ott valami más gond lesz, ha villog. A rutin jónak néz ki.
Esetleg kapcsrajz?
JAni