I have an input voltage signal from a conductivity sensor (output between 0 to 2.3V) which I am need to measure using the ESP32 ADC input. Unfortunately the ADC on the ESP32 is pretty crappy and can only measure signals greater than 0.15V. Therefore I am trying to scale the input signal and add a small offset to it so that I can measure low values as well.
To do this I have made a three resistor voltage divider which I found online. If I remove the op-amp, this works perfectly. However I need the op-amp as without it the load affects the voltage output from my sensor.
The problem I am facing with this design is that at low input voltages, the LM324 does not seem to work. I have played around with various resistor values and my findings are below:
In the case of lower resistors, the circuit was unusable till the input voltage was 0.4V. In the second case with higher resistors, the problem only occurred below 30mV, but still occurs.
From my research, I understood that the LM324 has a limitation of going near the upper rail, but not the lower rail (ground). In my case as well, if I remove R3, then the opamp successfully works perfectly and as expected even at a 10 mV input signal.
Can somebody please help me to understand what is happening. If I want to solve this, can I make some changes to the circuit, or do I need a different op-amp? In that case, what specification in the op-amp datasheet do I need to be looking for? I dont understand very much about opamps yet but am trying to learn!