This is the osciloscope measures from the GP4 (AcLine input), and from GP2 (Output to TRIAC).
I use tranformer 8Vac, R3=4k7 and R4=10k.
Look the pictures from 0 to 4. Is from value off to on through 3 steps.
But the lamp still flashing...
This is the osciloscope measures from the GP4 (AcLine input), and from GP2 (Output to TRIAC).
I use tranformer 8Vac, R3=4k7 and R4=10k.
Look the pictures from 0 to 4. Is from value off to on through 3 steps.
But the lamp still flashing...
Reven,
I've not used that circuit or code you are reffering to but by just looking at your waveforms it seems that the triac is triggered at the same phase angle in case 1, 2, 3 & 4.
The triac only needs a short pulse on the gate and will then hold itself 'on' untill the AC-line crosses zero, at which point it will turn 'off'. That short pulse should be delayed a certain amount of time from the zero crossing.
On your scope pics the triac seems to be triggered exactly 1div from the zero crossing in all cases except full on and full off.
/Henrik Olsson.
Hi, reven
Henrik is right ...
Here, the pulse length is not the thing to be variable.
but you must vary the time between zero voltage detection and triac gate firing ...
Long time = weak light
short time = full light
remember once the triac is turned on it stays turned ON until current becomes null.
Alain
Here, you had programmed a ... DC Dimmer !!!
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
I think you have right...
As Henrik says ,now the triac is triggered at the same phase angle in all cases.
I must change my code to put the pulse position in a variable.
Thanks all of you!
I will inform you about my progress!
BTW, take a look at the code,bacause I checked it many times and I could not find where the problem is.
http://www.picbasic.co.uk/forum/atta...0&d=1103787743
Thanks again,
Reven
Hi, Reven
Just understand what the interrupt routine does instead of should have done ...
""
' ACDetect
' --------
'
' Interrupt routine called by ACLine (GP4) pin state change
'
disable
ACDetect:
if ACline==1 then ' Check for rising edge of AC signal
if triacdelay > 0 then
Triac=1 ' Activate TRIAC
Alain's : ;;; No,No,No ... here we have to wait for ( Maxdelay - Triacdelay ) !!! THEN fire the Triac for, say, 20µs ... then let things quiet.
if FullBright==0 then ' In case Brightness flag is not set
pauseus triacdelay ' do the selected delay
triac=0 ' Disable TRIAC
endif
else
triac=0
endif
endif
INTCON.0=0 ' Clear GPIF (interrupt on GP4 change)
resume
enable
""
*** This part of program smells to have been taken from a heather using burst mode dimming ...
Sorry, Steve ... je t'aimais bien ( avec la musique de circonstance ... )
Alain
Last edited by Acetronics2; - 13th December 2005 at 12:15.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
mmm, sorry all. something should be wrong in what i posted. I used that program in various app and it worked... let me the time to return at home(Next week) and i'll compare the posted version and what i use...
Many thousands of appologies.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Can't wait to return home... use the following ACDetect routine instead.
this should work.
Yeah i know you can also use Pulsout and forget the Falling edge detection... as you wish. Both will work.Code:disable ACDetect: if ACline==1 then ' ' Rising edge of AC signal ' ======================== if triacdelay then ' A delay is set by user ' if FullBright==0 then ' Full Brightness flag is not set pauseus maxdelay-triacdelay ' do the selected delay triac=1 ' enable TRIAC else ' triac=1 ' Full Brightness flag is set ' enable triac endif ' ' else ' triac=0 ' No Delay set by user... disable Triac endif ' else ' ' Falling edge of AC signal ' ========================= if fullbright==0 then triac=0 ' Disable the Triac on falling edge of ' Ac signal endif INTCON.0=0 ' Clear GPIF (interrupt on GP4 change) resume enable
Last edited by mister_e; - 18th December 2005 at 11:39.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks