My Simple shield seed propagator controller..

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!!




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

cactusface

Senior Member
Propagator control.....

Hi,
I would say Hi all, but this thread seems to have fallen by the wayside!! But for anyone who's interested here are the Diptrace files! Oh dear just remembered need to alter the extension name to DSN or something! Don't forget to rename them! If you prefer PDF's I can do that too.
Any feedback would be welcome...

Regards

Mel.
 

Attachments

cactusface

Senior Member
Seed prapagator....

Hi Hemi345, and all.
Here's a couple of PDF's that might be useful and at least show the workings of the circuit, it can of course be modified in many ways! The 2 file upload limit means, I had to leave a file behind, shout if you need it, not sure which it was now....

I've just finished my first buggy-bot using my simple shield and matching PCB, this will appear soon, just needs a bit of tweaking??

Regards
Mel.
 

Attachments

Last edited:
Top