After
long weeks of assembler programming and
electronical design and a few thousands of bytes later, a working
elevator
mechanism was developped. Our main goals were accomplished:
Control the
direction of the lift
The
motor driver chip L293b allowed us to change
the direction by sending a complementary set of digital signals.
Control the
speed of the lift
Using
PWM techniues, the duty cycle was modified
during acceleration and deceleration of the elevator, chopping the
voltage at
the enable gate of the driver chip. Thus, speed control was
accomplished.
Respond on
requests from customers at different levels
The
program regurarly updates the state of the
buttons and once a request is detected immediately moves in the right
direction.
Use a clever
algorithm to decide which floors to service
first
If
multiple requests are pending, an elevator
algorithm is used to determine in which order the floors need to be
serviced.
It is based on the principle that the lift will continue travelling in
a
certain direction as long as there are demands in that same direction.
Build a three
story lift shaft and cage
A
wooden structure was built of about a meter high
and a light cage was constructed.
Make the
elevator control as robust as possible
The
elevator does not freak out in unexpected
situations, e.g. somebody who continuosly presses the button of a
certain floor
while the lift is already there, or someone who requests to go up but
changes
his mind and presses a lower destination floor.
In
addition:
Transform the
parallel data from the buttons to a serial
input to the microcontroller
In order to
save space at the gates of the microcontroller, a shift register was
succesfully implemented. This gathers the parallell information from
the seven
different buttons and sends it as a serial code to the microcontroller.
Open
and close doors of the cage
This
was not yet
implemented and is certain an idea for the future to further improve
the
elevator. Due to lack of time this feature was not yet assembled, but
the current
configuration certainly permits it. The driver chip L293b can drive a
second
motor. However, it must be a light motor because mounting it on top of
the
elevator increasing it’s weight and therefore the current in
the circuit. This
L293b chip is limited to 1A, if necessary a heavier duty chip must be
installed.
Begin and end
sensors of the shaft for safety
At
the ceiling and bottom of the shaft, two sensors
were installed to detect if the elevator hits the roof or bottom.
Although this
normally never happens and was also not observed during the tests,
these two
sensors and the correspond emergency procedure programmed, ensure that
in the
case of this very unlikely event, no damage occurs to the cage or motor.
We are
satisfied with the achieved result. We have
some ideas for the future which can further improve the configuration:
· Open en close door mechanism
· Infrared
sensor to detect if there is still somebody standing in between the
doors
· Overweight detection of the cage
· Expansion
to more floors
· Allow the elevator to be heavier
· Try the use of encoder for position
detection
· Use photosensors for end detection system instead
of buttons
We
thourouhgly enjoyed this project, even though we
cursed the assembler programming several times. But this was due to
unexperience with this kind of programming and, at the end of the
journey, we
have a much better view and feeling with assembler language. We enjoyed
being
able to work independently and to investigate certain topics more in
detail:
for instance analog to digital conversion, pulse width modulation,
H-bridges
for motor control, interrupt handling, design of a pcb bord,
…
Finally,
we would like to thank Ronald Van Ham,
Kristof Goris and Jean-Pol for there devote assistance to make this
project
work.
Back