| The Free Site | vBuddy - make friends, share photos, blogs, have fun | Cheap Web Hosting - starting at $5 |
12HP Engine Autostart
I needed to remote start a 12HP engine. This is part of a chairlift system that runs 500 metres down a hill and I needed to start it by remote control. Any auto start system needs to turn on the starter motor and then turn it off when the engine kicks over. We all do this every day without thinking when we start our cars, but spare a thought for deaf people who don't know when the engine has actually started.
This system uses a slotted opto switch and a small piece of aluminium sheet mounted to a rotating part of the engine.
The original control system from the key switch has three position. Off, Run and Start. Run energises a relay which opens a contact which was shorting out the ignition coil. Thus in Off, this relay is not energised, and the normally closed relay is shorting out the ignition and if the engine were running and were switched to Off, the engine would stop. Start controls the starter motor relay.

; pin0=diagnostic led
; pin1=turn off relay (high = relay off = run)
; pin2=starter motor
; pin3=pulse input from speed slotted optoswitch (via 100k/0.01 low pass)
; pin4=turn on - low = turn on.
; uses 08
main: low 0
low 1
low 2
If pin4 = 0 And b0 = 0 Then
goto start; was 1, now =0 so start
End If
Let b0 = pin4
pulsout 0,1000; short pulse to say is alive
pause 1000
GoTo main
start:high 1; disable the short on the ignition coil
high 2; turn on the starter motor
let b2=0; flag for successful start
for b1=1 to 10; tries for 6.5 seconds
pulsin 3,0,w2; triggered by negative edge so measures time till next pulse
' measures time in multiples of 10us so 10000=0.1 seconds
' 600rpm = 10 per second.= 10000 above
' make cutoff 20000 = 300rpm - can adjust this
If w2 > 0 And w2 < 10000 Then
Let b2 = 1
exit; 0 = timeout, so test for shorter than 8000 but still a pulse
End If
pause 10; maybe not needed
Next b1
low 2; turn off starter motor
If b2 = 0 Then GoTo reset
; now is running
running: If pin4 = 1 Then GoTo main
pulsout 0, 1000
pause 100
GoTo running
reset: low 1
low 2
low 0
If pin4 = 1 Then GoTo main
pulsout 0, 1000
pause 2000; slow pulses
GoTo reset
Home