Sure, all it does is dims a light down after 20 minutes of being on.
@ device pic10F202, mclr_off, protect_off, wdt_off
TRISIO = %1100
triac VAR GPIO.2
trigger VAR GPIO.3
dim VAR WORD
Time VAR WORD
Time2 VAR BYTE
b0 VAR BYTE
Clear
GPIO = 0
dim = 100
Start:
time = time + 1 'increment timer in 1/50 seconds
IF time > 30000 Then 'make a 10 min increment
time = 0
time2 = time2 + 1
EndIF
b0 = b0 + 1 'increment for every 4 phase cycles
IF b0 >= 3 Then b0 = 0
IF time2 >= 2 AND b0 = 2 Then dim = dim + 1 'if over 20 min then start dimming dim period 4 cycles = 10 mins
IF dim > 7500 Then dim = 7500 'down to dim level - 9000 = off, 7500 approx 15%
if time2 > 72 then 'turn off after 12 hours
dim = 9000
time2 = 73 'prevent from cycling
endif
LowSide: 'look for trigger points and trigger triac
IF trigger = 1 Then lowside 'wait for phase to go low
GPIO.5 = 0 'weight input to sense zero crossing
PauseUs dim 'wait for dim period
Output triac 'fire triac
triac = 0
PauseUs 400
Input triac
HighSide:
IF trigger = 0 Then HighSide
GPIO.5 = 1
PauseUs dim
Output triac
triac = 0
PauseUs 400
Input triac
GoTo start
Bookmarks