Emmanuel Odunlade
electronics-lab.com
One of the best things about being a maker is the ability to make your own tools. We have covered the development of several electronics tools in past, from voltmeters to battery testers. For today’s tutorial, we will add another tool to the list by examining the development of a Miliohm meter (Figure 1).
Figure 1. | Arduino based Milliohm Meter with LCD display. |
A milliohm meter is a device used in determining the resistance of small resistors, PCB traces, motor coils, inductance coils, and transformer coils, or calculate things like the length of wires. It provides a resolution, not built into regular multimeters, making it easy to get accurate readings in the milliohm range.
There are quite a number of Miliohmeter builds on the internet, but today’s tutorial will chronicle the efforts of instructable user Danielrp. Daniel’s version of the meter is based on a precision current sink and a high-resolution ADC controlled by an Arduino Nano (Figure 2). The current sink is based on the LT3092 precision current source/sink which, using a network of resistors and transistors is set to function as a sink. For the ADC, the high resolution, MCP3422A0 I2C ADC is used. Just one of the channels of the ADC is used, and it is connected differentially to the Resistor under test “S+ S-“. The MCP3422 is configured as 18 bit but as S+ is always going to be greater than S-, the effective resolution is 17 bit.
Figure 2. | Arduino based Milliohm Meter Schematic Diagram. |
To reduce the influence of the resistance of the test leads on the measurement, the devices use Kelvin connectors (Figure 3) as leads to connect the resistor under test to the measurement point.
Figure 3. | Kelvin connectors as leads to connect the resistor under test to the measurement point. |
The measurement range of the device include:
- Scale 0m1: 0.1 mOhm to 12.9999 Ohm.
- Scale 1m0: 1 mOhm to 129.999 Ohm.
- Scale 10m: 10 mOhm to 1299.99 Ohm.
Users can make the selection between the above measurement ranges by using one of the two push buttons on the device. Visual feedback on the selections and meter readings is provided to users via a 16×2 LCD display, and the entire project is enclosed in an orange Hammond 1590B aluminum box to make it handy and presentable.
List of components required to build the project is shown in Table 1.
Due to the complex nature of the project, implementing on a breadboard will not only be time-consuming but also make the project susceptible to errors. To prevent this, the project was implemented on a PCB designed with Eagle. The schematics showing how the components are connected on the PCB is provided below:
The PCB, developed from the schematics, looks like the image below (Figure 4):
Figure 4. | Milliohmmeter PCB designed with Eagle. |
and the final board after manufacturing is shown in the image below (Figure 5).
Figure 5. | Milliohmmeter PCB after manufacturing. |
Both the schematics and PCB files are attached to the BOM under the download section. It should make modifying the project for your personal use a bit easier.
Table 1. Components used in project. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Enclosure and Assembly
The PCB approach was adopted to make the project presentable and useful and to take things even further, DanielrP developed an enclosure for the project (Figure 6). The modification to the Aluminium enclosure box was designed with Inkscape and the design files, along with the stencil are attached under the download section.
Follow the steps below to create the enclosure.
- Cover the top side of the aluminum box with painter tape. Then cut the stencil for the front cover and glue it to the painter’s tape.
- Next, mark the positions for the holes and drill holes to allow the fret saw or coping saw blade get into the internal cuts.
- Cut all the shapes.
- Trim with files, then remove the stencil and the painter’s tape.
- Install the pushbuttons along and the screen using double-sided tape or hot glue.
- With the cover done, on the box itself, mark the position of the holes for the (screws). Center punch the holes.
- With all the components installed, the top/cover should look like the image below.
Figure 6. | Making an enclosure for the milliohmmeter. |
Before coupling together the enclosure, it might be smart to first get some components of the PCB in place. Since most of the components used for the PCB are SMT types, mounting them on the PCB will require the use of a hot-air gun or the use of a regular soldering iron along with a fine-tip tweezer, some solder wick, and a 0.02″ solder.
The image below provides a broad overview of where some of the components go on the PCB (Figure 7).
Figure 7. | Milliohmmeter broad overview of where some of the components go on the PCB. |
Since the kelvin connectors and switches are only useful on the outside of the enclosure, they will be connected to the PCB via jumper wires as shown above.
With the PCB and the box now ready, install the PCB in the box and connect the pushbuttons and kelvin connectors.
Code
The algorithm behind the code for the project is quite complex. We set the scale for the project by driving the set pins connected to the ULN2003. The scale along with the mode (which is determined by the status of the pushbuttons), is then taken into account and the MCP3422 is read to obtain the resistance value and display it on the LCD.
Since the sketch is already a complex one, to reduce the complexity a bit, a number of libraries were used, including; the Wire.h library, the LiquidCrystal_I2C library, and the EEPROM library. The wire library was used to facilitate I2C Communication between the Arduino and the two I2C components of the project; the LCD and the MCP3422. The LiquidCrystal_I2C library, on the other hand, helped with interfacing with the LCD, while the EEPROM Library was used in accessing the EEPROM on the Arduino to store information about the mode and meter scale.
The Wire and EEPROM libraries come preloaded with the Arduino IDE, while the LiquidCrystal_I2C library can either be installed via the link attached to it or by installing it via the Arduino Library Manager.
As usual, I will do a quick run down and explain some snippets/parts of the Sketch. The code is quite bulky and might be difficult to cover all of it but luckily, Daniel did a good job with comments on each line of code so it should be easy to follow it.
With the code complete and the hardware in place, connect the device to your computer and upload the code to it.
After a while, you should see the display come up as shown in the image below (Figure 8).
Figure 8. | Arduino based Milliohm Meter with LCD display. |
On connecting a milliohm resistor to the leads, you should see the value of that resistor displayed (Figure 9).
Рисунок 9. | К измерительным щупам миллиомметра подключен тестовый резистор. |
To learn more about the project, you can watch this video made by danielrp.