I’ve made this PCB in order to improve my multimeter project and in order for you to
learn more.
You see, this is just like a development board for learning Arduino very easy, especially
for measuring stuff.
It has two external ADCs, a current meter module, multiplexors, solid state relays,
full bridge rectifier, voltage dividers, an OLED screen and more.
Also, it works with an Arduino.
So basically, using this board, you can learn a lot of arduino programming following my
examples for each part without having to solder small components as for the small multimeter
board.
This development board is made to be used directly with modules and just a few SMD components.
So get my PCB design for free, check electronoobs.com for each example and start learning how to
use it.
You will increase your Arduino skills a lot.
So, let’s get started.
What’s up my friends, welcome back.
First of all, let’s check the PCB and see what we need.
The PCB is just a simple square because is just for development, it doesn’t need a
good shape.
I’ve also made a design that uses only trough hole components so it would be easier for
you to solder if you are scared of small SMD components.
So get the GERBER files from below and go to PCBWAY.com.
Click order now and add the settings for size, amount of PCBs and color.
I’ve used the green solder mask.
Add to cart and on the next page, upload the GERBER files.
Place the order and in just a few days, you receive the PCBs from PCBWAY and you are ready
to learn more.
So, different from my previous multimeter circuit, this PCB has two external ADCs and
you will see why.
It still has the ACS712 current meter so we will also need a module like this one.
To display values, we have an OLED screen with i2c communication.
Compared with the previous schematic, the different parts are these two blocks here
on the schematic.
You see, for previous multimeters, to change modes, we were using a rotary switch like
this one which is very big or some sliding switches like these ones that have to move
at the same time, and that’s not working that good.
If you want to implement automatic mode switch, we need solid state relays, in this case the
G3 VM 41D for current mode and the AQ W2 10 for the rest of the modes.
Since the Arduino doesn't have enough pins, to control each of these relays, we use this
multiplexor, the 74 HC 40 51.
For the rest of the modes, we only need resistors, capacitors, a small operational amplifier
and a full bridge rectifier.
Ok, so let’s assemble everything and try some different modes.
I first solder the small components such as resistors and capacitors.
I don’t add the rectifier for now and you will see why.
Then I solder the solid state relays.
I also add the multiplexor.
Soldering these components is not that difficult.
Now I add female pins for all the modules and the Arduino.
The PCB is supplied with 5V on these two pads but we will use the USB connector for the
tests.
The measuring probes will be connected on these other bigger pads.
Now I add the Arduino and all the modules and the PCB is ready.
The reason you see these wires here is because I had a small mistake connection which I’ve
already fixed on the final schematic.
So let’s check what it could do.
First example is the OLED control.
Download this example code from below and upload it to the Arduino.
Make sure you also download and install this library for the OLED screen.
This code will teach you how to use the OLED screen and print text of different sizes and
in different positions.
So select the Arduino NANO board on the Arduino IDE, connect the Arduino to the USB cable
and upload the code.
As you can see, we can use the OLED screen.
So check the code on electronoobs.com and learn how to use it.
The next example is to read voltage.
As you can see, the voltage block has these two resistors of 0 ohms.
Basically, if you short circuit these pads here on the PCB, we jump over the rectifier
and that’s because we first only measure DC voltage.
This rectifier might introduce some voltage drop and we don’t want that for now.
So I short circuit those pads with solder.
As you can see, the connections for the voltage mode are controlled with this multiplexor
so we need to activate the MUX 3 pin.
In the code I set all MUX pins to low and the MUX3 to high using the multiplexor.
This multiplexor is controlled with 3 pins from the Arduino, pins A3, D2 and D3 and this
is the table we need to set for each output.
So download the voltage read code from my website.
In this code, remember to add the OLED library from before but also the library for the ADS1115
external ADC, since we will use that to measure voltage with precision.
Since we have two ADC modules, to have different i2c addresses, on the schematic, one module
has the ADDR pin connected to ground and the other one the ADDR pin connected to VCC so
one will have this i2c address and the other one this other i2c address.
In this code we use the ADC functions and read the voltage between ADC0 and ADC1.
Since the input has a voltage divider of 11, we multiply the voltage value by 11 and we
get the real voltage.
We have to set all the unused pins as inputs in order to have high impedance and not affect
the rest of the circuit.
Upload this code and we test it out.
I connect the power supply at the input and apply 5V for example.
Then, I try different values and as you can see, the voltage value is the same as on the
supply, so the voltage mode works.
The ADS1115 is capable of measuring negative voltage as well so if we invert the probes,
we can still measure the voltage and it will appear negative on the screen.
Since the divider is of 11 and the ADC could take up to 5V, the maximum voltage we can
measure is around 50V DC.
The next example is for measuring resistance.
For that we use this block here with 3 resistors and a diode.
So we need to activate this relay for the RC pin by setting MUX2 to high.
Then, in the code we decide the range and according to that, we set to low one of these
pins, D8, D4 or D5 in order to change the scale.
At the same time we also read the battery voltage of the multimeter with this block.
That’s why we need two external ADCs, because only 4 inputs was not enough.
We need to know the VCC voltage in order to calculate resistance.
So in the code we use the ADC and measure the VCC voltage.
Then the voltage over the resistance divider.
Using ohm law, we get the resistance value.
We print the value on the OLED display.
I upload this code and tried different resistance values.
Here is a 1K resistor.
Now here is a 10K one.
It works quite well.
So read the full tutorial on my website and using the development board, learn how it
works.
The inductance mode was the one that faced problems for the previous PCB.
You see, the inductance mode uses these two capacitors of 1uF to create a resonating oscillation.
One side of the capacitor is connected to the negative probe and the other side to the
coil that we want to measure.
The problem with the previous board without the relays, is that this pin here was shared
with the rest of the resistance and capacitance measurement.
As you can see on the previous schematic, this pin was called RLC.
But now, using the relays, we can separate the RC from the L. Otherwise, the capacitors
would be connected to the other measuring blocks and would change their values and we
couldn’t read correctly.
Anyway, for the code, we apply a pulse to the LC tank and create oscillations.
We read the frequency of those oscillations with the pulse in function and using a simple
formula and knowing that the capacitance is of 2uF, we can get the inductance value.
we print that on the OLED display and test it out.
I connect a 100uH inductor and once again, it works great and we can also measure inductance
with this development board.
Read more on electronoobs.com and also read the comments inside the code to understand
better.
To measure capacitance is very easy.
We use two resistors to charge and discharge the capacitor.
In the code, we count the time it takes the capacitor to get to 63%.
Then we calculate the capacitance value.
You have more details about this 63% value on the tutorial on electronoobs.com.
Run the code and test it out.
Here is a 100nF capacitor.
How here is one of just 1nF and finally a 47uF capacitor which takes a bit longer to
charge and discharge.
But it works.
Finally, the current measurement is very easy.
We disable these two relays and we activate this one.
This model could handle more current.
Then, in the code, we measure the voltage from the ACS712 current meter.
We apply the formula for the 5A model and we get the current value.
Print that on the screen and test it out.
I connect it to my power supply and start applying different current values.
We have a small positive offset but now, all the main parts are working.
We could also measure frequency, diode mode, continuity, but that would be extra.
Now I could make the final version of my two-hand multimeter and I think that would be an amazing
project.
A multimeter based on Arduino capable of measuring so many values.
So guys, get the PCB files and order it at PCBWAY.com and start learning all these parts
with help from my tutorials and codes on electronoobs.com.
I hope this will help you understand more how Arduino works.
Thanks again and see you later guys.