I've been working on a dogie door for a while - while the software is straightforward, finding a suitable motor controller has been more difficult.
The problem is that a lot of the inexpensive motor control shields are just too meager to control anything but the most dinky motors. ladyada's Arduino shield only does 600mA continuous, 1.1A peak . Pololu makes beefier motor controllers, the DMC 01 can do 13 amps, but it's pretty expensive (about $100).
So I've been on the lookout for a high power, inexpensive, and easy to control circuit - I was flipping through starlino's website and I spotted exactly what I was looking for. His idea is pretty simple: why not combine 2 motor controller IC's to split the load?
He calls the circuit the 'OctoDriver', it combines 2 h-bridges to provide 8 amps peak, 4 amps continuous. I asked him if I could put it on a PCB, and he thought it was a great idea. I couldn't think of a better name, so I call my version "The OctoDriver".
I also put it on a Propeller Platform compatible footprint, so it can be used on a breadboard, perfboard or with a Propeller microcontroller. The design is available under the MIT license, so anyone is free to hack away.
The OctoDriver is also available as a kit from Gadget Gangster.
Flip to the next step and I'll give you some more technical details on the OctoDriver and show you how to use it.
Step 1: FAQ
The OctoDriver is an 8 amp motor controller, capable of controlling 2 motors @ 8 amps. It uses four TI SN754410 (datasheet) Quad Half-H drivers, 2 per motor. The SN754410 is 'juiced-up' version of the classic L293D. Here are the key specs of the OctoDriver
|Motor Voltage:||4.5V - 36V|
|Logic Voltage:||5 Vdd, inputs will accept 2.0v - 5.5v|
|Operating Temp:||-40c to 85c (-40f to 176f)|
||2 Bi-directional DC motors / linear actuators, or 1 stepper|
|Other Features:||ESD Protection, Thermal Shutdown, No 'Power Up Glitch'|
|Connectivity:||.1" pin spacing for Breadboard / Protoboard. 2 OctoDrivers can be stacked on a single Propeller Platform, as well.|
I didn't include servo headers because it's super easy to connect a servo to a Prototyper module and controlling servos with a Propeller is easy, too.
Do I really need that much power?
When you check out the specs on a standard servo, it's often something like 150mA. So what's the point of a 4+ amp motor driver?
Here's the deal - that 'current-draw' number is at NO LOAD. In other words, if you actually wanted to move something with the motor, your current-draw will be higher. How much higher depends on your load, but the highest draw would be if the motor were stalled (Stall Current).
Take this typical servo. With a 6V power source, no-load draw is a measly 220mA... until you actually make it move something! Maxing it out brings you to 1.3 amps of current draw. And that's a ONE standard servo.
Moving anything but the smallest motor requires real power, and 800mA bridge doesn't cut it.
Will the OctoDriver work with Arduino / PICAxe / Workbench 1.3?
Yes. Using it is super-simple. At the end of this howto, I'll show you how it's done.
Is it hard to build?
No - it's really easy to put together. If this is your first time soldering, it will probably take 15 minutes. If you're a seasoned pro, it should take longer for your soldering iron to warm up than assemble.
Here's a video demo of Starlino's OctoDriver in action: