I have been flumoxed by a motor issue recently, and was wondering if others had some strategy dealing with it successfully.
I have a Dagu GA25Y370 133 RPM 6V DC gear motor. I've connected it to an BBB Arduino clone through some TIP 122 transistors. To get the motor to start turning I have to go to nearly 100% duty cycle on the PWM. This is undesirable, as I would like fine control at low speeds.
The motor turns rapidly once started. After starting, PWM can be used to control it down to about 55% PWM.
Thinking this might be a problem with lack of current I put a huge cap on the power rails, and connected it to a computer power supply.
Regrettably, this did not help. I also tried with 9V DC, this moved the starting PWM lower (about 80%) but at 9V DC the speed was equivalent or faster than 100% 5V.
Maybe doubling up on the Transistors? Although, I find it strange the current transistors are not even getting warm to the touch in all the experimentation so far. I don't have any FETs currently, so that is not an option.
I'm trying to "fix the problem at the source". But, at the moment, I can only think of a programming strategy that sends 100% PWM to the motor the amount of time just to get it started (however long that is), then quickly drops the PWM down to 50%. Yarrgh...
Had a similar problem with my Pacman robot. OddBot and Gareth gave me the tip to pulse the motor at a lower PWM frequency. 50 or 100Hz should be ok, Arduino normally runs PWM at 500Hz. This trick works really great.
My understanding are the pins are bound to particular multipliers 9&10 are bound as are 3 & 11, and 5 & 6. Pins 9,10 & 3,11 are defaulted to 500, but the ones I was using were 5 & 6 which defaults @ 1000.
Your suggestion worked. The only “strange part” was I had to go in the opposite direction.
These are my observations @ 9 V DC :
62 Hz - did not move the motor at all even at analogWrite 255 or 100% duty.
250 Hz - moved the motor at analogWrite 255, but other strange loss of control (serial from computer) occurred - possible brown out?
1000 Hz - same
8000 Hz - a little better
62000 Hz - motor starts to move at analogWrite 140 - fine control down to 98 just before stalling, and of course the bonus of no audible whine !
I guess this is just dependent on so many variables, e.g. harmonics, size, current, magnet strength, gearbox friction, etc etc - that I’m not going to try to figure it out, I’ll just sing praises to you !
I have mico metal gear motors and plastic solarbotics gearmotors through pololu. The Tamiya gearbox is where I have been able to see the difference between non-greased and greased motors, and its hard to get them started when not greased due to friction.