' ### INPUTS ### ' DIGITAL symbol temp_in = 6 ' digital termometer inne i vŠxthuset symbol temp_out = 7 ' digital termometer utanfšr vŠxthuset 'ANALOG symbol watersensor = 3 ' "vesivahti" symbol LDR = 0 ' LDR-motstŒnd mŠter ljuset utanfšr ' ### OUTPUTS ### symbol valve = 0 ' vattenventilen symbol relay = 5 ' relŠ fšr extern apparatur, t.ex. lampa symbol led_back = 6 ' led:ar i bakre raden symbol led_side = 7 ' led:ar i framraden och sidorna ' stegmotorn ligger pŒ port 1, 2, 3 och 4 ' ### CONSTANTS - F…RHANDSINST€LLDA V€RDEN ### symbol stepper = 10 ' Intervall mellan impulserna till stegmotorn symbol motorsteps = 150 ' Hur mŒnga impulsserier motorn ska kšra. symbol waterbreak = 30 ' LŠngden pŒ bevattningspausen. Default kring 30 sek. symbol indoor = w0 symbol outdoor = w1 symbol light = w2 symbol moisture = w3 symbol set_motor_position = w4 main: ' LŠser av temperaturen readtemp temp_in, indoor readtemp temp_out, outdoor if indoor => 26 and indoor > outdoor then ' MŠter ifall temperaturen Šr šver 26 och varmare inne Šn ute. if set_motor_position = 1 then goto skip_open ' Om luckan redan Šr uppe hoppar programmetill skip_open. for b3 = 1 to motorsteps ' Anger hur mŒnga steg motorn ska vŠnda. Detta stŠlls in i bšrjan av koden. gosub open_sesame ' Kšr subrutinen open_sesame. next b3 let set_motor_position = 1 endif skip_open: if indoor < 26 and set_motor_position = 1 then for b4 = 1 to motorsteps gosub close_sesame next b4 let set_motor_position = 0 endif readadc LDR, light ' LŠser av LDR if light < 120 then gosub lightson ' och tŠnder ledarna ifall det Šr mšrkt if light > 120 then gosub lightsoff ' eller slŠcker dem ifall det Šr ljust. readadc watersensor, moisture ' LŠser av fuktigheten i myllan if moisture < 120 then gosub valveopen ' och šppnar ventilen ifall det Šr torrt, if moisture > 120 then gosub valveclosed ' stŠnger ventilen ifall det Šr vŒtt. goto main ' tillbaka till bšrjan ' ### SUBRUTINER ### open_sesame: ' Ger motorn 4 impulser att kšra framŒt, dvs. šppna. low relay low 1 high 2 high 3 low 4 pause STEPPER low 1 low 2 high 3 high 4 pause STEPPER high 1 low 2 low 3 high 4 pause STEPPER high 1 high 2 low 3 low 4 pause STEPPER low 1 low 2 low 3 low 4 return close_sesame: ' Ger motorn 4 impulser att kšra bakŒt, dvs. stŠnga. high relay high 1 high 2 low 3 low 4 pause STEPPER high 1 low 2 low 3 high 4 pause STEPPER low 1 low 2 high 3 high 4 pause STEPPER low 1 high 2 high 3 low 4 pause STEPPER low 1 low 2 low 3 low 4 return lightson: low relay high led_back high led_side return lightsoff: high relay low led_back low led_side return valveopen: high valve wait 5 return valveclosed: low valve return