how to measure low resistance

I want to use an arduino to interface between various sensors on a car with old fashioned guages. I am building a kit car and would like flexability to choose any sender/sensor with any guage. Tthe problem is most old style automobile guages are designed to be used directly with senders and 12v so the guages often needed highish currents so they would be designed to sit in series with the sender and be calibrated to be powered directly, a commom combination in old english cars were smiths guages were the sender had a resistance range 5-200 ohms and would be placed inn series with the guage that would also have low internal resistance eg for oil pressure if it was high the resistance of the sender would be 5 ohms and the guage would draw 400 mAmps ie its internal resistance was about 25 ohms.

my plan is to use the analogue input pins and a potential divider on an arduino to read the sender resistance and then using a calibration function output pwm to drive the guage via a mosfet (and optocoupler). In order to get good sensativity it would seem sensable to match the potential divider resistance to the sender resistance t get a good range of voltages ideally maybe 50 ohms which would give a range of 0.5 - 3.8 v however this woul mean that i could have a resistance of 55 ohms on the 5v pin drawing 100 mamps and with 4 guages could draw 400 mamps which is probably pushing it a bit, does anyone clever know how i could get round this i wonder if i could use some kind of op amp circuit to ibncrease by inpt resistance ? constant current technigue to measuere the resistance without drawing high currents ? anyhelp gratefully recieved

You can put a resistor in series with the sender to increase the resistance, (and reduce the current), but this would reduce the voltage range to be detected by the Arduino

The internal DAC is 12 bit 1024 values (0 to 1023), but I suspect that you could get away with a lot less steps when driving your analogue gauges, perhaps just 64 steps or even 32, but it would depend on the size of the gauge,
If you can get away with 64 steps, you'd only need 64/1024 x 5V range 0.31V

However, I suspect that if you did this, you'd have a noise immunity problem

You are better off using some signal conditioning using OPamps for each input sensor

how about this circuit, i have used an op amp buffer with gain 1 then reduced the output to 5 v max then put into analogue input pin i think i may need to regulate the voltage otherwise the guage reeding will vary with car voltage and think about protecting the analogue pin ? with linar optocoupler ??

Hi @jonh

I just modeled your OpAmp circuit in LTSpice before I realised it doesn't solve the problem of things taking an unnecessary amount of current.

I thought you wanted to reduce the current going through the sensor, but that circuit still has around 250mA being drawn by the Sender and its series resistor R4.

BTW. I'd allow for at least 14V in car electrics rather than 12, as most cars charge the batter to around that voltage possibly even more, so to be safe I'd assume the batter was 15V.

If you just put 330 Ohms in series with the sender, and don't use the second resistor divider R5 and R6, as the voltage across the sender, it would give you a max of 160/(330+160) * 15V = 4.89V at max scale (i.e 160 ohs on the sender)
and max current would be just under 45mA when the sender was at 5 Ohms.

If you increase the amplification of the opamp, you can use a higher series resistor

Hi thanks for your help, in terms of the current throught he sender i was only woried if this was coming directly from the arduino 5v pin but it will be fine from the car battery directly, in terms of the car voltgae changing i was thinking of using a 10v regulator for the sender supply, the 330 ohm series resistor is a good idea. i was just exploring linear optocouplers which seem to use op amps to work and may solve my gain and isolation issues if i can get my head around the circuits