Subject:
|
How to run 8 servos by adding one HC chip
|
Newsgroups:
|
lugnet.robotics.handyboard
|
Date:
|
Tue, 26 Mar 1996 02:48:00 GMT
|
Original-From:
|
Randy Sargent <rsargent@kipr^saynotospam^.org>
|
Viewed:
|
1961 times
|
| |
| |
> > (If you're
> > running multiple servos, I think I know a single-chip hardware mod to drive
> > up to 8 servos from a single timer output.)
> >
> > -- Randy
> I'm doing signal conditioning for pan/tilt and (ultimately) drive/steer
> signals from an RC receiver and driving servos with the processed
> signals. All power for the servos is external, so all I need is signals
> through the Handyboard.
>
> -mike
> --------
> What is it?
> Chris Tant
Warning: I haven't tried the following idea.
Single chip add-on to control 8 servos using one timer line and a few
digital outputs:
The 74HC238 is a 3 to 8 demultiplexor. (see
http://www.st.com/STonLINE/books/all/1926.html for datasheets). Unlike the
more common HC138, its outputs are active high. It also appears to be
harder to find (I found it in the JDR Microdevices catalog, 1-800-538-5000,
but not glancing through Jameco or Digikey).
Since servo pulses are quite short (typically .5 - 2ms), and their period
is large in comparison (20ms), you can have a single timer line time-slice
between the different servos you're running. Simply run a timer line into
one of the enables of the HC238, run 3 digital outputs from the 6811 (such
as the Port D lines) to the three HC238's select lines, and run the 8
output lines to up to 8 servos. Set the timer line to toggle on output
compare, and use the following algorithm in your interrupt handler:
timer_interrupt_handler:
if last edge was rising then
reschedule compare for t_old+width[current_servo]
return
if last edge was falling then
reschedule compare for t_old+2.5ms-width[current_servo]
current_servo++
if (current_servo > 7) current_servo= 0
output current_servo # to select lines (port D)
If you only want 4 servos, you can just use two port D lines.
(Also, I think there is a chip, maybe the HC237?, which latches the select
lines. You can put this chip on a bus, if you have an extra chip select,
and not sacrifice any port D lines. Maybe someone could do this on an
expansion board).
-- Randy
|
|
1 Message in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|