Ok, if I understand correctly - the basics to drive a vanilla DC brushed 2-wire motor, is a mosfet or transistor and diode across the power leads with a small capacitor & a pwm drive signal.
I want to advance now and learn more about the current-sense functions I see on pricey stepper drivers - I think it's called a chopper circuit (or is that something different?). I know steppers will cut lower PWM at idle/break so that it won't heat the motor and burn excess power. I do not need that since I'm just practicing to make a speed driver not positioning controller.
Is the current-sense limit a function of pre-made controller chip IC'S? I think the L298 chip has that, where I can add resistors to limit the current of the chip driver, for smaller motors or just to reduce power (for whatever reason). Is that current-sense limit function complicated? Is it just a matter of feeding back resistor value through the gate to match current?
For example, I know if an idle motor powers up and spins it will drain a set amount of power, but once I try to stall it with a load (like a blade to lawnmower when begins to cut high grass) - the motor starts to consume more power, and something happens it loses momentum and I have to manually set PWM higher to give it more power. Does the current-sense technology sense and calculate the power loss for the load, and automatically adjust the pwm signal to compensate, and maintain RPM - or is that called a different function?
I know nothing about building a motor driver - I just buy 'em
If you have a current sensing resistor your Arduino can measure the current and can then be programmed to do something when it detects changes in the current. What happens depends entirely on your program.
It might be easier to measure the RPM and respond to changes in that.
You may need to cut the power when the motor stalls to prevent the high stall current from destroying the motor. Many off-the-peg motor drivers have overload protection that will make them shut down before the driver is damaged. Suitable choice of driver could indirectly protect the motor.
DocStein99:
I want to advance now and learn more about the current-sense functions I see on pricey stepper drivers - I think it's called a chopper circuit (or is that something different?). I know steppers will cut lower PWM at idle/break so that it won't heat the motor and burn excess power. I do not need that since I'm just practicing to make a speed driver not positioning controller.
You are talking about the constant current drivers for stepper motors, which are current-controlled devices.
The chopper uses the inductance of the motor windings to make a constant-current DC-DC converter. This is
to allow the winding voltage to vary with motor speed, allowing much faster operation. The current determines
the heat generation in the windings, so making it constant allows maximum performance from the motor at all
conditions (and much better torque/speed behaviour).
For ordinary DC motors a current-controlling driver is often used to make a torque-controlled servomotor
system - and even velocity and position servomotor modes tend to use a current control loop as the basic
way to control the motor - ie directly control torque, with an outer feedback loop to vary this to achive
position or speed.
I kind of figure, the rpm-feedback was more like a micro controller function, and not something that resistors and transistors handled through regulating current.
MarkT:
You are talking about the constant current drivers for stepper motors, which are current-controlled devices.
Yes that kind of stuff is pretty technical, I'm not on that level yet. I understand what your talking about, what it does, from reading the technical manuals for the drivers. I don't yet know how it works, and probably won't be able to until I do my own circuits and test my own work.
I was curious about those current sense resistors, and how that circuit works. How I can just swap out resistors and the driver can limit itself to drive small 500 ma motors, or 7 amp motors. I do not know if that's a transistor function, or if that's a micro-controller type of thing.
Chopper drivers are almost invariably done in hardware, its a fast feedback loop to try to keep the
winding current at a determined value, something in the 10 to 100kHz range of loop speeds is common.
Servomotor control loops are more likely to be software, 100 to 1000Hz update rates are typical, but it can
be much higher for precision applications. My favorite demo of such tech is here: Ultra High Precision Demo - YouTube
Look up "current mirror" to see how chips like the VNH2SP30 give a small output current based on the main motor current.
You usually pass that current through a resistor to convert to a voltage suitable for the Arduino analog input. Then a RC filter to smooth out the PWM. Then do the feedback control in software.