Using a motor driver with an MEGA168 (Help Please)

Your source for all things Atmel.

Moderator: phalanx

Post Reply
striker121
Posts: 4
Joined: Sat Jan 10, 2009 8:26 pm

Using a motor driver with an MEGA168 (Help Please)

Post by striker121 » Mon May 25, 2009 7:48 am

As part of learning some circuitry I decided to build a small autonamous robot. Nothing special, just "If distance to object in front >= 2 feet, turn left 90 degrees, go forward, REPEAT" Only problem is I don't understand the tables that sparkfun carries on them. I was wondering if anyone could point me towards a good driver for this. http://www.sparkfun.com/commerce/produc ... cts_id=319 and hopefully point out how to use it. IE: How to wire it up, and a bit of sample code for forward, reverse, stop. I'm sure I can just edit from there. Any help would be REALLY appreciated.

User avatar
leon_heller
Support Volunteer
Posts: 5734
Joined: Sun May 01, 2005 11:20 am
Location: St. Leonards-on-Sea, E. Sussex, UK.

Post by leon_heller » Mon May 25, 2009 8:14 am

I've got one of those but haven't used it yet. If you want reverse you will need an H-bridge; things start getting complicated and you are in for a lot of studying. You might be able to manage with a couple of relays, if constant speed is OK.

Leon
Leon Heller
G1HSM

striker121
Posts: 4
Joined: Sat Jan 10, 2009 8:26 pm

Post by striker121 » Mon May 25, 2009 8:51 am

Really I suppose constant speed would be good, but that probably wouldn't be that great for turning. Relays would be the alternative though.

User avatar
leon_heller
Support Volunteer
Posts: 5734
Joined: Sun May 01, 2005 11:20 am
Location: St. Leonards-on-Sea, E. Sussex, UK.

Post by leon_heller » Mon May 25, 2009 9:06 am

striker121 wrote:Really I suppose constant speed would be good, but that probably wouldn't be that great for turning. Relays would be the alternative though.
An H-bridge for each motor is the proper way to do it, with PWM.

Leon
Leon Heller
G1HSM

whoismaha
Posts: 23
Joined: Mon Aug 31, 2009 7:43 am

a bit late.. but..

Post by whoismaha » Tue Sep 01, 2009 7:32 am

I recently went down this road and i'd be happy to explain how to do it. Using all Sparkfun parts (yay!)

Arduino: http://www.sparkfun.com/commerce/produc ... cts_id=666
Motor driver: http://www.sparkfun.com/commerce/produc ... ts_id=8905
Motors: http://www.sparkfun.com/commerce/produc ... cts_id=319
Tank treads: http://www.sparkfun.com/commerce/produc ... cts_id=321

I controlled mine via Xbee but you could program it however you want.
The only hard part is wiring up the Motor driver. Picture from official sparkfun listing
Image
ok, top/left side is all inputs. PWM+IN1+IN2 will drive one motor. Just make sure PWMs are connected to an arduino PWM line like Digital IO 10/11. IN1 & IN2 are normal digital IO lines. GND is the ground from your arduino. STBY is basically your on/off switch, i use Digital IO pin 13 because of the built in led.

Bottom/right side is mostly outputs. VCC&GND is from the arduino (power and ground). VMOT/GND is from your external power source to drive the motors, i'm using 2x 9v batteries in a series. O1/O2 goes to one motor.

Ok, on to using it. I'm going to use example pins, you are free to use whatever.

Motor #1, Direction pins 6 & 7 (6 on, 7 off = foward, switch for reverse)
Motor #2, Direction pins 8 & 9
Motor #1 Speed pin is 10
Motor #2 Speed pin is 11

So, set STBY pin 13 HIGH. Set pins 6 & 8 HIGH for forward motion. Finally set Speed pins both to 40 (mid-low speed). That's it.. you're moving.

Here's some fuzzy pictures of mine
Image
Image

Post Reply