I am working on a robotic project and am in need of some help. I need a way to flip the polarity of the motor leads so it can go either forward or backwards. I first tried to use a motor shield but for some reason it doesn't work out. As soon as I put the robot on the rug it wont budge and on my desk it barely moves. Now if I hook the motor up directly to the battery it is really strong and fast even on the carpet. So I am assuming that the motor shield isn't letting all the current through or limiting it somehow.
I currently have a set up like this which is working perfectly as far as being able to move:
http://www.instructables.com/file/F9LKDFGGU7FXUMH
I use a TIP120 and can control the motor to move forwards but obviously not backwards yet. I know there are H-Bridges but I was trying researching about them and from what I read (I don't know if it's true), but the arduino and the motor would have to be sharing the voltage supply which I really don't want. An H-Bridge would work out good as long as I can somehow have the motor's running on their own battery.
I also considered just using two SPDT relay's and connect them up to switch the polarity. Only problem then is it would be either always forward or always backwards and never just at a rest without adding another relay or getting a transistor or two in there. Anyone have ideas on how I can do this?