Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Search ... 

 Product Categories  Learn  Videos  Deals & Discounts  About Us  Questions?

Product Categories 

Learn 

Login / Register

About Us

Questions?

Videos

 Gadgets, Sensors

Make a Digital Multimeter with Arduino

Written by Saeed Hosseini

Table of Contents

1. Overview

1.1. What You Will Learn

2. What Is A Multimeter?

3. What Parameters Does A Multimeter Measure?

4. Measuring the Electrical Voltage

5. Measuring the Electrical Current

6. Measuring the Resistance

7. Measuring the Capacitance

8. Required Materials

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 1/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

8.1. Hardware Components

8.2. Software Apps

9. Making a Digital Multimeter Using Arduino

10. Step 1: Making the Voltmeter

10.1. Circuit

10.2. Code

11. Step 2: Making the Ammeter

11.1. Circuit

11.2. Code

12. Step 3: Creating the Ohmmeter

12.1. Circuit

12.2. Code

13. Step 4: Building the Capacitance Meter

13.1. Circuit

13.2. Code

14. Step 5: Wrapping it Up And Adding a Display

14.1. CIrcuit

14.2. Code

14.3. logo.h

15. What’s Next?

Overview

A multimeter is an essential tool in any electronics project. Without it, completing projects faces infinite difficulties. In this article, we are going to use an
Arduino board and an OLED display to make a cost-effective digital multimeter. It can measure voltage, current, resistance and, capacitance. Once the
project is completed, you own a multimeter at the lowest possible cost.

What You Will Learn

 Understand the concept of a multimeter and its importance in electronics projects


 Learn how to measure voltage accurately

 Discover the techniques for measuring current effectively


 Master the art of measuring resistance with precision
 Explore the measurement of capacitance using Arduino

 Build a Multimeter (voltmeter, ammeter, ohmmeter and capacitan) with Arduino

What Is A Multimeter?

In simple words, a multimeter is a device that converts electrical parameters such as voltage, current and so on to a language we can understand. First
prototypes of this widely used device (called galvanometer) were created in 1820. Despite being only capable of measuring current, they became an
essential part of any electronics projects.

Multimeters are generally categorized as analog and digital. Analog multimeters use physical pointers to display values and are being used less and less.
However, digital multimeters benefit from digital displays and are much more popular.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 2/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

An analog multimeter:

A digital multimeter:

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 3/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

What Parameters Does A Multimeter Measure?

Multimeters measure various parameters. However, the most important ones are voltage, current and, resistance. Other parameters include capacitance,
self-inductance, frequency, diode test, connectivity test, brightness, transistor test and, so on.

For this project, we will make a multimeter that can measure voltage, current, resistance and capacitance.

Measuring the Electrical Voltage

Various methods exist for measuring the voltage, such as using the hall effect, the simplest one is the voltage divider.
The voltage divider is a circuit that puts a fraction of the voltage between two resistors.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 4/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Now if we know the R1 and R2 resistance and the Vout values, we can easily calculate the voltage using the above formula.

Measuring the Electrical Current

The simplest method for measuring the current is using Ohm’s law. This law states the electrical current in a path is directly proportional to the voltage
divided by the resistance in that path.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 5/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Another technique for measuring the current is using the hall-effect principle. The passing of the electrical current creates a magnetic field and
consequently the hall voltage. By measuring the hall voltage, you can calculate the magnetic field intensity and therefore the passing electrical current.

Measuring the Resistance

The same voltage divider technique can be used to measure the resistance. The only difference compared to measuring the voltage is that here, we know
the input voltage, the resistance of R1 and the output voltage. R2 is the unknown variable.

Measuring the Capacitance

An effective method for measuring the capacitance is the capacitor charge and discharge rule.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 6/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Below you can find the charging time for a capacitor.

It takes a specific amount of time for the capacitor to charge to 63.2%. This is calculated using the following formula:

τ^(second)=R×C

So if we know the resistance and the time it takes for the capacitor to charge to 63.2% of its capacitance, we can calculate the capacitance.

Required Materials

Hardware Components

Arduino UNO R3 × 1 

0.96" I2C OLED Display Module × 1 

AC712 5A Current Sensor × 1

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 7/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Resistor 1k × 1

Resistor 10k × 2

Resistor 100k × 1

Resistor 4.7k × 1

Resistor 220 × 1

Male to Female Jumper Wire × 1 

Micro Push Button Switch 5x6x6mm - 10 Pack × 1 

Software Apps

Arduino IDE 

Making a Digital Multimeter Using Arduino

Making this multimeter includes 5 steps:

Step 1: Making the Voltmeter

We use the voltage divider technique for the voltmeter. We need the Arduino’s ADC unit to read the voltage.

Circuit

Here we have used 10 and 4.7 kilo-ohm resistors for the voltage division circuit. Connect the wires according to the following diagram.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 8/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Warning

Since the input voltage for Arduino’s ADC is 5 volts, selecting these resistors will allow the measuring of voltages up to 15 volts. Higher
voltages could damage your Arduino board.

By changing the resistors you can change the range of acceptable input voltages. The higher the input voltage, the lower the accuracy will be.

Note

The voltmeter should be in parallel to the section for measuring its voltage.

Code

Upload the following code to your Arduino and view the results in the Serial Monitor window.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 9/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

1 /*
2 Voltmeter with Arduino
3 modified on 21 Jul 2019
4 by Saeed Hosseini @ Electropeak
5 Home
6 */
7 const int VoltMeter = 2;
8 float V = 0.00;
9 void calculate_voltage() {
10 float R1 = 10000.00;
11 float R2 = 4700.00;
12 float v_ref = 5.00;
13 float resistor_ratio = 0.00;
14 float adc_value = 0.00;
15 float voltage = 0.00;
16 resistor_ratio = (R2 / (R1 + R2));
17 for (int i = 0; i < 20 ; i++)
18 {
19 adc_value = adc_value + analogRead(VoltMeter);
20 delay(3);
21 }
22 adc_value = adc_value / 20;
23 voltage = ((adc_value * v_ref) / 1024);
24 V = voltage / resistor_ratio;
25 }
26 void setup() {
27 Serial.begin(9600);
28 }
29 void loop() {
30 calculate_voltage();
31 Serial.print(V);

Here, using the formula for voltage division rule and reading voltage by the ADC unit, we calculate the input voltage.

Tip

To find the voltage using the ADC unit, we use the following proportion:

Step 2: Making the Ammeter

We use the AC712 sensor for making the ammeter. It is available as a module in various ranges. In this project, we are using the 5A range of this module.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 10/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

This sensor uses the hall effect to measure the current. Then it outputs a voltage proportional to the measured current, namely 185 millivolts for each amp
of current.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 11/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Circuit

Connect the wires according to the following diagram.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 12/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Note

To measure the current, the ammeter has to be in series with the intended section to measure the current.

Code

Upload the following code to your Arduino and view the results in the Serial Monitor window.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 13/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

1 /*
2 Ammeter with Arduino
3 modified on 21 Jul 2019
4 by Saeed Hosseini @ Electropeak
5 Home
6 */
7 const int Ammeter = A2;
8 float I = 0.00;
9 void calculate_current() {
10 int sensitivity = 185;
11 int adc_value = 0;
12 float v_ref = 4.94;
13 float voltage = 0.00;
14 float pure_voltage = 0.00;
15 float offset_voltage = 2.47;
16 for (int i = 0; i < 40 ; i++)
17 {
18 adc_value = adc_value + analogRead(Ammeter);
19 delay(2);
20 }
21 adc_value = adc_value / 40;
22 voltage = ((adc_value * v_ref) / 1024);
23 pure_voltage = voltage - offset_voltage;
24 // if(pure_voltage > 0.001) pure_voltage = 0.00;
25 pure_voltage = pure_voltage * 1000;
26 I = pure_voltage / sensitivity;
27 Serial.println(String("ADC = ") + adc_value );
28 Serial.println(String("V = ") + voltage + "v");
29 Serial.println(String("Pure = ") + pure_voltage + "mv");
30 Serial.println(String("I = ") + I + "A");
31 }

Here, the ADC unit reads the sensor’s output voltage, then calculates and displays the current using the mentioned proportion of 185 millivolts for each
amp of current.

Note

The first time you start the sensor, it should be free of any load and output voltage should be around 2.5 volts. Read this value carefully and
substitute it for the offset-voltage variable preset.

Step 3: Creating the Ohmmeter

We use the same voltage divider technique for making the ohmmeter.

The range of resistors’ values is the main issue in an ohmmeter. The farther apart resistance values of the known and unknown resistors are, the less
accurate results will become. So it would be better to use several resistors to maintain smaller ranges. You can manually change the resistors using a
switch or set it up automatically.

In order to automatically change the resistance range, we measure the unknown resistor one by one using the known resistors. Using the known resistors
and the measured values, we calculate more accurate values for the unknown resistors.

Here we have used three ranges of 1, 10 and 100 kilo-ohms. You can make changes based on your project requirements.

Circuit

We have used the 1, 10 and 100 kilo-ohms resistors to set the ranges. Connect the wires according to the following diagram.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 14/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Code

Upload the following code to your Arduino and view the results in the Serial Monitor window.

1 /*
2 Ohmmeter with Arduino - Automatic range
3 modified on 21 Jul 2019
4 by Saeed Hosseini @ Electropeak
5 Home
6 */
7 const int OhmMeter = 0;
8 const int R3 = 6;
9 const int R2 = 5;
10 const int R1 = 4;
11 float R = 0.00;
12 void calculate_resistor() {
13 float v_ref = 4.94;
14 float r1 = 0.00;
15 float r_ref1 = 1000.00;
16 float adc_value1 = 0.00;
17 float voltage1 = 0.00;
18 float r2 = 0.00;
19 float r_ref2 = 10000.00;
20 float adc_value2 = 0.00;
21 float voltage2 = 0.00;
22 float r3 = 0.00;
23 float r_ref3 = 100000.00;
24 float adc_value3 = 0.00;
25 float voltage3 = 0.00;
26 pinMode(R1, OUTPUT);
27 pinMode(R2, INPUT);
28 pinMode(R3, INPUT);
29 digitalWrite(R1, HIGH);
30 for (int i = 0; i < 20 ; i++)
31 {

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 15/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

In this piece of code, unknown resistance values are calculated one by one, using the known resistors. Then we use the conditions to calculate the main
resistor’s resistance.

Note

In order to measure the resistance accurately and turn Arduino pins on and off, setting them as LOW wouldn’t suffice. Arduino pins should be
defined as inputs so they can be fully turned off.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 16/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Step 4: Building the Capacitance Meter

We are using the same capacitor’s charging time algorithm to measure the capacitance. After the measurement process, the capacitor should be
discharged for the next measurement.

Circuit

Here we used a 10 kilo-ohm resistor to charge the capacitor and a 220-ohm resistor for discharge.

Connect the wires according to the following diagram.

Code

Upload the following code to your Arduino and view the results in the Serial Monitor window.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 17/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

1 /*
2 Capacitance meter with Arduino
3 modified on 21 Jul 2019
4 by Saeed Hosseini @ Electropeak
5 base on: https://www.arduino.cc/en/Tutorial/CapacitanceMeter
6 Home
7 */
8 const int CapacitancMeter = 1;
9 const int ChargePin = 13;
10 const int DischargePin = 11;
11 float C = 0.00;
12 void calculate_capacitance() {
13 unsigned long start_time;
14 unsigned long elapsed_time;
15 float microFarads;
16 float nanoFarads;
17 float r_ref = 10000.00;
18 digitalWrite(ChargePin, HIGH);
19 start_time = millis();
20 while (analogRead(CapacitancMeter) < 648) {}
21 elapsed_time = millis() - start_time;
22 microFarads = ((float)elapsed_time / r_ref) * 1000;
23 if (microFarads > 1)
24 {
25 C = microFarads;
26 }
27
28 else
29 {
30 nanoFarads = microFarads * 1000.0;
31 C = nanoFarads;

The measurement algorithm is as follows:

Start charging the capacitor and registering the starting time using millis() command

Continue charging up to 63.2% of the total capacitance of the capacitor (equal to 648 in ADC)

Recording the elapsed time until reaching 63.2% charge

Calculating the capacitance using the time constant formula, knowing the resistance and time

Full discharge of the capacitor

Note

If you increase the known resistor’s resistance, the charging time will increase, resulting in more accurate results. However, longer charge
duration reduces the measurable capacitance range. If you decrease the resistance, charge time will be reduced and the measurable range
increases, at the cost of losing accuracy.

Step 5: Wrapping it Up And Adding a Display

Now that all target parameters are measured, you can complete your multimeter by adding an OLED display and two buttons to navigate the menus.

CIrcuit

Connect the wires according to the following diagram.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 18/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Code

Upload the following code to your Arduino and view the results in the Serial Monitor window.

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 19/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

1 /*
2 Digital Multimeter with Arduino and OLED
3 modified on 21 Jul 2019
4 by Saeed Hosseini @ Electropeak
5 Home
6 */
7 #include <Wire.h>
8 #include <Adafruit_GFX.h>
9 #include <Adafruit_SSD1306.h>
10 #include "logo.h"
11 #define SCREEN_WIDTH 128
12 #define SCREEN_HEIGHT 32
13 #define OLED_RESET -1
14 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
15 const int select_button = 2;
16 const int right_button = 3;
17 const int OhmMeter = A0;
18 const int CapacitancMeter = A1;
19 const int VoltMeter = A2;
20 const int Ammeter = A3;
21 const int R3 = 6;
22 const int R2 = 5;
23 const int R1 = 4;
24 const int ChargePin = 13;
25 const int DischargePin = 11;
26 boolean is_select = false;
27 int navigator = 0;
28 int flag = 0;
29 float R = 0.00;
30 float V = 0.00;
31 float I = 0.00;

Copy the logo.h file to your code’s folder.

 logo.h DOWNLOAD
H  1 file(s)  12.56 KB

Press the button connected to pin 3 to navigate the menus. Pushing the button on pin 2 enters the measurement process for the highlighted item on the
menu. Pressing it again takes you back to the main menu.

Success

Congratulations! Now you have a professional digital multimeter.

What’s Next?

• Add the automatic range switch for capacitance measurement


• Ability to test connectivity to your multimeter

Explore more exciting electronics projects and expand your skills in the fascinating world of electronics. Stay tuned for more guides and tutorials at Your
Electronics Guide.

Liked What You See?


Get Updates And Learn From The Best

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 20/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Enter Your Email

Send 

PREVIOUS NEXT
 
ESP32 Bluetooth Low Energy (BLE) on Arduino IDE [Tutori… ESP32 & ESP8266 NTP Client-Server: Getting Date and Ti…

More To Explore

ESP32

Sending Data From ESP32 Or ESP8266 To Google Sheets [2 Methods]

Majid Merati

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 21/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Arduino

How To Program Arduino Over Bluetooth Wirelessly [Full Guide]

Majid Merati

Comments (63)

Dongkoi Reply
Hello. thank you for this Article. it will surely be a great help in building our own multimeter project. I hope you’ll response in my question while building
this kind of project. Thanks again!

November 9, 2020 at 11:54 am

Mohammadreza Akbari Reply


Hi. We are very glad to hear this article was useful for you.

November 14, 2020 at 2:31 pm

Dongkoi Reply
hi there, just wanna ask some question. how can i combine all the codes?

January 4, 2021 at 9:24 am

Mehran Maleki Reply


Hi.
Actually you don’t need to compile all the codes to make the digital multimeter. Separate parts of the digital multimeter are explained in steps 1
to 4. And in step 5, all previous steps are wrapped up in a single circuit and code. So if your question is how you can make a complete digital
multimeter -and not just an Ohmmeter or Ammeter-, you can do that by just following the code and circuit of the step 5.

January 4, 2021 at 10:58 am

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 22/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

dongkoi
hehe you’re right, its in step 5. thanks a lot.

January 6, 2021 at 12:48 pm

koidong Reply
what should be the right thing to do with the logo.h file? i’ve copied it to the folder where my code is located but it keeps showing an error “logo.h: no such
file or directory”.

January 6, 2021 at 1:46 pm

Mehran Maleki Reply


You should copy it to the folder where your .ino file is located, meaning that logo.h and your .ino file must be in the same folder. In that way when you
open the .ino file, logo.h will also appear in a tab next to it. And then there shouldn’t be any problem.

January 6, 2021 at 2:21 pm

koidong Reply
thank you. it finally works! thanks for this article!

January 7, 2021 at 3:45 am

koidong Reply
Where to connect the inputs for resistance and capacitance?

January 7, 2021 at 5:28 am

Mehran Maleki Reply


For measuring the resistance, connect the resistor to the A0 and GND pins of your Arduino Board. And for capacitance, you need to connect the
capacitor to pins A1 and GND.

January 9, 2021 at 2:36 pm

johnnyy Reply
excuse me guys but i dont know how to measure the current?? so can you tell me where to connect the inputs of th curreny?

May 20, 2022 at 12:23 am

Mehran Maleki Reply


Hi,
To measure the current, you need to use the AC712 sensor. It is well explained in the “Step 2: Making the Ammeter” section. This sensor has 3
pins, 2 for the power supply -GND and VCC- and the other one “OUT” which is the output pin of the sensor and needs to be connected to an
analog pin of Arduino Board -A3 in our case-. Other necessary notes are also included in article.

May 22, 2022 at 7:38 pm

Luis Reply
Hello,
I’m trying assembly this circuit on tinkercad, but I can’t find the part (0.96″ I2C OLED Display Module)
The picture that you shared on step 5 is about tinkercad or did you use another software?
Can you please help me?

March 2, 2021 at 11:34 pm

Mehran Maleki Reply


Hello Luis,
The picture in step 5 is actually made using a combination of the fritzing and photoshop software programs just to show how the wiring should be.
And If you want to use Tinkercad for modelling the circuit, the following link might be helpful. “https://www.tinkercad.com/things/2EKXoCr8iki-096-
128×64-oled-display”

March 6, 2021 at 7:41 am

Enoch Reply
Electropeak in making the capacitance
What is the name of the Blue component used with the resistors

April 18, 2021 at 9:00 pm

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 23/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Mehran Maleki Reply


That’s the capacitor that we want to measure the value of.

April 19, 2021 at 5:04 am

Enoch Reply
What if I want to add a chargeable battery to the circuit how can I go about it.
Secondly please where would my red and black probes be fixed on the board.

March 10, 2021 at 7:54 pm

Mehran Maleki Reply


To add a chargeable battery -or any other type of battery-, you can just connect the positive terminal of the battery to the VIN pin and the negative
terminal to the GND pin of the Arduino board. And you don’t need to make any other changes to the rest of the circuit.
And about the probes, the black one can be fixed at the GND pin. But where the red one should be fixed at depends on what electrical component you
want to measure the value of. For example, to measure the value of a resistor or a capacitor, you should fix the red probe at A0 or A1 pin of your Arduino board
respectively.

March 13, 2021 at 11:04 am

Enoch Reply
Thank you very much
This website is very helpful
but can I ask please
What if i did not get the AC712 5A Current Sensor is there any alternatives

March 15, 2021 at 3:37 am

Mehran Maleki Reply


You’re quite welcome. So glad the tutorials have been useful for you.
About the ACS712 current sensor, you can replace that with any other current sensor that has an analog output voltage ranging 0 to 5 volts. Then you
need to change the code according to the current to voltage formula of the sensor you’re using.

March 17, 2021 at 12:42 pm

Daniel Reply
Thank you for this. I’m currently doing a similar project
Right now I’m searching for the best way to adapt main voltage (220 VAC) signal into an analog input that doesn’t fry up my arduino. A voltage divider is
out of question and I don’t seem to find a suitable transformer for the job of just measuring.. Any suggestions?

March 16, 2021 at 1:19 pm

Mehran Maleki Reply


Hello.
You’re welcome.
There are actually a handful of modules that can convert high voltage AC to a DC voltage that can be read by any of your Arduino analog pins.
ZMPT101B voltage sensor is one of these modules. You can also find a good tutorial of this sensor in our website. Here’s the link:
“https://electropeak.com/learn/interfacing-zmpt101b-voltage-sensor-with-arduino/”

March 17, 2021 at 12:59 pm

Enoch Reply
could not convert display.Adafruit_SSD1306 from void to bool
That is what my code( in the Arduino ide) is saying
Any help please ?????

March 18, 2021 at 5:49 am

Mehran Maleki Reply


Which line of the code is the error for? There might also have been some mistakes made while copying the code. So, please double check it and make
sure that nothing has gone wrong in the process of copying the code and taking it to your Aduino IDE. Then, if the error still persisted and didn’t go
away, say which line of the code exactly the error is about.

March 22, 2021 at 5:04 pm

Enoch Reply
Electropeak thank you very much I am done with the project but I am having some incorrect readings, the resistor is not measuring and before I test for
anything the multimeter just keep reading Like when it is supposed to be 0.00 it would keep reading randomly. Any help please

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 24/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

April 12, 2021 at 7:22 am

Mehran Maleki Reply


Your problem can be actually related to the tolerance of the components in your circuit. And generally, a little inaccuracy is acceptable.

April 19, 2021 at 5:12 am

adam Reply
Hi,
Do you have an idea how to protect the meter be mistested or misseted, say use a R gear to measure a Voltage by mistake?
Thanks
Adam

June 9, 2021 at 8:43 pm

Mehran Maleki Reply


Hi,
Unfortunately, I couldn’t fully understand your point. But if you mean how you could calibrate the multimeter so that the voltage is never measured
wrongly, you can do as following: You can add this capability to your multimeter by replacing the R2 resistor in the “Measuring the Electrical Voltage”
circuit with a multi-turn potentiometer. So, this way, whenever you feel your multimeter is out of calibration, you can adjust the value of the resistor and calibrate the
multimeter.

June 12, 2021 at 4:20 am

ABdul Reply
Hey there would you have an idea on how to measure AC voltage?

August 29, 2021 at 2:05 pm

Mehran Maleki Reply


Yes, there are some modules especially designed for that. For example, the ZMPT101B sensor can be used to measure AC voltages up to 250 volts.
You can check the following tutorial for more details on how you can use this module:
“https://electropeak.com/learn/interfacing-zmpt101b-voltage-sensor-with-arduino/”

August 30, 2021 at 5:08 am

Tatenda Nhika Reply


Hello, i have been trying to run the code for the multimeter but it keeps saying, no matching function for call to ‘Adafruit_SSD1306::Adafruit_SSD1306(int,
int, TwoWire*, int)’. How can i solve this error?

September 15, 2021 at 1:09 pm

Mehran Maleki Reply


Hi…
You probably don’t have the right SSD1306 library installed on your Arduino IDE. To install the appropriate library, open Arduino IDE, go to “Tools →
Manage Libraries” and search for SSD1306. Look for “Adafruit SSD1306” and install it. Or update it if it’s already installed. That would solve your
problem.

September 18, 2021 at 5:53 am

Qasem Mohammad Reply


Hi,
thank you for your wonderful work.
I did everything and it went very well, but I have a question, what do I need to change in the program if I take an HD44780 Display instead of the Oled
display.

January 13, 2022 at 9:40 pm

Mehran Maleki Reply


Hi. You’re welcome.
If you want to change the display to HD44780, first, note that it’s no easy job. You might not have enough pins to interface it with Arduino Uno, and also
you can’t easily display animations on it. But, if you want to replace the OLED display with an HD44780 one, you will need to change all lines that are
related to display and replace them with appropriate code for HD33780 display. The following tutorial shows how you can interface an HD44780 display with an
Arduino board and use it.
https://electropeak.com/learn/interfacing-character-lcd-display-modules-with-arduino/

January 15, 2022 at 7:18 am

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 25/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Ahmed Reply
Hi, im willing to make this multimeter but I can’t find the “0.96” Resistor 220 ” could someone send me a link so that I can buy it. Also if possible to
someone to send me a picture of the final result of the mutlimeter to heheboi1396@gmail.com fast as possible. It would help me a lot.
Thanks

January 30, 2022 at 4:49 pm

Mehran Maleki Reply


Hi.
​It’s just a simple 220-ohm resistor. “0.96” was just a typing mistake.

January 31, 2022 at 5:32 am

ALFREDO GONZALEZ Reply


Good project!! With nothing connected to the “R” input, it reads R=0.00 -it should read infinity. Also when measuring resistance below 1k, the “K” remains
showing on display.

February 1, 2022 at 3:12 pm

Mehran Maleki Reply


Hi. Thanks for your feedback! We’ll look into that.

February 2, 2022 at 6:14 am

Ahmed gaber Reply


Hi there ,,,thank you for your effort guys but I got a simple question …. i’ve connected all the components in the circuit above with applying the code
you guys put …. but its never measuring values of R and C so do have any assumption where the problem is ,,,,and can you explain how can i use it
to measure the voltage because i cant get it
Thank you in advance

May 19, 2022 at 7:49 pm

Mehran Maleki Reply


Hi,
An important point to consider when making such big circuits with a lot of components is to do it step by step. So, instead of connecting all
components at once and applying the final code, try to make the smaller circuits and use the codes corresponding to them. That way, you can
debug your problem more easily.

May 22, 2022 at 7:29 pm

Tariq mohammed Reply


Thanks for everything good tutorial
I want to ask about something. I want to add many thing to this project by (software) but I do not know the code. I want to add the following:
DC (Power and Energy)
AC (Voltage , Current , ohm , Capacitance , Power and Energy)
Note: I want it by software and I want as an addition to the main project not individual
If you can help me with that I will appreciate that
you can contact me on my email

February 20, 2022 at 3:51 am

Mehran Maleki Reply


Hi.
Unfortunately, we cannot accept projects. But if you ever decide to do those things you want on your own, we will be so happy to help.

February 20, 2022 at 7:55 am

Mohammed Reply
Please I have another question if I want to add DC (Power and Energy)
What should I do how can I calculate P=VI and E=Pt by coding

February 23, 2022 at 2:05 am

Mehran Maleki Reply


Hi.
Well, you can calculate the voltage and current (“V” and “I”) using the code in this tutorial. And by having “V” and “I”, you can easily declare an integer
variable named “P” and calculate the power using formula “P=VI”.
And you can do the same for the energy. Declare an integer variable and name it “E”, then calculate the energy using the formula “E=Pt”. The variable “t” can be

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 26/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

chosen arbitrarily.
You can study the link below for more notes on how to write your code, or consult a programmer.
https://www.programmingelectronics.com/tutorial-3-arduino-ide-and-sketch-overview/

February 23, 2022 at 5:49 am

Mohammed Reply
thank you and can I contact you by email or whatsapp ?

February 23, 2022 at 1:57 pm

Mehran Maleki Reply


Unfortunately not. You can just ask your questions here in the comments.

February 26, 2022 at 6:44 am

Val Reply
Hello, thanks for the great project. I only have one problem, I can’t find the OLED anywhere near me and I can only find LCDs can that work? and do you
have any Idea how to edit the code to make it work around using an lcd for an output?

April 28, 2022 at 4:51 pm

Mehran Maleki Reply


Hi,
LCDs can work, too. But there would probably be a lot of change in the code required to make it work. The tutorials below might help you.
https://electropeak.com/learn/interfacing-i2c-16×2-character-lcd-1602-display-module-with-arduino/
https://electropeak.com/learn/interfacing-character-lcd-display-modules-with-arduino/
https://electropeak.com/learn/using-1602-character-lcd-keypad-shield-arduino/

April 30, 2022 at 3:32 pm

Iulian Reply
Hello , i have a question , why do you divide by 20 the adc_value in the first step ? “adc_value = adc_value / 20” ? is it because u increment until it’s 20 for i
?

June 22, 2022 at 1:36 pm

Mehran Maleki Reply


Yes, exactly. It is mainly done to reduce the effect of noise in our measurements.

July 10, 2022 at 11:30 am

krishna Reply
I am getting a lot of errors in it like Adafruit_GFX.h , Adafruit_SSD1306.h No such file or directory etc. Can anyone kindly help me with making this project?

August 26, 2022 at 6:07 pm

Sara Khan Reply


Hi, I have a question. What changes do I have to do if I want the following ranges of readings from my multimeter:
DC Voltage [100mV – 20V]
DC Current [10mA – 20mA]

December 15, 2022 at 3:08 pm

Ali Abdolmaleki Reply


Hi
you can use c code that has been written on step2, but note that maximum measuring voltage for ACS712 is 15vDC.
It is so easy to estimate measuring range with a simple propotion between reference voltage and sensivity
for example for 3.3V and 185mv/A(this is Sensivity of ACS712) and 10bit ADC resolution(1023) the result is 57
so for 0.5A = 500mA = 28.5 that you can see in output

February 15, 2023 at 12:33 pm

Sara Khan Reply


And also please tell if this whole process can also meaure AC voltage and current or not??

December 15, 2022 at 3:15 pm

Ali Abdolmaleki
https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 27/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Yes. Reply
you can use it for this goal.

February 15, 2023 at 12:33 pm

jack Reply
what is the function of logo.h?

January 25, 2023 at 2:04 pm

Ali Abdolmaleki Reply


Hi.
logo.h is a library that has several functions to use.

February 19, 2023 at 11:23 am

bahril Reply
please i want to know codes in Voltmeter , why adc_value divided by 20 ? i dont get it.

March 23, 2023 at 1:19 pm

Ali Abdolmaleki Reply


Hi dear
if you note to above of adc_value = adc_value / 20; line
you see the for loop with 20 step that read the analog value and plus the Previous and next value.
actually with need to get avarge from 20 cases to get more accurate value.

April 1, 2023 at 7:56 am

Fedrick Powell Reply


Greetings
Mehran Maleki
Looking at your project I find it very interesting to try and make one. But I am wondering how I can connect a battery to the circuit for the meter to be
portable?

May 6, 2023 at 10:39 pm

Hadi Norouzi Reply


Hi Fedrick
You should use the following device: 5v-1a-power-bank-charger-lithium-battery
When you get the device, you need to connect the battery to this device, and then this device to Arduino.

May 13, 2023 at 11:02 am

crimson spruce Reply


what changes do i need to make if i want to send the data to my cloud channel in thingspeak instead of displaying it on display board?

September 18, 2023 at 7:16 am

Mohammad Damirchi Reply


Hi Crimson
You should use ESP32 as the microcontroller instead of Arduino Uno. To send data to your cloud channel, you can read the related tutorials on
Internet.

September 19, 2023 at 5:47 am

Leave a Reply

Your email address will not be published. Required fields are marked *

Comment

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 28/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Name *

Email *

Website

Save my name, email, and website in this browser for the next time I comment.

I'm not a robot


reCAPTCHA
Privacy - Terms

POST COMMENT

 +86 139 234 941 92

 info@electropeak.com

 Shenzhen, China

COMPANY MY ACCOUNT

About us My Wishlist

Contact us My Account

My Account Order History

CUSTOMER SERVICE

FAQ

Return Policy

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 29/30
11/7/23, 6:40 AM Arduino Multimeter | Build a Digital Multimeter with Arduino [Tested]

Payment & Shipping

ElectroPeak Inc. © 2019. All Rights Reserved

WORKING DAYS/HOURS
Mon – Fri / 9:00-18:00 GMT+8

© All rights reserved

     

https://electropeak.com/learn/make-a-digital-multimeter-with-arduino/ 30/30

You might also like