I'm trying to build a circuit where I control a small DC motor using an Arduino. My goal is to be able to sense the load on the motor, and shut it off or reverse when the load is too high or the motor is stalling.
My idea was to use a shunt resistor and a op-amp to sense the current through the motor and control it accordingly.
I'm powering the motor using 3.3v. The no-load current is ±10mA while the stall current is ±80mA.
I've build the following circuit (non-inverting amplifier):
- Rsense = 0.1Ω, R1 = 2k, R2 = 1M
The op-amp I'm using is the LM324AN, which I power with 3.3v
effectively resulting in:
The voltage I measure over Rsense is in the range of 0.0011V and 0.0082V (which is as expected).
The problem is the Vout. I would expect this to be between ±0.5 and ±3.3v (the voltage it's supplied with). Since the Gain = 1 + R2/R1 ≈ 500.
However Vout is not coming above 2.06V. It seems some clipping is happening, which I expected. But I expected it to happen at 3.3V and not 2.06V.
Is there an explanation why the Vout is not coming above 2.06V?