Dual G2 High-Power Motor Driver 18V22 for Arduino current settings

I’ve got a question about my Dual G2 High-Power Motor Driver 18V22 for Arduino:
I’ve set the speed of M1 at 400/-400 reached after a little ramp and the current limit at about 2000mA. Everything works fine.
When I set the speed at 100/-100 the current needed to move freely the motor gone up to 21000mA.
In all two cases there aren’t mechanics jointed to the DC motor.
I think that there is something wrong.
Thanks for any help.


Are you using our Arduino library for the G2 High-Power Motor Driver 18v22 shield? How are you measuring the current? Could you post a datasheet or link to documentation for your motors along with some pictures of your setup that show all connections?


yes I’m using your Arduino library with the “Current1=md.getM1CurrentMilliamps()” function to get the current and an if condition to stop the motor “if(Current1>=StopCurrentOP)”.
I haven’t datasheet of this DC Motor because I’m doing some test with warehouse stuff.
I connected your shield to an Arduino Duemilanove clone that works with an ATmega168 (maybe it be the problem) because I haven’t other boards at the moment.

In the documentation i saw that the current reading function only works when the output is ON. Maybe the PWM to make the motor run at speed 100 generate a timing discordance with the current reading and create some confusion?

Could you try running our demo program unedited? If that runs fine, could you try removing the stop command from your code and using a multimeter to read the actual current going to the motor at the two speeds?


Yes Your demo works fine.
@ 200 speed the actual current flow is around 1A CW and 1,1A CCW, but to let the motor run I have to set 10000 as stop current and sometimes the CCW rotation stop by itself so is the minimum possible set.

I am not sure the current sense resolution on the 18v22 G2 high-power motor driver is good enough to use it to set a current limit that low. Even the 10A setting you are currently using only corresponds to about 150mV. You might try filtering out noise and brief spikes from the motors by adding some averaging to your code. Alternatively, you could try a stand-alone current sensor.

When the motor is run at full speed (i.e. set speed to 400 in our library), it is given the constant motor voltage, but when the speed is set to 100 or 200, it is PWMed. PWMing likely is generating more motor noise and I suspect that is why you originally had trouble only at lower speeds. If you can get some oscilloscope captures of the current sense output at full speed and some lower speeds, I might be able to offer more specific advice.


Thank You. I will try to use a flyback diode on the motor poles.