I’ve got my Arduino setup to power a low voltage dual serial motor controller, which in turn runs two of those tiny cheap Tamiya motors in a gearbox. The Arduino is running on a 9V and the motor power source is off of two AA batteries.
The motors don’t seem to be turning very well. When the DSMC receives the command to begin spinning a motor, sometimes it works fine, but sometimes the motor jerks briefly to a start and then stops, and sometimes it just doesn’t respond at all.
I’m wondering if the problem might have to do with power management, because the problems seem worse when the motor is moving faster or when both motors operate simultaneously. But I’m not sure how to measure whether this is the case or what to do about it if it is.
i’m trying to measure the current drawn by putting my multimeter leads across a motor’s leads. it looks like a motor running at speed 20 pulls 100mA. running a motor at speed 50 pulls over 250mA, more than my cheapo meter can measure. i’m not sure if that’s a lot or a little or what.
OK, I changed my motor-power to a single AA battery in order to reduce the current. This made the problem less bad, but it’s still quite bad.
I think the main cause of the problem is “motor noise,” which is a phenomenon I still don’t really understand. When I set up a fairly simple well-organized circuit outside of my robot’s chasis, the motors work reasonably well, though still not perfectly. But when I set up the same circuit inside the chasis, so that the wires are much more cramped and disorganized, and flowing through a few more switches, then the motors barely work at all. At first I thought I must have misconnected something, but now I am guessing there is some weird “noisiness” happening.
Any guidance on diagnosing and fixing this would be appreciated!
It sounds like you are not measuring current correctly. The current needs to be flowing through your multimeter, meaning that the multimeter should be in series with the motor and battery as an integral part of the circuit. Removing the multimeter when measuring current should cause the motor to stop turning. Can you check how you are doing that and if possible take a picture of your setup?
In any case, I don’t expect power issues to be the problem here, since you are using independent power supplies for the logic and the motors. You are connecting 5V out from the Arduino to the VCC input of the motor controller, correct? Since you are talking about problems that occur only when everything is crammed into a case, it’s probably an issue with noise radiating from the motor leads. The Tamiya motors are noisy! Try to keep the motor wires as short as possible, twist them tightly together, and get them as far away from the other electronics as possible, and things might get much better. Also try soldering in all three possible capacitors shown here to reduce noise as much as possible.
So… keep the motor wires as short as possible, but locate the other electronics as far from the motors as possible? Those two goals seem umm hard to do at the same time. Do you mean, keep the motor controller close to the motors, but the Arduino and other electronics farther?
Are there any good photos or diagrams you could recommend that would show me how to arrange something like this? It’s quite a small robot, so there’s nowhere on-board that is especially distant from the motors.
I’m using a breadboard for all my connections. Can that also exacerbate a noise problem?
Usually you don’t have too much of a choice about where to put your motors and controller board. But once those are in place, the motor wires should be both as short as possible and as far away from other wires and electronics as possible. For example, you shouldn’t run your motor wire right alongside a serial data line. Since you said you were squeezing everything into a box, I am imagining that you have to make some choices about exactly where the wires go when you squeeze them in. The same considerations also go for the wire from the battery to the motor controller, since all the current must ultimately come from the batteries.
I agree with Jan that the breadboard can also definitely cause problems. You are pretty much guaranteed to not make your connections as short as possible if they run through a breadboard.
We’ve measured voltages as high as 20 V on separate circuits an inch away from a wire running a Tamiya motor, so you should try to improve it in as many aspects as possible.
Do you think it would be sufficient to change the location of the elements somehow, replace the breadboard with directly soldered wires (except for maybe a tiny bboard to house the Arduino nano), and twist the appropriate cable pairs? Or is this just too small a bot for these motors?
Nice pictures. I can see lots of untwisted, long wires in your setup. How about you first try replacing all of the motor wires with the shortest possible wires and twisting them tightly together before you give up on the breadboard. Use a two- or three-cell battery pack that has the two wires going out the same side so that you can twist them together as well.
Another point about the battery pack: if you use more batteries, you’ll have more voltage, which means you can run the motors at a lower speed setting and still get the same actual speed out of them. The end result is that you’ll be using the same amount of current, and the current is what causes noise, so removing batteries is probably not going to help your noise problem. Can you get a three-cell NiMH pack instead of that one alkaline battery?
The motors appear to work slightly better, but still fail when the speed is higher than 30, or lower when both motors are running simultaneously.
I can still try to do this without the breadboard, though that will require buying some plugs and headers and stuff.
I could also solder another capacitor to the outside of each motor.
Will using a NIMH battery to power the motors reduce the noisiness? Or what would the advantage of that be?
My other thought is to replace the FA-30s with Solarbotics RM3. Would that make a big difference? Would I need a different motor controller? The Qik?
I think a borked a few pegs on the pinion gears of the current motors while trying to replace them, and do not have backup pinion gears – now the thing is making a bad-sounding clicky noise. So that’s another reason to consider the Solarbotics, since they apparently come with new pinion gears.
Sorry to pester with so many questions. Big thanks for all the help, I really appreciate it.
The main reasons to switch to NiMH batteries are that they last longer and can be recharged. It shouldn’t affect your noise much, but maybe having a more consistent, longer-lasting voltage will make your testing easier.
Your wiring is a lot better now, but you should twist those wires even more! See if you can get the motor wires and AA battery wires both twisted even more than your 9V battery wires are twisted right now. Also, they could still get a lot shorter - I still see loops in the one motor wire that is visible - it looks like you could take off 1 or 2 inches without much problem. You can add two more capacitors per motor (one from each lead to the base) and you should trim the capacitor leads to keep the body of the capacitor as close as possible to the motors.
I’m not sure if the RM2’s will help you at all, but there’s still a lot you can do to get this setup working better.
Also, did you measure the current used by your motors? It would be useful to know what they actually get up to before the problems occur.
This document section briefly covers the noise-suppression suggestions that Paul is making, and it includes some simple diagrams of how you might solder capacitors to the motor terminals. As Paul said, I don’t know if the RM2 would be any less noisy, but you could decrease your noise if you could get by using the RM3 or our 130-size brushed DC motor.