This project is further development of my old one described in this site. If you are interested...please read forth...
I hope you will have pleasure.
Step 1: Short Intruduction
This instructable is addendum to my old one : DIGITAL MULTIMETER SHIELD FOR ARDUINO
It is additional feature, but can be used absolutely independently. The PCB supports both - the old and new functionality - depends which devices shall be soldered and which code shall be loaded in the arduino.
WARNING! : All safety rules are described in the previous instructable. Please read them carefully.
The code which is attached here works only for the new function. If you want to use the full functionality you have to merge cleverly both codes. Be careful - the code for same procedures in both sketches could contain small discrepancies. .
Step 2: Why Did I Do It?
This miliohm meter can be very useful in some cases - it can be used during debugging of some electronics devices which have short connections inside, to locate defected capacitors, resistors, chips..etc.By scanning the area around the short it cab be easily located the burned out device measuring the resistance of the conductive PCB tracks and finding the place with minimum resistance. If you are interested more about this process - you can find a lot of videos about.
Step 3: The Schematics - Addendum.
The added devices comparing with the old DMM design are marked with red rectangle.I will explain the principle of work on the second simplified circuit:
A Precise voltage reference chip creates very stable and exact voltage reference. I used REF5045 from Texas Instruments, Its output voltage is 4.5V. It is supplied by the arduino 5V pin. It can be used also other precise voltage reference chips - with different output voltages.The generated from the chip voltage is filtered and loaded with a resistive voltage divider. The top resistor of which is 470 Ohm, and the bottom one - the resistance, which we want to measure. In this design its maximum value is 1 Ohm. The voltage of the middle point of the voltage divider is filtered again and multiplied by an opamp working in non-inverting configuration. Its gain is set to 524. Such amplified voltage is sampled by the Arduino ADC and converted in 10-bit digital word and further used for the calculation of the bottom resistance of the voltage divider. You can see the calculations for 1 Ohm resistance on the picture. Here I used the measured voltage value at the output of the REF5045 chip (4.463V). It is a little less then expected because the chip is loaded by almost highest current allowed in the datasheet. With the given in this design values the miliohm meter has a input range of max. 1 Ohm and can measure resistance with 10 bit resolution, what give us the possibility to sense difference in resistors of 1 mOhm. There are some requirements for the opamp:
- Its input range must include the negative rail
- It has to have as small as possible offset
I used OPA317 from Texas Instruments - It is single supply, single opamp in chip, in SOT-23-5 package and it has rail to rail input and output. Its offset is less then 20 uV. Better solution could be OPA335 - even with less offset.
In this design the purpose was not to have absolute measurement precision, but to be able to sense precisely differences in the resistances - to define which has smaller resistance. The absolute precision for such devices is difficult to be reached without having another precise measurement apparatus to calibrate them. This unfortunately is not possible at home labs.
Here you can find all design data. (Eagle schematics, layout and Gerber files prepared according the requirements of PCBWAY)
Step 4: PCB's...
I have ordered the PCB's at PCBWAY. They did them very fast for very low price and I had them only in two weeks after ordering. This time I wanted to check the black ones (In this fab there is not additional money for different then green color PCB's). You can see on the picture how nice they look.
Step 5: The Shield Soldered
To test the functionality of the miliohm-meter I soldered only the devices, which serve for this function.I added also the LCD screen.
Step 6: Time to Code
The arduino sketch is attached here. It is similar to that of the DMM shield, but more simple.
Here I used the same voltage measurement procedure: The voltage is sampled 16 times and averaged. There is not any further correction for this voltage. The only adjustment is the measurement of the supply arduino voltage (the 5V), which is also reference for the ADC. The program has two modes - measurement and calibration. If the mode key is pressed during the measurement a calibration procedure is invoked. The probes must be connected strong together and hold for 5 seconds. In this way their resistance is measured, stored (not in ROM) and further extracted from the resistance under test. On the video can be seen such procedure. The resistance is measured to be ~ 100 mOhm and after the calibration it is zeroed. After that it can be seen how I test the device by the use of a piece of solder wire - measuring the resistance of different wire lengths. When using this device is very important the hold the probes strong and to have them sharp - the measured resistance is very sensitive also on the pressure used for the measurement. It can be seen that if the probes are not connected -"Overflow" label is blinking on the LCD.
I have added also a LED between the test probe and the ground one. It is ON when the probes are not connected and clamps the output voltage to ~ 1.5V.(Can protect some low supply devices).When the probes are connected the LED is OFF and should not have any influence on the measurement.
That's all folks! :-)