Newsgroups: comp.robotics
Path: utzoo!utgpu!watserv1!watmath!mwtilden
From: mwtilden@watmath.waterloo.edu (Mark W. Tilden)
Subject: Re: DC Motor Controllers
Message-ID: <1991Jun14.162825.17716@watmath.waterloo.edu>
Organization: University of Waterloo
References: <1991Jun3.220425.12281@osceola.cs.ucf.edu> <28960001@teecs.UUCP>
Date: Fri, 14 Jun 1991 16:28:25 GMT
Lines: 80


Speaking of motor controllers, the following is a simplification
of the classic transistor H-switch which does allow for left-right
speed control.  It's topology is pretty elegant and can be put onto
a single-sided pcb in a 1" x 3/4" area.  The transistors can be 
any complementary pairs (although uncomplementary pairs will work).
Because of the excessive gain factor, R1 must be greater than 27k or
the transistors over-bias and efficiency drops.  The gain factor means that
this circuit can be easily driven by a CMOS anything.

The 74139 is an addition which guarentees that the H switch never smokes
itself.  It also features an active-low engage for the circuit and
an output which your controller can read back to interpret as an
'error' condition.  The nice thing about the 139 is that as it contains
two 1-of-4 decoders, mounting a symettric driver on the other side is 
no prob.

Also, if you need drivers whiich are active high, rather than active
low as in this case, just replace the outside drive PNP transistors 
with NPNs of any type.  Be sure the collector of the outside NPN goes
to the base of the PNP, as the collector of the PNPs in this case go 
to the base of the drive NPNs.  If you mount them backwards, no problem,
just your efficiency suffers.




                  Vcc |---------------------*----|                      
                      |                     |    |                 
                      |                     |    |                 
                      p                     |    p                 
        R1      p---n                       |      n---p     R1         
     |-\/\/\--n       P                     |    P       n--\/\/\-|
     |          P     |                     |    |     P          |
     |          |     *-----------(M)-------|----*     |          |
     |    |-----|     |                     |    |     |          |
     |    |           N                     |    N     |          |
     |    |   |-----p                       |      p---|-----|    | 
     |    |   |       n                     |    n     |     |    |
     |    |   |       |                     |    |     |     |    |
     |    |   |       |                     |    |     |     |    |
     |    |   |   Gnd |------*--------------|----|     |     |    |
     |    |   |              |              |          |     |    |
     |    |   |--------------| -------------|----------|     |    |
     |    |                  |              |                |    |
     |    |------------------| -------------|----------------|    |
     |                       |              |                     |
     |-----------------------|---| |--------|---------------------|
                             |   | |        |---|                  
                             |   | |   ---------|-----< Reverse  
                             |   | |   | -------|-----< Forward    
       Error Return <--------|-| | |   | | -----|-----< engage (-ve)
                             | | | | | | | |    |                    
                           | 8             1 |  |                  
                           |    74LS139      <  |                  
                           | 9            16 |  |                  
                             | | | | | | | |    |                  
                                           |---r|                  
                                                               
Legend:
               |                      |
collector-     P                      N                      |
base-       -n     PNP trans.      -p      NPN trans.    ----*----  wire join.
emitter-       p                      n 
               |                      |
                                                              

Mods for making a high-voltage version is as simple as using OC drivers
and a pull up resistor on each outside transistor.

Has served me well on many an occasion, not the least my micromouse.

Is all.


-- 
Mark Tilden: _-_-_-__--__--_      /(glitch!)  M.F.C.F Hardware Design Lab.
-_-___       |              \  /\/            U of Waterloo. Ont. Can, N2L-3G1
     |__-_-_-|               \/               (519) - 885 - 1211 ext.2454,
"MY OPINIONS, YOU HEAR!? MINE! MINE! MINE! MINE! MINE! AH HAHAHAHAHAHAHAHAHA!!"
