I have a problem with the common yellow geared motors usually supplied with Arduino robot kits. I am using the LN 298 N motor driver at 11.1 V )(Lithium-ion battery). I don't seem to be able to run the motors if I set the speed at anything below about 70 (on a 0 to 255 scale). Does anybody have any suggestions? I am currently working on a line follower using a Pololu QTR-8RC sensor module. Thank you.
Hi @tmatatu,
Sorry, I don't have any of the motors you are referring to, but they are clearly simple DC brushed motors, and all such motors have the reputation of having a limited speed range of 'smooth operation', below which they tend to stall, operate erratically, or refuse to rotate.
Assuming your Arduino & L298N driver are behaving in a linear fashion with respect to the commanded speed value, which is very likely to be the case, then I doubt if there is a simple answer, as it is a motor characteristic.
I have never personally tried it, but it is plausible that if you were to include motor speed sensors, then the driver could be inserted into a closed control loop, so that the power from the L298N was dynamically controlled by the Arduino, and a wider range of speeds could be obtained. (This is essentially the basis that servos use.)
Alternately, you might consider that stepper (or BLDC) motors are more appropriate.
For example, @inq has made many valuable contributions to this forum, describing his family of bots, each based on a pair of stepper motors, including making a web based control system freely available.
So, sorry I do not have a quick fix, others may be more helpful, but I feel you are beginning to investigate an important part of real-world systems, and I wish you good fortune in that.
Best wishes, Dave
For example, @inq has made many valuable contributions to this forum, describing his family of bots, each based on a pair of stepper motors, including making a web based control system freely available.
Thank you @davee, but I don't know of anyone (else) that has followed on using the steppers.
I have a problem with the common yellow geared motors usually supplied with Arduino robot kits. I am using the LN 298 N motor driver at 11.1 V )(Lithium-ion battery). I don't seem to be able to run the motors if I set the speed at anything below about 70 (on a 0 to 255 scale). Does anybody have any suggestions? I am currently working on a line follower using a Pololu QTR-8RC sensor module. Thank you.
If you are looking to do just a RC toy car. They seem to work fine. I could never get it to go in a strait line. If you adjust it to go strait at one speed, it'll drift at any other. But if you want any kind of fine control, you'll have to use a feedback algorithm as @davee suggested. And yes, the it seems to have a pretty high % threshold before they kick on. I found playing around changing the PWM frequency helped some, but I don't recall what frequency I ended up using. Besides you can cook eggs on the LN298 and battery life sucked.
As @davee mentioned, I wanted higher speeds AND fine control... even in the sub millimeter range. I switched to using stepper motors and won't go back trying to brute force brushed or brushless motors.
InqEgg cost about $20 (without sensors) but has far more capability and far more potential.
https://forum.dronebotworkshop.com/user-robot-projects/inqegg-one-step-forward-two-steps-back/
3 lines of code = InqPortal = Complete IoT, App, Web Server w/ GUI Admin Client, WiFi Manager, Drag & Drop File Manager, OTA, Performance Metrics, Web Socket Comms, Easy App API, All running on ESP8266...
Even usable on ESP-01S - Quickest Start Guide
Hi @tmatatu
Did you write the program that runs the motor driver?
If you were to write a loop that slowly increments the speed value does the motor slowly pick up speed? Does the motor get saturated at some point and the speed stops increasing before it reaches 255?
Anyway, I’ve always used metal brushed DC gear motors with my robots and I’ve noticed that they all have a dead zone where a low PWM % value will not move the robot. I usually write code that avoids this dead zone.
Tom
To err is human.
To really foul up, use a computer.
II don't seem to be able to run the motors if I set the speed at anything below about 70 (on a 0 to 255 scale). Does anybody have any suggestions?
It could be because it is geared there is a lot of inertia to overcome become before the motor starts to move. Maybe after it starts moving you can get away with running it a lower count.