Water Tower Servo Project
revised 8-15-07
Objective: Use a servo and a controller
board to animate the arm on an Aristo Craft water tower. The
arm is set to drop when button 9 on a Locolinc transmitter is hit.
The arm will drop and stay dropped until the button is hit again. |
The arm was removed and redrilled to give the servo better leverage.
One hole is the new pivot point and one is for the control arm.

The spout mount is shown here along with the piano wire control rod.
Note the small brass washer to the left side of the arm mount - it was needed to
center the spout.

The water tower was disassembled and the servo mounted underneath the floor
of the water tank.

Two notches were cut into the floor to allow two screws & bolts to hold the
bottom of the servo. The black wire will go to the top of the servo to
hold it in place.

Here is the mounted servo. The servo control cable goes through an
existing hole in the floor and into the water tank.

The horn on the servo was cut so that it would not hit the floor.

The control wire was bent to fit the installation.


TWOPOTS_HI_LO_SERVO_08M-V1-1.BAS
symbol SoundBoard = 0
symbol RCInput = pin3
symbol Pot1 = 2
symbol Pot2 = 1
symbol Srvo = 4
symbol topmax = 245 '225 manual recommended max
symbol bottommin = 25 '75 manual recommended min
symbol top = w3
symbol bottom = w4
symbol loop1 = b0
symbol delay=20
pause 1000
for loop1=1 to 5
servo Srvo, top
pause 50
next loop1
low Srvo'relax servo
pause 50
start:
if RCInput=0 then start ' wait till button pressed
readadc10 Pot1, top
top=top/4
if top > topmax then fix1
if top < bottommin then fix2
goto skip1
fix1:top=topmax
goto skip1
fix2: top=bottommin
skip1:
debug top
readadc10 Pot2, bottom
bottom=bottom/4
if bottom > topmax then fix3
if bottom < bottommin then fix4
goto skip2:
fix3:bottom=topmax
goto skip2:
fix4:bottom=bottommin
skip2:
if bottom > top then fix5:
goto skip3:
fix5:bottom=top
skip3:
debug bottom
'''low SoundBoard 'start sound
'pause 6000
for loop1= top to bottom step -1
servo 4, loop1
'debug b0:
pause delay
next loop1
'''high SoundBoard 'stop sound (doesn't really stop till cycle done)
'pause 16000
for loop1=bottom to top step 1
servo Srvo, loop1
'debug b0:
pause delay
next loop1
low Srvo 'relax servo
pause 500
goto start:
|
Software modified for coal tower - 08-19-07 - activates servo before sound
activation.
TWOPOTS_HI_LO_SERVO_08M-V1-12BAStipple.BAS
symbol SoundBoard = 0
symbol RCInput = pin3
symbol Pot1 = 2
symbol Pot2 = 1
symbol Srvo = 4
symbol topmax = 245 '225 manual recommended max
symbol bottommin = 25 '75 manual recommended min
symbol top = w3
symbol bottom = w4
symbol loop1 = b0
symbol delay = 20
low soundboard
pause 1000
high soundboard
for loop1=1 to 5
servo Srvo, top
pause 50
next loop1
low Srvo'relax servo
pause 50
for b0=1 to 10:toggle soundboard:pause 500:next b0
start:
high SoundBoard 'stop sound (doesn't really stop till cycle done)
if RCInput=0 then start ' wait till button pressed
readadc10 Pot1, top
top=top/4
if top > topmax then fix1
if top < bottommin then fix2
goto skip1
fix1:top=topmax
goto skip1
fix2: top=bottommin
skip1:
'debug top
readadc10 Pot2, bottom
bottom=bottom/4
if bottom > topmax then fix3
if bottom < bottommin then fix4
goto skip2:
fix3:bottom=topmax
goto skip2:
fix4:bottom=bottommin
skip2:
if bottom > top then fix5:
goto skip3:
fix5:bottom=top
skip3:
'debug bottom
for loop1= top to bottom step -1
servo 4, loop1
'debug b0:
pause delay
next loop1
pause 2000
low SoundBoard 'start sound
pause 100
high soundboard
pause 22000
'high SoundBoard 'stop sound (doesn't really stop till cycle done)
'pause 16000
for loop1=bottom to top step 1
servo Srvo, loop1
'debug b0:
pause delay
next loop1
low Srvo 'relax servo
pause 500
goto start:
|