user39978: I'm working on a project using steper motor which turn a threaded shaft (long screw) in order to open or close a water valve (high flow, high pressure).
My fear is that, after a long time of use, the grease on the threaded shaft will dissapear and it can became hard for the stepper motor to rotate correctly the threaded shaft.
In order to tell the user to add grease, I have to know when the stepper needs more effort than before to rotate the threaded shaft. So, would it be possible to detect the "effort" made by the stepper in order to get this information on the Arduino?
Any ideas are welcomed!

user39978: After fred_dot_u answer I have made other research. Not sure this can help us (Look Alterno and me), but some post are talking about "can I detect the over intensity".
Here is a very interresting post (in French, but Google Translate can help). The guy use and Arduino to control a step motor using to open a fence. And he wants to detect when the motor need more effort:
http://forums.futura-sciences.com/electronique/687244-lecture-de-lintensite-dun-moteur-un-arduino.html
Here the text from this site, I translated:

QUESTION
Hello everyone, I have a DC motor powered at 30 V. In normal
  operation, it consumes 2.5A (the power supply is OK, no problem on
  that side). It is an electric gate motor (sliding gate). I want to
  control it with an arduino. So far, not too much trouble, I go through
  a MOSFET (for the moment, I do not run the engine in one direction,
  later, I will make a bridge in H to go both ways). All this works well
  but I would also be able to detect when the engine forces (to stop
  it). When the motor forces, it consumes more, so more intensity in the
  circuit. The problem is that an Arduino can not read an intensity, I
  can only read a voltage between 0 and + 5V. So I was thinking of
  putting a resistor in series with the motor and measuring the voltage
  across the resistor with the arduino. If I take a max intensity not to
  exceed 5 A, Ohm's law gives me a resistance of 1 Ohm to have a voltage
  of + 5V (I'm good?) The problem is that a resistance of 1 Ohm at 5A
  will dissipate 25W (R x I x I, I'm always good?). How to solve this
  power dissipation problem? the big resistors I have at the moment are
  3/4 W, they will not take long
My problem is the following: if I take a smaller resistance to have a
  smaller power (like 0.1 Ohm or less), the voltage has its limits will
  be too low to be read by my arduino,
How to do ? Does anyone have an idea?
Thank you in advance for your answers.
Steph.
ANSWER 1 Just amplify the signal: rail-to-rail operational amplifier
  (to power it with a single positive voltage), a non-inverting device
  with a gain of 10 for example.
ANSWER 2 Indeed, it's an idea. So I was thinking of putting a resistor
  in series with the motor and measuring the voltage across the resistor
  with the arduino. . The risk of this type of assembly is:
  - the maximum voltage overshoot (5V) at the input of the uC (ARDUINO) at the change of direction (see ground point).
  - the maximum voltage surge (5V) at the input of the uC (ARDUINO) in the event of a break in the resistance. Explanations: The ARDUINO
  board must have a common point (Ground) and an Ax input, therefore
  when changing polarity (change of direction of the motor) the DDP is
  no longer 0V-> 5V but 0V-> 30V and there it smokes, ditto in case of
  rupture of this resistance. The good solution in my opinion would be a
  system like http://www.gotronic.fr/cat-courant-1125.htm
  Regards

The answer 2 give link to products like the i-Snail-VC: Current Transducer with 0-5VDC Output. Can be linked directly to the PIN of an Arduino.

user19300: I suggest that if the answer involves the Arduino, the question might be appropriate to this forum.
If you can mount your stepper motor in such a manner as to apply pressure to a force sensor, you may have a method to resolve your goal.
As the motor rotates, under normal conditions, pressure on the sensor will give you a baseline on which you can base your program for consideration of the amount of force involved.
Picture the motor mounted in the center of a circle, with cut-outs appropriate for the mounting bolts. On the outside of the circle, you would have suitable bearing surfaces to reduce rotational friction. From the motor circle platform, a lever pressing against a fixed point on the outside of the circle provides the contact points for the pressure sensor.
If you will be rotating the motor in both directions, perhaps a pair of sensors mounted to encase the lever would be suitable.
When the screw is new, clean and lubricated, you can collect pressure readings and establish a safe and comfortable range. Those numbers would be fixed into your code and measured during motor activity.
If the activity results in force outside the range, you can either stop or reverse the motor and have the same checks apply.
The logic and code is beyond my capability, but you'd have very few parameters to examine during operation.

39978: <p>I'm working on a project using steper motor which turn a threaded shaft (long screw) in order to open or close a water valve (high flow, high pressure).</p>

<p>My fear is that, after a long time of use, the grease on the threaded shaft will dissapear and it can became hard for the stepper motor to rotate correctly the threaded shaft.</p>

<p>In order to tell the user to add grease, I have to know when the stepper needs more effort than before to rotate the threaded shaft. So, would it be possible to detect the "effort" made by the stepper in order to get this information on the Arduino?</p>

<p>Any ideas are welcomed!</p>
 39978: <p>After fred_dot_u answer I have made other research. Not sure this can help us (Look Alterno and me), but some post are talking about "can I detect the over intensity".</p>

<p>Here is a very interresting post (in French, but Google Translate can help). The guy use and Arduino to control a step motor using to open a fence. And he wants to detect when the motor need more effort:</p>

<p><a href="http://forums.futura-sciences.com/electronique/687244-lecture-de-lintensite-dun-moteur-un-arduino.html" rel="nofollow noreferrer">http://forums.futura-sciences.com/electronique/687244-lecture-de-lintensite-dun-moteur-un-arduino.html</a></p>

<p>Here the text from this site, I translated:</p>

<blockquote>
  <p><strong>QUESTION</strong></p>
  
  <p>Hello everyone, I have a DC motor powered at 30 V. In normal
  operation, it consumes 2.5A (the power supply is OK, no problem on
  that side). It is an electric gate motor (sliding gate). I want to
  control it with an arduino. So far, not too much trouble, I go through
  a MOSFET (for the moment, I do not run the engine in one direction,
  later, I will make a bridge in H to go both ways). All this works well
  but I would also be able to detect when the engine forces (to stop
  it). When the motor forces, it consumes more, so more intensity in the
  circuit. The problem is that an Arduino can not read an intensity, I
  can only read a voltage between 0 and + 5V. So I was thinking of
  putting a resistor in series with the motor and measuring the voltage
  across the resistor with the arduino. If I take a max intensity not to
  exceed 5 A, Ohm's law gives me a resistance of 1 Ohm to have a voltage
  of + 5V (I'm good?) The problem is that a resistance of 1 Ohm at 5A
  will dissipate 25W (R x I x I, I'm always good?). How to solve this
  power dissipation problem? the big resistors I have at the moment are
  3/4 W, they will not take long</p>
  
  <p>My problem is the following: if I take a smaller resistance to have a
  smaller power (like 0.1 Ohm or less), the voltage has its limits will
  be too low to be read by my arduino,</p>
  
  <p>How to do ? Does anyone have an idea?</p>
  
  <p>Thank you in advance for your answers.</p>
  
  <p>Steph.</p>
  
  <p><strong>ANSWER 1</strong> Just amplify the signal: rail-to-rail operational amplifier
  (to power it with a single positive voltage), a non-inverting device
  with a gain of 10 for example.</p>
  
  <p><strong>ANSWER 2</strong> Indeed, it's an idea. So I was thinking of putting a resistor
  in series with the motor and measuring the voltage across the resistor
  with the arduino. . The risk of this type of assembly is:
  - the maximum voltage overshoot (5V) at the input of the uC (ARDUINO) at the change of direction (see ground point).
  - the maximum voltage surge (5V) at the input of the uC (ARDUINO) in the event of a break in the resistance. Explanations: The ARDUINO
  board must have a common point (Ground) and an Ax input, therefore
  when changing polarity (change of direction of the motor) the DDP is
  no longer 0V-> 5V but 0V-> 30V and there it smokes, ditto in case of
  rupture of this resistance. The good solution in my opinion would be a
  system like <a href="http://www.gotronic.fr/cat-courant-1125.htm" rel="nofollow noreferrer">http://www.gotronic.fr/cat-courant-1125.htm</a>
  Regards</p>
</blockquote>

<p>The answer 2 give link to products like the i-Snail-VC: Current Transducer with 0-5VDC Output. Can be linked directly to the PIN of an Arduino.</p>
 19300: <p>I suggest that if the answer involves the Arduino, the question might be appropriate to this forum.</p>

<p>If you can mount your stepper motor in such a manner as to apply pressure to a force sensor, you may have a method to resolve your goal.</p>

<p>As the motor rotates, under normal conditions, pressure on the sensor will give you a baseline on which you can base your program for consideration of the amount of force involved.</p>

<p>Picture the motor mounted in the center of a circle, with cut-outs appropriate for the mounting bolts. On the outside of the circle, you would have suitable bearing surfaces to reduce rotational friction. From the motor circle platform, a lever pressing against a fixed point on the outside of the circle provides the contact points for the pressure sensor.</p>

<p>If you will be rotating the motor in both directions, perhaps a pair of sensors mounted to encase the lever would be suitable.</p>

<p>When the screw is new, clean and lubricated, you can collect pressure readings and establish a safe and comfortable range. Those numbers would be fixed into your code and measured during motor activity.</p>

<p>If the activity results in force outside the range, you can either stop or reverse the motor and have the same checks apply.</p>

<p>The logic and code is beyond my capability, but you'd have very few parameters to examine during operation.</p>
