Hi everybody. This is my first post on this forum, and i have desided to share my unfinished project with you. Sorry for any misspelling as english is not my native language.
I got the idea from youtube when i was watching videos that others had made. Then i searched info for picaxe projects and found almost nothing. So i started figuring out how to do it, and i put together first prototype about in couple of hours and wrote first lines of code.. woilaa i had first stripe in fixed position, soon after that it displayed number and counted 0-999. Next thing was to build finished product from scrap. All parts except picaxe chip are recycled from old electronics boards.
Things used:
Picaxe 14m2
Ds1337
2x 555 timer
and smaller parts
Some Pics:
Video:
And code:
I got the idea from youtube when i was watching videos that others had made. Then i searched info for picaxe projects and found almost nothing. So i started figuring out how to do it, and i put together first prototype about in couple of hours and wrote first lines of code.. woilaa i had first stripe in fixed position, soon after that it displayed number and counted 0-999. Next thing was to build finished product from scrap. All parts except picaxe chip are recycled from old electronics boards.
Things used:
Picaxe 14m2
Ds1337
2x 555 timer
and smaller parts
Some Pics:
Video:
And code:
Code:
#picaxe 14m2
#no_data
#terminal off
setfreq m32
let dirsb=%11111111
pullup on
symbol paus=2
symbol DS1337=%11010000
symbol startpause=b0
symbol sec=b1
symbol sec1=b2
symbol sec2=b3
symbol minute=b4
symbol minute1=b5
symbol minute2=b6
symbol hour=b7
symbol hour1=b8
symbol hour2=b9
symbol tempread=b10
symbol temp1=b11
symbol temp2=b12
symbol cloc_count=b13
symbol temp_count=b14
symbol irrecieve=b15
symbol temppin=c.0
symbol ledonpin=c.1
symbol middleledpin=c.2
symbol triggerpin=pinc.3
symbol outledpin=c.4
incclock:
'if cloc_count=>2 then readtemperature:
temp_count=0
inc cloc_count
clockright:
if triggerpin=1 then clockright
pause startpause
high ledonpin
i2cslave DS1337, i2cfast, i2cbyte
setfreq m4
hi2cin $00, (sec,minute,hour)
setfreq m32
hi2csetup off
bcdtoascii sec,sec1,sec2
sec1=sec1-48:sec2=sec2-48
bcdtoascii minute,minute1,minute2
minute1=minute1-48:minute2=minute2-48
bcdtoascii hour,hour1,hour2
hour1=hour1-48:hour2=hour2-48
low ledonpin
let dirsb=%11111111
gosub clockdysplay
irin [2],C.0,irrecieve
if irrecieve= 16 then gosub minuteset
if irrecieve= 18 then gosub hourset
let startpause=startpause+1
if startpause>100then clockleft
goto clockright
clockleft:
if triggerpin=1 then clockleft
pause startpause
high ledonpin
i2cslave DS1337, i2cfast, i2cbyte
setfreq m4
hi2cin $00, (sec,minute,hour)
setfreq m32
hi2csetup off
bcdtoascii sec,sec1,sec2
sec1=sec1-48:sec2=sec2-48
bcdtoascii minute,minute1,minute2
minute1=minute1-48:minute2=minute2-48
bcdtoascii hour,hour1,hour2
hour1=hour1-48:hour2=hour2-48
low ledonpin
let dirsb=%11111111
gosub clockdysplay
irin [2],C.0,irrecieve
if irrecieve= 16 then gosub minuteset
if irrecieve= 18 then gosub hourset
let startpause=startpause-1
if startpause<=2 then incclock
goto clockleft
readtemperature:
readtemp temppin,tempread
inctemp:
if temp_count=>1 then clockright
cloc_count=0
inc temp_count
tempright:
if triggerpin=1 then tempright
pause startpause
pause 30
let temp1 =tempread//100 / 10
let temp2 =tempread // 10
gosub tempdisplay
let startpause=startpause+2
if startpause>150then templeft
goto tempright
templeft:
if triggerpin=1 then templeft
pause startpause
pause 30
let temp1 =tempread//100 / 10
let temp2 =tempread // 10
gosub tempdisplay
let startpause=startpause-2
if startpause<4 then inctemp
goto templeft
minuteset:
high ledonpin
minute=minute+1
if minute =10 then : minute = Minute+6
elseif minute =26 then : minute = Minute+6
elseif minute =42 then : minute = Minute+6
elseif minute =58 then : minute = Minute+6
elseif minute =74 then : minute = Minute+6
elseif minute = 90 then : minute = 0
endif
i2cslave DS1337, i2cfast, i2cbyte
setfreq m4
writei2c $00, (sec,minute,hour)
setfreq m32
hi2csetup off
irrecieve=0
low ledonpin
let dirsb=%11111111
return
hourset:
high ledonpin
hour=hour+1
if hour=10 then : hour = hour + 6
elseif hour=26 then : hour = hour + 6
elseif hour=36 then : hour = 0
endif
i2cslave DS1337, i2cfast, i2cbyte
setfreq m4
writei2c $00, (sec,minute,hour)
setfreq m32
hi2csetup off
irrecieve=0
low ledonpin
let dirsb=%11111111
return
clockdysplay:
let pinsb=%00000000
pause 1
let pinsb=%00111111
low middleledpin
pause 1
high middleledpin
low outledpin
if hour1=0 then skip
on hour1 gosub nr0,nr1,nr2
skip:
on hour2 gosub nr0,nr1,nr2,nr3,nr4,nr5,nr6,nr7,nr8,nr9
pause 1
let pinsb=%11101101
pause 1
let pinsb=%11111111
on minute1 gosub nr0,nr1,nr2,nr3,nr4,nr5
on minute2 gosub nr0,nr1,nr2,nr3,nr4,nr5,nr6,nr7,nr8,nr9
pause 1
let pinsb=%11101101
pause 1
let pinsb=%11111111
on sec1 gosub nr0,nr1,nr2,nr3,nr4,nr5
on sec2 gosub nr0,nr1,nr2,nr3,nr4,nr5,nr6,nr7,nr8,nr9
'pause 1
high outledpin
low middleledpin
pause 1
high middleledpin
let pinsb=%00000000
pause 1
let pinsb=%00111111
return
tempdisplay:
let pinsb=%00000000
pause 1
let pinsb=%00111111
low middleledpin
pause 1
high middleledpin
low outledpin
pause 1
gosub happy
on temp1 gosub nr0,nr1,nr2,nr3,nr4,nr5,nr6,nr7,nr8,nr9
on temp2 gosub nr0,nr1,nr2,nr3,nr4,nr5,nr6,nr7,nr8,nr9
gosub tempc
gosub happy
pause 1
high outledpin
low middleledpin
pause 1
high middleledpin
let pinsb=%00000000
pause 1
let pinsb=%00111111
return
colon:
pause 1
let pinsb=%11101101
pause 1
let pinsb=%11111111
return
happy:
let pinsb=%11110011
pause paus
let pinsb=%11100101
pause paus
let pinsb=%11010010
pause paus
let pinsb=%11000010
pause paus
let pinsb=%11010010
pause paus
let pinsb=%11100101
pause paus
let pinsb=%11110011
pause paus
let pinsb=%11111111
return
tempc:
let pinsb=%11101111
pause paus
let pinsb=%11010111
pause paus
let pinsb=%11101111
pause paus
let pinsb=%11111111
pause paus
let pinsb=%11100001
pause paus
let pinsb=%11011110
pause paus
let pinsb=%11011110
pause paus
let pinsb=%11101101
pause paus
let pinsb=%11111111
return
nr0:
let pinsb=%11100001
pause paus
let pinsb=%11011110
pause paus
let pinsb=%11011110
pause paus
let pinsb=%11100001
pause paus
let pinsb=%11111111
return
nr1:
let pinsb=%11101110
pause paus
let pinsb=%11000000
pause paus
let pinsb=%11111110
pause paus
let pinsb=%11111111
return
nr2:
let pinsb=%11101100
pause paus
let pinsb=%11011010
pause paus
let pinsb=%11010110
pause paus
let pinsb=%11101110
pause paus
let pinsb=%11111111
return
nr3:
let pinsb=%11101101
pause paus
let pinsb=%11011110
pause paus
let pinsb=%11010110
pause paus
let pinsb=%11101001
pause paus
let pinsb=%11111111
return
nr4:
let pinsb=%11111011
pause paus
let pinsb=%11110011
pause paus
let pinsb=%11101011
pause paus
let pinsb=%11000000
pause paus
let pinsb=%11111111
return
nr5:
let pinsb=%11001101
pause paus
let pinsb=%11010110
pause paus
let pinsb=%11010110
pause paus
let pinsb=%11011001
pause paus
let pinsb=%11111111
return
nr6:
let pinsb=%11100001
pause paus
let pinsb=%11011010
pause paus
let pinsb=%11011010
pause paus
let pinsb=%11101101
pause paus
let pinsb=%11111111
return
nr7:
let pinsb=%11011111
pause paus
let pinsb=%11011000
pause paus
let pinsb=%11010111
pause paus
let pinsb=%11001111
pause paus
let pinsb=%11111111
return
nr8:
let pinsb=%11101001
pause paus
let pinsb=%11010110
pause paus
let pinsb=%11010110
pause paus
let pinsb=%11101001
pause paus
let pinsb=%11111111
return
nr9:
let pinsb=%11101101
pause paus
let pinsb=%11010110
pause paus
let pinsb=%11010110
pause paus
let pinsb=%11100001
pause paus
let pinsb=%11111111
return
Last edited: