I am working on a motor control system, and I'd like to be able to know when the motor has reached its max output and has locked up (shaft no longer able to rotate, due to mechanical force pushing back). The motor will be used with a ball ramp mechanism to create a linear motion. I need to know when the motor stops spinning so that I can move on to the next task in the system. What would be the best/most efficient way to do this?
You should be able to measure the current during normal load operation (from experimentation) and then measure the current during an overload (stall) condition, and then use a shunt resistor (like, a 1% 0.1 ohm resistor) and an op-amp based comparator circuit to indicate when it has reached it's end-point/cannot move any further.
Measure the resistance across the motor terminals (this is assuming a simple 2 terminal DC brushed motor) with an ohm-meter. Then you can estimate the stall current by Ohms law, V = IR, meaning I_stall = V_applied / R_motor.
As the motor begins to move and starts generating back EMF, it will reduce the input current to something more reasonable.
When the motor meets something which stops the output shaft from moving, the resistance reduces again back to the motor's armature resistance (R_motor i mentioned earlier).
Rather than stalling the motor when it reaches the end of its travel, I'd prefer to use a limit switch to sense the position, and turn off the motor before it reaches the physical end-of-travel. This would be much kinder to the motor and to the mechanism than forcing the motor into the mechanical end stop.
The very best way to tell if a motor is locked up is to use and encoder on the motor shaft (there are very inexpensive encoders out there now for the hobby market), and monitor its speed. Just looking at current isn't reliable, as it can change based on the motor type and design, and the way a load is applied.
Looking at shaft speed, you can also see exactly when it is starting to get overloaded, and take action before it actually stalls.
Also, going to locked rotor stall is very damaging to almost all types of motors. Induction and brushless motors will experience overheat conditions on the windings and all the winding joints, DC motors will burn the commutators and brushes.
To answer the exact question though, is there a change in voltage/current at stall... again, it depends on the type of motor, very low torque shaded pole AC motors like clock and small fan motors probably won't see much change, but any actual wound DC or Induction motor will go to it's locked rotor current which is just the applied voltage divided by the winding resistance.