Low coolant alarm for Falcon EF & EL
Many vehicles have some sort of coolant high-temperature
warning gauge or lamp. However, a water level switch is the best detector of
sudden coolant loss, if catastrophic engine damage is to be avoided.
Ford Falcon GLi EF and EL models have provision for
installation of a low-coolant sensor in the surge tank. The Fairmont and
Fairlane, which have the sensor as standard, operate an instrument panel warning
light via the instrumentation computer. However, to retrofit this to other
models, a simple electronic interface is required.
The proprietary Ford magnetic level switch (Fig.2) measures
180Ω at correct (high) water level and 1380Ω at low water. These resistances are
too high to operate typical automobile 85Ω relay coils, which draw about 150mA
at 13.8V DC.
To solve this problem, a simple transistor circuit can be used
to buffer the output from the level switch, as shown in Fig.1.
D1 ensures that the circuit does not prematurely trigger with
high battery voltages, while LED1 provides low water indication. The latter
should be sufficiently bright under most daylight conditions. Q1 & Q2 can be
any general-purpose small-signal switching transistors.
Modern vehicles perform a self-check of the warning lights when
the ignition is first switched on. Ideally, a fail-safe test of the water level
circuit should also occur but in this case, the magnetic switch is always
closed. That’s the reason for pushbutton "test" switch S2 – it turns Q1, Q2 and
LED 1 on when pressed to show that the circuit is working. It’s not fail-safe
but satisfactory if you remember to occasionally press the switch.
All components except the LED and S2 can be built on a tag
strip, which can then be mounted behind the clock panel. The panel facia is
drilled to take a suitable rubber grommet or bezel to accommodate the LED. The
circuit operates from 10-15V, which is taken from the fused side of the ignition
circuit.
The Ford sensor kit includes an "O" ring seal and locking nut.
Before removing the proprietary electrical connector, thoroughly test the sensor
and circuit by moving the float up and down. This is important, as Ford will not
refund a damaged or modified unit!
Obviously, the surge tank has to be drained below the threaded
mounting point and a hole cut through this existing mount with a hole saw. Take
care not to damage the threads. Retrieve all swarf to prevent pipe blockages.
Refill with correct coolant and check for leaks under normal engine working
conditions.
Warning: header and surge tanks operate at pressures in excess
of 100kpa (15psi) and up to 125°C using 33% Glycol coolant!
Robert Gott,
Toowoomba, Qld. ($30)
One-second darkroom ticker
An audible 1-second ticker is easier to use in the darkroom
than a visible clock. It enables the photographer to watch what he or she is
doing when making test strips or the final print, rather than watching the
clock. This device provides those ticks and is easily constructed.
Begin by extracting the circuit board from a discarded quartz
clock and disconnect the coil. The accompanying circuit shown at left can then
be connected to the coil pads.
The coil outputs are normally "high", pulsing "low" for 30ms
every two seconds in an alternate fashion. The two diodes (D1 & D2) perform
an "OR" function, pulling the base of Q1 low briefly once every second. Each low
pulse switches Q1 off and Q2 on, briefly sounding the piezo buzzer.
And there’s your 1-second tick-er! A. J. Lowe, Bardon, Qld. ($30)
|
Simpler PC power-up
Here is an even simpler alternative to the auto power-up of ATX
PCs mentioned in the June 2004 issue; it requires no parts at all!
In ATX
PCs, the motherboard controls the power supply by switching the "PS_ON" signal
high (+5V) to enter standby mode or low (0V) for normal operation. The "PS_ON"
signal appears on pin 14 of the motherboard’s power supply connector, as shown
on the accompanying diagram.
To prevent the power supply from entering standby mode, the
"PS_ON" signal can be strapped permanently low. This can be achieved by cutting
the track leading to pin 14 of the connector on the motherboard. A wire link can
then be soldered between pin 14 and pin 15 ("COM") of the connector.
If you don’t want to modify your motherboard, you may be able
to remove the respective pin from the rear of the power supply connector housing
and splice it into one of the "COM" return wires.
Obviously, this will disable standby functionality completely,
including front-panel power button control. This is great for auto power-up of
servers on resumption of power after a UPS low-battery shutdown. I have my file
server in the roof at home and this saves getting the ladder out after the all
too frequent power failures.
Before getting the tools out, it pays to check that your
motherboard does not already have provision for automatic power-up when mains
power is applied. This might be in the form of a jumper or settings in the BIOS,
as detailed in "Mailbag" on page 4 of the September 2004 issue.
Tarek Heiland,
via e-mail. ($20)
Micro timer with LED readout
This circuit measures short duration events ranging from 10µs
to 655ms, in 10µs increments. It has two logic-level (TTL) inputs that can be
used to measure the high or low time of a pulse, or the time difference between
two pulses.
Applications include measuring the execution time of a
microcontroller program, the time difference between output signals in a
circuit, or the changeover time in switches & relays. It is particularly
useful for measuring one-off events that can be difficult to catch on a
scope.
The circuit uses three 7-segment common-cathode LED displays
for the readout. Two individual LEDs indicate whether the reading is in
microseconds or milliseconds, with the software automatically selecting the
correct range.
The circuit requires +5V at approx. 25mA in standby and 100mA
with all 18 segments turned on. In many cases, this can be sourced from the
circuit under test.
A PICAXE microcontroller measures the length of high-going
pulses applied to pin 11. This pin is driven by the output of a 74LS86 XOR gate
(IC2a). Two 74LS04 inverters (IC1a & IC1f) feed the XOR gate and act as
buffers for the two inputs. Additionally, one of the inputs had a second
inverter that can be switched in or out of the circuit with S2.
Timing starts as soon as the signals applied to the two inputs
differ, generating a high-going pulse on pin 11 of the micro. When both inputs
again match, timing stops and the pulse length is displayed. Timing is also
terminated if the pulse width exceeds the maximum measurement period
(0.65s).
When only one input is required, the signal should be applied
to input 2 and input 1 grounded. LED3 indicates the state of the signal on the
PICAXE input. Prior to the measurement, it should be off. If not, toggle switch
S2 to invert the signal. The switch therefore allows the measurement of both
high and low-going pulses.
Referring now to the program listing, the PICAXE pulsin
command is used to measure the pulse high time, which is stored in the variable
word w5. This part of the program loops until a value greater than zero
is detected.
Measurement is in 10µs steps, so when the number 1 is returned,
it corresponds to a time of 10µs. Be aware that a 43µs pulse will be read as a 4
and displayed as 40µs. This loss of precision only occurs in measurements under
1ms. Measurements over 1ms are correct.
When a pulse is detected, w5 is tested to see if it is
greater than 99 (990µs). If not, simple division splits the first 2 digits into
b1 and b2. The "µs" indicator (LED2) is then turned on by setting
pin 13 (portc 2) low.
If the value is greater than 99, the software jumps to the
"ms:" section. First, the "ms" indicator (LED1) is turned on by setting pin 13
(portc 2) high. Next, a check is made to see if w5 is less than 99ms. If
so, there must be a decimal place, so the decimal point is turned on (portc 3).
Division of the returned value occurs, with the results in b1, b2
and b3.
If w5 is greater that 99ms, then the "high_ms:" routine
is executed. The value in w5 is divided by 1000, placed in b0, and
the first two digits divided into b1 and b2. To get the third
digit, b0 is multiplied by 1000 and placed in w4. Again, the
results are returned in variables b1-b3.
Finally, the results from the "decode:", "ms:" or "high_ms:"
sections are displayed on the readout by the "display:" routine. This part of
the program loops back on itself, so that the last measurement is held on the
display until the reset switch (S1) is pressed.
Seven of the PICAXE-18X’s dedicated output pins (out1 - out7)
are used to drive the segments in each of the displays via 150Ω current-limiting
resistors. The value for each digit is stored in the variables b1, b2 & b3, as described above. Using the lookup command, the
program converts these values into a binary pattern needed to illuminate the
correct segments. The result is then written to the output port using the pins
command.
As the anode pins of all three displays share the same seven
output lines, a multiplexing technique is used to sequentially enable each
display for 3-5ms at a time. This is achieved in the circuit by turning on
transistors Q1, Q2 & Q3 in turn, grounding the common-cathode pins of the
displays. Three portc output pins drive the transistors via 1.8kΩ biasing
resistors.
A secondary use for this circuit and software is as the basis
for any project where 7-segment readouts need to be driven by a PICAXE. This is
achieved simply by omitting the input circuit and indicator LEDs. Also, delete
the program lines prior to the "display:" routine.
In its present form, the "display:" routine will drive three
7-segment displays, though a fourth is easily added. Brett Cupitt Ashfield, NSW. ($60)
|
|
'Pulse length measurement and display for PICAXE-28X
'Registers,b10,b11 (w5) = pulse length
'b5 = 7 segment display, segment config data
'b0 = temporary/working register
'b1-b4 = digits to be displayed; b1=MSB, b3=LSB
init:
let w5=0 'clear w5 value
measure: 'pulse length measure routine
pulsin 0,1,w5 'read pulse length on input 0 into w5
if w5>0 then decode: 'if we have a reading, process it
goto measure: 'loop if no value
decode: 'are we measuring us or ms
if w5>99 then ms: 'if its a value in ms, go to ms
section
low portc 2 'OK, its a value in us, turn us LED on
let b1=w5/10 'MSB
let b2=w5//10 '2nd digit
let b3=0 'LSB
goto display: 'now display it
ms:
high portc 2 'turn ms LED on
if w5>9999 then high_ms 'is it a big or little number?
high portc 3 'decimal point on
let b0=w5/100 'get the 1st 2 digits
let b1=b0/10 'MSB
let b2=b0//10 '2nd
let b3=w5//100/10 'LSB
goto display: 'now display it
high_ms:
let b0=w5/1000 'get 1st 2 digits
let b1=b0/10 'get MSB
let b2=b0//10 'get 2nd digit
let w4=b0*1000 'calculate the 1000’s
let w4=w5-w4 'take these away from the total
let b3=w4/100 'the hundreds are left, get the MSB
display: 'start of data display routine
lookup b3,($7e,$0C,$B6,$9E,$CC,$DA,$FA,$0E,$FE,$DE),b5
low portc 6 'turn off MSB
let pins=b5 'output 7 segment display sequence
high portc 4 'turn on LSB
pause 6 'hold for 6ms
lookup b2,($7e,$0C,$B6,$9E,$CC,$DA,$FA,$0E,$FE,$DE),b5
low portc 4 'clear LSB
let pins=b5 'output 7 segment display sequence
high portc 5 'turn on 2nd digit
pause 4 'hold for 4ms
lookup b1,($7e,$0C,$B6,$9E,$CC,$DA,$FA,$0E,$FE,$DE),b5
low portc 5 'turn off 2nd digit
if b1=0 then display: 'blank leading zeroes
let pins=b5 'output 7 segment display sequence
high portc 6 'turn on MSB
pause 4 'hold for 4ms
goto display: 'cycle
(Also available as a zip file at the bottom of the article)
|
Water pump monitor
This circuit is designed to stop a fresh water pump from
running too long. When you live on the land, your water supply is stored in
tanks and you tend to be more vigilant about water use. If, for example, a pipe
ruptures or a tap is left open, loss of pressure in the line will cause the pump
to start. If the owner does not know this or is away, then the pump could empty
a full tank within a short time.
The project was conceived when a water pipe burst while I was
away for the weekend. Luckily, a neighbour noticed the water spout and shut the
pump off. If the tank had emptied that would have been bad enough but the cost
of a burnt-out pump would have been much worse.
Another use is as a timer for watering the garden. Pick a time
and turn on the tap. This unit will shut off the pump and sound an alarm at the
end of the selected time. Perhaps you have teenagers that like to take long
showers. Set the time to 10 minutes and watch them complain!
Five different times are available and these can be altered to
suit your needs by editing the microcontroller program. To reset the pump after
a time out, simply press the reset button for two seconds.
The circuit works by detecting the vibrations from the pump
while it is running. When the pump starts, a timer is started and after the set
time has elapsed the pump will be shut off and an alarm sounded.
If the pump you have is quite powerful, pressure in the line
can build up high enough to stop the pump. If a tap is still open, the pump will
start again when the pressure drops. The software takes all this into
consideration and is not fooled by the pump switching on and off. The pump must
be off for more than 20 seconds for the program to reset the timer and think
that the tap has been closed.
A PICAXE-08 microcontroller runs the whole show. It knows the
pump is running because a piezo sensor is physically mounted on the pump. Motor
vibrations excite the piezo sensor, generating a small AC voltage across its
terminals. This signal is amplified by op amp IC2a, which is set for a gain of
about 85. From here, the signal is rectified by a diode pump circuit and then
compared with the voltage on the wiper of VR1 by op amp IC2b. When the voltage
on pin 5 exceeds that on pin 6, the output of the op amp swings high, turning on
Q3. This turns on the LED and pulls pin 3 of the micro (IC1) to a logic low
level via D4.
Next, the micro reads the voltage on pin 6 as selected by S1.
As this pin is an ADC (analog-to-digital converter) input, the voltage read will
vary according to the position of the switch.
The result is used by the program to select one of five times
from a look-up table stored in memory.
The pump "run" timer now starts and if the signal on pin 3
remains low (pump on) for longer than the selected time period, the micro drives
pin 7 high to switch on Q2, sounding the alarm. More importantly, it also drives
pin 5 high, switching on Q1 and energising the relay, which in turn opens the
normally-closed contacts to disconnect the pump motor.
To reset the pump, just press the reset button (S2). The pump
will now start again because there will be no pressure in the line. Once
pressure has built up again the pump will stop, assuming you have turned off the
offending tap or fixed the fault with the lines.
The five selectable times are determined by the number stored
in the "time" variable. Each unit equals one second. For example, to set a time
of 30 minutes, the number 1800 would be used. As it stands, the program has been
set for 90, 45, 30, 20 and 15 minutes.
When mounting the piezo sensor, make sure that it is physically
touching the pump. Most pumps have removable end plates. The disc can be
inserted between the end plate and the pump body.
Any single-plate piezo transducer can be used for the job. Many
piezo transducers come with a plastic surround. Remove the disc by prising it
out of the surround before mounting. Oatley Electronics sells discs that are
ideal for this application.
Jeff Monegal,
North Maclean, Qld.
|
' Water Pump Controller v1.00
' PICAXE-08
start:
symbol cntr = b2
symbol time = w0
symbol pump = 2
symbol bell = 0
symbol reset = pin3
begin:
low pump 'make sure pump is enabled
cntr = 0 'clear the "pump off time" counter
main_lp:
if pin4 = 0 then run 'if pin 4 goes low the pump is running
goto main_lp
run:
pause 2000 'debounce the pump for 2 seconds
if pin4 = 1 then main_lp 'if pin4 = 1 then false start
gosub read_time 'read the "time set switch"
time_loop:
time = time - 1
if time = 0 then alarm
if pin4 = 1 then is_pump_stopped 'pump off for > 20
secs?
cntr = 0
goto all_ok
is_pump_stopped:
pause 100 'pump debounce delay
if pin4 = 0 then all_ok 'if pump still on the continue
cntr = cntr + 1 'count seconds pump is off
if cntr = 20 then begin 'if > 20 secs put system in
standby
all_ok:
pause 1000
goto time_loop
alarm:
high pump 'disable the pump
loop:
pulsout bell,50 'sound the buzzer
pause 300
pulsout bell,50 'sound the buzzer again
if reset = 0 then begin 'if reset switch pressed, reset
system
pause 3000
goto loop
'This routine looks at the select time switch (S1)
'and loads required value into "time" variable
read_time:
readadc 1,b0
if b0 > 30 then four
time = 5400
return
four:
if b0 > 55 then three
time = 2700
return
three:
if b0 > 83 then two
time = 1800
return
two:
if b0 > 110 then one
time = 1200
return
one:
time = 900
return
(Also available as a zip file at the bottom of the article)
|
Reducing the effective mains voltage
Would you like to use a particular power transformer in an
amplifier or some other project you’re building but its secondary voltage is
just a little too high? Or perhaps you have an imported piece of equipment with
a power transformer rated for a mains voltage of 220V, so it gets too hot and
bothered running from 240V? It’s easy to solve these and similar problems by
using a standard off-the-shelf low voltage transformer as a DIY autotransformer,
to reduce the effective mains voltage fed to your equipment.
The idea is to connect some or all of the secondary winding of
the extra transformer in series with the mains voltage fed to your equipment,
with its polarity chosen so that its voltage subtracts from the 240V input (see
circuit A). Here a standard transformer with a 12V-0-12V secondary winding is
connected with the full secondary in series with the active output lead, so the
effective output voltage becomes 240V - 24V, or 216V. This exact arrangement
would be fine for any application where you need to reduce the mains voltage for
equipment by about 10%, to make its power transformer run cooler or to bring its
secondary voltage down so your power supply electros can be run within their
ratings.
Of course, if you don’t need to reduce the mains voltage by a
full 10%, you could use only half the secondary winding connected in series with
the active output lead. This will give an output voltage of 240V - 12V, or 228V
(a reduction of 5%). Or you could use a transformer with a multi-tapped
secondary voltage, which would allow you to reduce the output voltage in steps
of 1.5V or 3V.
When you’re choosing the transformer for this kind of use, make
sure that its secondary winding is rated to handle the full-load primary current
of the main power transformer in the equipment it’s to be used with. So if your
amplifier has a 300VA power transformer, for example, its full-load primary
current will be around 1.25A (300/240V). In this case, you’d pick a
mains-reduction transformer with a secondary winding rated to handle 1.5A or 2A
and with a voltage equal (or close) to the mains voltage reduction you want.
Can you use the same kind of transformer to step up the
effective mains voltage by 10% or so? Yes, simply by connecting its secondary
winding (or a part of it) in series with the active mains lead with its polarity
reversed, so the secondary voltage adds to the output instead of subtracting.
This is illustrated in circuit B, where the same transformer is connected with
half its secondary in series, to add 12V to the mains input and deliver an
output of 252V.
Note that because both of these circuit configurations use the
additional transformer as an autotransformer, they do not provide any isolation.
For safety reasons, fit the transformer in a sturdy metal box, and connect both
the box and the transformer frame to mains earth.
SILICON CHIP.