Hi Community!
In this project we're gonna tell you how you can make your own multimeter with arduino! We're gonna start with the basics, like measuring DC voltage, DC current, resistors, inductors & capacitors. We may update this project with more functions like pressure, temperature, frequency, light, humidity & much more! We hope you like this amazing project where you can learn a lot about arduino, electronics and programming.
Materials
- • Arduino Uno
- • Cables and Breadboard
- • R1—9KΩ
- • R2—1KΩ
- • R3—12Ω
- • R4—10KΩ
- • R5—220Ω
- • C1—100uF Electrolytic Capacitor
- • C2—1uF Ceramic Capacitor
- • L1—100uH
- • D1—1N4004
- • ASC712-05A Current Sensor Module
- • IC1-LM358
DC Voltage Measurement
When we talk about DC voltage measurement, the most basic activity that we may perform with the Arduino inbuilt ADC is voltage measurement. Because the inbuilt ADC reference voltage of the Arduino is 5V, the greatest voltage we can measure without needing an external circuit is 5V. It has a 10-bit resolution and can scale from 0 to 5 volts with 210=1024 values. 0V represents a 0 ADC reading, while 5V represents 1023.
We need an external voltage divider to match the ADC needs for greater voltages than 5V. It converts the needed measurement voltage into a 0 to 5V scale. Two resistors can be used to make it. We're measuring DC voltage from 0 to 50 volts.
Materials for DC Voltage Measurement
- • R1—9KΩ
- • R2—1KΩ
- • Arduino Uno
- • Cables and Breadboard
Schematic for DC Voltage Measurement
The circuit is made up of merely two resistors that act as voltage dividers. When we apply 50V input across the voltage divider, we measure the voltage drop across the 1K Ohm resistor, which is 5V.
Code for DC Voltage Measurement
void setup () {
// initialize serial communication:
Serial.begin (9600);
}
void loop () {
// read the input on analog pin 0:
int Value = analogRead (A0);
// Convert the analog reading to a voltage:
float voltage = Value*(5.0/1024.0)*10;
// print out the values:
Serial.print ("Voltage: ");
Serial.print (voltage);
Serial.println ("V");
delay (1000);
}
To see the results you need to check the serial monitor!