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:
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.|
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.
|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.
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.
You may have to register before you can post comments and get full access to forum.