Using limit
switches to control behavior
Limit switches are often
used to control mechanisms on robots. While limit switches are simple to use,
they only can sense a single position of a moving part. This makes them ideal
for ensuring that movement doesn't exceed some limit but not so good at controlling
the speed of the movement as it approaches the limit. For example, a rotational
shoulder joint on a robot arm would best be controlled using a potentiometer or
an absolute encoder, the limit switch could make sure that if the potentiometer
ever failed, the limit switch would stop the robot from going to far and
causing damage.
What values
are provided by the limit switch
Limit switches can have
"normally opened" or "normally closed" outputs. The usual
way of wiring the switch is between a digital input signal connection and
ground. The digital input has pull-up resistors that will make the input be
high (1 value) when the switch is open, but when the switch closes the value
goes to 0 since the input is now connected to ground. The switch shown here has
both normally open and normally closed outputs.
It's possible that a
limit switch might close then open again as a mechanism moves past the switch.
If the closure is fast enough the program might not notice that the switch
closed. An alternative method of catching the switch closing is use a Counter
object. Since counters are implemented in hardware, it will be able to capture
the closing of the fastest switches and increment it's count. Then the program
can simply notice that the count has increased and take whatever steps are
needed to do the operation.
Above is a subsystem that
uses a counter to watch the limit switch and wait for the value to change. When
it does, the counter will increment and that can be watched in a command.
No comments:
Post a Comment