Using the micro dual serial motor controller

Hi Paul,

Thanks a lot for your reply.

So does it mean it would be better if I used a 6V battery pack?

Also, I sourced this controller from the Parallax website. But this product is from Pololu. Is Parallax the distributor for this controller?

Kindly advise.

Thanks and Regards,
Vincent

Hello,

A 6V battery pack might let you go all the way up to speed 127. But as long as your battery voltage is below 9V and your current is in the range that the controller should handle, there should be no problem with your current battery pack.

Yes, Parallax is a distributor for the Micro Dual Serial Motor Controller. You can see a full list of our distributors by clicking “Distributors” at the top of this page.

-Paul

Hi Paul, I still have some doubts to clarify. Hope you can help me.

"A 6V battery pack might let you go all the way up to speed 127."
Why can’t a 9V battery pack let me go all the way up to 127?

"But as long as your battery voltage is below 9V and your current is in the range that the controller should handle, there should be no problem with your current battery pack."
How do I measure the current of my battery pack? what is the desired current range?

It seems that if my motor supply is less than 9V, the controller will work well. But what is the reason for it?

Kindly advise.

Thanks and Regards,
Vincent Chung

Your original post says that you can’t get this to work at a speed of 127. I am just saying that with less voltage, there will be less current, so it might work at a higher speed setting.

We talked about measuring current for a long time - you got 950 mA for motor1, which means that it is almost at the limit of 1A.

Maybe I didn’t understand you before, but you said that your battery voltage was always less than 9V, right? You need to make sure that you never go above 9V, because that is the limit for the controller.

-Paul

Hi Paul,

Thanks for your reply.
Really appreciate your help during these few days.
I will try to troubleshoot the problem, I shall consult you should I encounter any problems.
Take care!

Regards,
Vincent

Hi Paul,

Sorry to bother you again. I have tried troubleshooting for the past weeks, but to no avail. I have written a program to let the motor to turn in one direction from speed = 0 to 75, and then slow it down from speed 75 to 0, and then do the same thing but in another direction. The motor controller tends to get overheat even for this simple action. I feel the controller with my hands. My motor supply is 8.8V which is less than 9V. Yet this controller still got overheat, and even for speed 75 which is quite slow. Is the motor supply the problem for this?
The program code is as below.

speed VAR Byte

HIGH 4
LOW 3
HIGH 3
PAUSE 500

DEBUG “Program running…”,CR
DO
FOR speed = 0 TO 75
SEROUT 4, 84 ,[$80, 0, 0, speed]
PAUSE 50
NEXT

FOR speed = 75 TO 0
SEROUT 4, 84 ,[$80, 0, 0, speed]
PAUSE 50
NEXT

FOR speed = 0 TO 75
SEROUT 4, 84 ,[$80, 0, 1, speed]
PAUSE 50
NEXT

FOR speed = 75 TO 0
SEROUT 4, 84 ,[$80, 0, 1, speed]
PAUSE 50
NEXT
LOOP

Kindly advise

Thanks and Regards,
Vincent

Hi

Sorry to inform you that the microcontroller used is Basic Stamp 2.

regards

Hello,

When you say that it overheated, do you mean that it felt hot or that it actually stopped working? Feeling hot to the touch is not necessarily a problem.

-Paul

Hi Paul,

So you mean when the controller feels hot, it is not harmful in any way?

Okay, for my case, once it is feeling hot for quite some time, the motors would unexpectedly move for a second then stop and repeat. This symptom as described from your manual is that the controller is overheating…

Some of the suggested solutions is to put a heat sink, but how do I do that?
the next one is to lower the supply voltage… is there any preferred voltage that this controller can work on?

By the way, I tested the motors with the car above the ground. Which means there is no additional stress on the motors, yet the problem still persist.

Kindly advise

Regards,
Vincent

Hi Paul,

I have made some discoveries today. Regarding the overheating problem, it onlys occur occasionally, I do not know what happened as well. However today when I troubleshoot the controller, I notice something.

Setup: My car is suspended above the ground, so the wheels are not touching the ground.
Motor supply: 9V battery pack of 6AA batteries

Objective: To move motor2 (which controls the forward and backward movement) non-stop in one direction at full speed.

I download this program : SEROUT 4, 84, [$80, 0, 0, 127]
Observations : the motor move for few seconds and then stop
I was guessing the reason why this motor stop is because it had reached the speed of 127 within the few seconds.

Then when I added in the Do…Loop as illustrated as below,
Do
SEROUT 4, 84, [$80, 0, 0, 127]
Loop
Observations: the motor can move non-stop at full speed

So maybe the main problem that we had been discussing all weeks could be down to the programming codes itself?
What do you think? Is my assumption right?

Als, is there a serious need to configure this controller, as by default it is meant to control 2 motors with motor number 0 and 1 right?

Kindly advise

Regards,
Vincent

Heat can be harmful to the motor controller. But feeling hot (to your skin) does not necessarily mean that it is dangerously hot (for electronics).

This makes it sounds like electrical noise from the motors is causing your motor controller to randomly reset. Can you try doing everything listed in our advice for dealing with motor noise and see if that solves the problem? Also, what is your motor current at full speed now?

The only reason for you to configure your controller would be if you decide that it can’t handle the current of your motors, and you use it in single-motor mode instead.

-Paul

Hi Paul,

Okay, I will try to deal with the motor noise first. For soldering the capacitor across the terminals of the motors, do I have to pay attention to the polarity of the connections?
What i have is a ceramic type of capacitor with two leads of equal length, there is no way to tell the polarity.
Instead of 0.1uF, can I use 100nF instead?
Sorry, I just want to confirm. I am afraid that it will cause damage to my motors.

I believe the current at full speed is the same as when I connected my 9V battery pack to activate the motor. Am I right in this case?

Kindly advise…

Regards

Hi Paul,

Thank you so much!! The problem is solved!! It is indeed the motor noise that is causing the malfunction of the motor controller. I had soldered 3 capacitors onto the motor that is controlling the forward and reverse movement of the robot. The motors works perfectly.
However, I am sorry, one small glitch which I hope you can clarify. When I put the robot onto the ground for it to move, with the 9V battery pack as the supply, somehow I can see jerking movements after some time, which means the motor moves bit by bit. I have confirmed that it is not the weight problem Because when I use a 6V battery pack instead, the motor work perfectly, in this case the robot moves smoothly although not that fast.
Can you explain why this happens?

In this case, I would have to change my supply to 6V. However I am also actuating a solenoid actuator, which operates in the range 6V to 12 V DC, via my microcontroller. But my microcontroller’s logic output from the pin is only 5V. Which means I need a transistor to turn on my solenoid actuator. Any advice?

Thanks and Regards,
Vincent

Hi Vincent,

I’m glad you got it working. As for your questions, no, there is no polarity on a ceramic capacitor, and 0.1 uF is the same as 100 nF.

You have identified a very simple way to check whether your motors are stopping because of motor noise or because of overheating - try both versions of your code, with and without a loop. So, since you are running into problems now when the robot is driving on the ground, I recommend trying both versions of the code again, to find out what the problem is! You should expect that the current will be higher when the robot is actually driving, because the wheels will be experiencing much more friction.

When you use a 6-Volt battery pack at 100% speed you are definitely going to produce less current and less motor noise than with a 9-Volt pack, since there is less voltage. So, if you find out that the problem is actually noise and not overheating, you might be able to fix it by continuing to follow the tips in the link that I posted. What kind of current do you get when driving, by the way?

As for a solenoid, yes, you can only control two motors with the dual serial motor controller. Since you’re having trouble powering those motors anyway, you could upgrade to a more powerful motor controller, like the TReX Jr, which has a third motor channel that you could use for the solenoid.

-Paul

Hi Paul,
Thanks again for your prompt reply. As our discussion continues,

“try both versions of your code, with and without a loop. So, since you are running into problems now when the robot is driving on the ground, I recommend trying both versions of the code again, to find out what the problem is!”

Both codes worked fine! After soldering the capacitors onto the one of the motor, it works perfect. The Do…Loop is in fact redundant .

“What kind of current do you get when driving, by the way?”

I am sorry, I know we have been talking about measuring current for a long time, but how do you measure it when the robot is moving? I have tried to do it, but the readings were not very accurate, there are a lot of fluctuations. I can do it when the robot is off the ground.

“When you use a 6-Volt battery pack at 100% speed you are definitely going to produce less current and less motor noise than with a 9-Volt pack, since there is less voltage.”

Since you said that, I think I am going to assume that the jerking effect has got to do with overheating. Since I don’t see such problem when using a 6V supply. My solution is to get a suitable transistor to drive my solenoid actuator from the 6V supply and I am done! Or maybe, I solder another 3 capacitors to the last motor? Anyway do motors only produce electrical noise when they are running?
Kindly advise

Thanks and Regards,
Vincent

Hi Paul,

Can I regulate 5V from the 9V battery pack to power up the motor controller? Since 9V generate too much noise.
Will it have any effects on the motors?

Kindly advise

Thanks and Regards,
Vincent

Hi Paul,

New discovery again, I find that when I use a 9V battery cell, the robot works okay. Unlike using the battery pack which can cause jerking effect, probably due to overheating.

Do you know the difference between these two battery source? From what I know, they supply 9V only. I have attached pictures for you.

Regards,
Vincent

Hi Vincent,

You said you were still having trouble with 9V, and you specifically asked me to “clarify”. So, if you want to look in to the problem, I am just suggesting that you do that same test that you did before.

I don’t understand which motor is the “last” motor, and it sounds like you haven’t even determined which motor is the source of the problems. You can easily test this by only running one motor at a time. If you still have a motor that is causing noise, follow our instructions for reducing noise on that motor.

Yes. That’s also why I have been saying that the noise will be lower at a lower speed setting or a lower voltage.

Yes, this is possible, but it would make much more sense just to run your motors at a lower speed setting, if that works. A speed of 70 at 9V is probably going to be about the same as a speed of 127 at 5V.

The 9V battery is about 5 times smaller. Alkaline AA’s are probably barely able to provide enough current to drive your motors; the 9V is definitely going to experience a huge voltage drop. Measure the voltage on the battery while driving the motors, and you’ll see that you aren’t really getting 9V in either case.

-Paul

Hi Paul,

Suggestions noted. Thanks a lot for your help during this period of time.
Really appreciate it!
Have a nice day!

Regards,
Vincent

Good luck with your project! If it goes well, we’d love to hear how you worked out all of the issues.

-Paul