cactusface
Senior Member
Hi,
For those of you who might have taken an interest in my Simpler 20M2 shield project, here's my Propagator controller, a bit more then just a thermostat.
Depending on the current light levels it sets a target temprature, There's no point in having too much heat if you have little or no light, like most plants the seeds will grow long and leggy (I like leggy?), looking for more light to photosynthosise??
Using a Picaxe 20M2 for this job, is a bit of over kill, even an 08M would do the job, or it could be changed to work with other Picaxe chips, boards or the AXE401 shield, which really would be OTT. The controller also uses my simple shield serial LCD board too.
The propagator itself consist of a wooden tray, this holds 2 standard seed trays and a 50W soil heating cable lays in the bottom, the bottom is covered with polystrene sheet covered in kitchen foil.
If anyone is interested I can upload all Diptrace or PDF files, etc. See attached.
Regards
Mel.
PS. Yes my Cactus seeds are doing well!!
For those of you who might have taken an interest in my Simpler 20M2 shield project, here's my Propagator controller, a bit more then just a thermostat.
Depending on the current light levels it sets a target temprature, There's no point in having too much heat if you have little or no light, like most plants the seeds will grow long and leggy (I like leggy?), looking for more light to photosynthosise??
Using a Picaxe 20M2 for this job, is a bit of over kill, even an 08M would do the job, or it could be changed to work with other Picaxe chips, boards or the AXE401 shield, which really would be OTT. The controller also uses my simple shield serial LCD board too.
The propagator itself consist of a wooden tray, this holds 2 standard seed trays and a 50W soil heating cable lays in the bottom, the bottom is covered with polystrene sheet covered in kitchen foil.
If anyone is interested I can upload all Diptrace or PDF files, etc. See attached.
Regards
Mel.
PS. Yes my Cactus seeds are doing well!!
Code:
; *******************************
; Filename: Prop-Controller....
; Date: 04/12/2012
; File Version: V1.1
; Written by: MS
; Function: Prop-controller
; Last Revision:
; Target PICAXE: 20M2-Shield
; *******************************
#picaxe20m2 '
symbol intemp=b.0 ;temp input
symbol light=b.1 ;light input
symbol keys=b.2 ;keypad input
symbol heater=pinc.1 ;Heater/relay output
symbol LED=pinc.2 ;LED indicater output
symbol All_clear=%00000000
symbol line1=128 'Set up LCD line codes (2x20Chrs)
symbol line2=192 'Start location for each line
symbol baud=T2400 'Serial baud rate baud,N,8,1
symbol RTC=%11010000 ;RTC start addrres
symbol target_temp=b21
dirsB=%00000000 ;PortB inputs
dirsC=%11111111 ;PodtC outputs
wait 1 'wait 1 sec for system to power up and stabilize
serout c.0,baud,(255,1,255,1) 'LCD Backlight on
gosub clearlcd 'clear LCD
start:
gosub gettime 'Get current time & date from DS18B20
serout c.0,baud,(254,line1,b15,b16,"/",b17,b18," ",b11,b12,":",b9,b10,":",b7,b8," ")'display current date & time
gosub temp1 'Get temp reading 8 bit
serout c.0,baud,(254,line2,"Temp ",#b27,"c ","L=", #b22) 'display temp & light
if b7="0" and b8="0" then gosub temps ;Check if seconds =00 if so display temps
gosub checklite ;Check light level and set target_temp
gosub checktemp ;Check temp and switch heater on/off
goto start
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;SubRoutines
gettime:
i2cslave RTC,i2cslow,i2cbyte 'set up i2c DS1307 RTC
readi2c 0,(b0,b1,b2,b3,b4,b5,b6) 'read Time and Date
;return
convert:
bcdtoascii b0,b7,b8 'Secs Convert to ASCII
bcdtoascii b1,b9,b10 'Mins
bcdtoascii b2,b11,b12 'Hours
bcdtoascii b3,b13,b14 'DayOfWeek
bcdtoascii b4,b15,b16 'Date
bcdtoascii b5,b17,b18 'Month
bcdtoascii b6,b19,b20 'Year
return
;----------------------------------------------------------------
clearlcd:
serout c.0,baud,(254,line1," ")
serout c.0,baud,(254,line2," ")
return
;-------------------------------------------------------
checktemp: 'Get temp reading 8 bit
gosub temp1
if b27<target_temp then gosub heat_on 'turn heater on
if b27>target_temp then gosub heat_off 'turn heater off
return
;---------------------------------------------------------
heat_on:
let heater=1 ;Switch heater on
let LED=1 ;Indicator LED on
return
heat_off:
let heater=0 ;Switch heater off
let LED=0 ;Indicator LED off
return
;---------------------------------------------------------------
checklite:
readadc light,b22
if b22>235 then gosub Lhigh
if b22>150 and b22< 235 then gosub Lmedium
if b22<150 then gosub Llow
return
Lhigh:
target_temp=23
return
Lmedium:
target_temp=18
return
Llow:
target_temp=14
return
;---------------------------------------------------------------
temps: ;Check current temp with tatget
gosub clearlcd
gosub Temp1
serout c.0,baud,(254,line1,"Prop Temp:",#b27,"c ") 'display temp
serout c.0,baud,(254,line2,"Target Temp:", #target_temp,"c ")
wait 10
gosub clearlcd
return
;------------------------------------------------------------------
temp1:
readtemp intemp,b27
;pause 50
return
Attachments
-
329.9 KB Views: 87