Motor Driver Board
Need an inexpensive motor driver board for your small
robot project? The schematics and board files for a great dual H-Bridge
motor driver are provided here, as well as some instructions to get you
started.
H-Bridge Specifications:
The motor drivers consist of two TPIC0107B H-Bridge
motor driver chips from Texas Instruments.
They are capable of driving motors with up
to 3 A of current each, though in my design 2 A is probably a
conservative
value to use since I don't use the optional heat sinks. These boards
are great for driving any of the geared DC motors available from Lynxmotion or Jameco. Lynxmotion also has matching
hubs and wheels.
Board Files:
The schematic and board files are in EAGLE format.
EAGLE is an excellent CAD application from CadSoft. They offer a free
for non-profit version. Here are the schematics and board files:
Schematic (EAGLE format)
Board File - 2 layer (EAGLE format)
Board File - Single Layer (EAGLE format)
The single layer is useful when space is
not a big issue or when you are making the boards at home with
chemicals, since vias are a pain to create. I put some of the text on
the top layer, such as polarity indicators, but not all. Feel free to
change any text or the layers they reside on to help prevent incorrect
connections! You may want to rename the board file to match the name of
the schematic if you'd like EAGLE to associate the two.
Instructions:
Since I follow the reference
implementation, the best place to look for usage instructions is the
datasheet for the TPIC0107B. However, here
is what you need to know to get
started:
The motor drivers are designed to control two independent motors. Both
motors require a single power supply between 6 and 18 V (center
connection on right side of the board). A rechargeable 7.2 V battery
pack works great. Be careful about polarity - reversing the power leads
is a sure way to burn your driver chips. Connect your motors to MR and
ML.
On the left side of the board, there's a 3-pin header to control each
driver. The "D" pin is the direction, the "P" pin is for PWM, and "G"
is your signal ground. The direction pin controls whether the motors
move clockwise or counter-clockwise. The PWM pin is your speed
control; output current is based on the duty cycle of your signal. You
vary the duty cycle from 0% (stopped) to 100% (full power). The duty
cycle should have a frequency of about 1 kHz, but you can deviate
greatly from that and they will work fine.
Programming:
Most microcontrollers have a few hardware timers or output compare pins
that can provide a PWM signal in the background. You write to a few
registers and your PWM is set accordingly. For example, on the
ATmega128, you should set:
TCCR1A = 0xA8;
TCCR1B = 0x12;
ICR1 = 1000; // 1kHz Frequency
// Place these in an update_motor(speed) function:
OCR1A = 0; // 0 to 999 (control
duty cycle)
OCR1B = 0; // 0 to 999 |
Each microcontroller has different registers to control their hardware
functions, so you'll need to check the datasheet to find out how yours
works. Be sure to send me comments at
dubel
at ufl dot edu!
June. 18, 2004
William
Summerfield Dubel IV