Instantaneous torque measurement

Hello everybody, I am new here, and new to the arduino world, and I apologize in advance if this is not the right place for this question.

I am using a 6V dc motor driven by an Ardumoto shield to pull a 10-20 oz weight for a few seconds while I record some acelerometer data.

Is there is any simple and precise measurement that I can make on the instantaneous reading of the dc-motor torque directly from the shield (measuring voltage, current and whatever else)?

Any suggestions would also be very appreciated!



Probably depends on the allowance or limitations you have for setting the motor up for torque measurement.

It should be easy to read the current (voltage across a shunt resistance), voltage and RPM with the Arduino but I doubt it would have much relation to the shaft torque of a small DC motor.

Maybe you could do a series of experiments with test loads on the motor to provide a table of current / voltage / RPM related to torque, but it would be time consuming and I have no idea how consistent the results would be.


Current and torque are proportional for an ideal permanent magnet DC motor - infact its only bearing and brush friction
that distorts this ideal picture really - brush torque is fairly constant, bearing torque increases with
speed. You can measure no load currents for various speeds and subtract this baseline from your
current measurements to get an estimation of torque.

Thanks everybody, I think the suggestion of linearity between current and torque is good. It was suggested above that it is easy to measure I,V, and RPM with the arduino … can you please point me to a tutorial or book that explains how? Thanks again


You could use an ACS712 current sensor board. They come in different current ranges.

check the datasheet.

You can use analogRead() to read the output voltage. The output voltage is proportional to the current.

You can easily measure the current if you wire a low ohm resistance in series with the negative wire to the motor and use analogRead() to measure the voltage drop. You may need to increase the supply voltage to get enough current to the motor and this is wasteful but that may not matter if you are just doing some experiments.

You can measure the RPM by counting the pulses from a photodetector triggered by something that rotates with the motor shaft - for example a black (or white) patch on the rim of a wheel.

Small motors are usually very inefficient and I have no idea how the efficiency varies with load and RPM or whether it is predictable at all. If you need great accuracy prepare to be disappointed, but perhaps another contributor has collected some real data.

Perhaps you could derive the torque from the accelerometer data?


Thanks everybody for all the very insightful suggestions. I am now working on the reading of the voltage (I am preparing a voltage divider as I do want more than 5V on Vin), and preparing for the reading of the current as suggested above (I may have some questions later). I have also found a RPM-measurement tutorial that uses the hall-effect sensors, as it was suggested: I am thinking if this is the best way. Any other suggestions in that respect?

Unfortunately, because of the nature of the nature of the experiment itself, I cannot deduce the torque directly from the accelerometer (that was good thinking though!).

Hopefully, I will be able soon to post a few videos with the details of what I am doing :)


Rather than rigidly fixing your drive motor, you could mount it in a spring loaded cradle. As torque on the motor shaft increases there will be a tendency for the motor to rotate within its cradle. By measuring this rotation you will effectively measure the shaft torque. This effectively eliminates the uncertainties of motor amps/volts versus shaft torque.

Thanks for the suggestion Jackrae. I have never seen a “spring loaded cradle” for a motor. Would you mind sensing me a link or two on this? Thanks in advance!