This project demonstrates how to build a low-cost digital multimeter using Arduino and basic electronic components. The multimeter can measure voltage up to 24V, test diodes, measure resistance, check LED voltage drop, and perform continuity testing with an audible buzzer.
Source: CircuitDigest - DIY Digital Multimeter with Arduino
- Voltage Measurement: Up to 24V DC
- Diode Testing: Forward voltage drop measurement
- Resistance Measurement: Ohm meter functionality
- LED Testing: Voltage drop across LEDs
- Continuity Testing: With audible buzzer indication
- OLED Display: 0.91" 128x32 display for readings
- Battery Powered: Portable design with dual 3.7V batteries
- Mode Selection: Push button to cycle through different measurement modes
Component | Quantity | Description |
---|---|---|
Arduino Pro Micro | 1 | Main microcontroller |
0.91" OLED Display (128x32) | 1 | Display for measurements |
Push Button | 1 | Mode selection |
Toggle Switch | 1 | Power switch |
Active Buzzer | 1 | Continuity indication |
Banana Sockets | 4 | Test probe connections |
1K Resistor | 1 | Current limiting |
10K Resistor | 1 | Voltage divider |
4.7K Resistor | 2 | Voltage divider |
AMS1117-5.0 | 1 | 5V voltage regulator |
3.7V Lithium Battery | 2 | Power supply (300mA) |
Perfboard | 1 | Circuit assembly |
Connecting Wires | As needed | Circuit connections |
The circuit uses Arduino as the main controller with:
- Voltage divider network (10K and parallel 4.7K resistors) for voltage measurement up to 24V
- Two pairs of banana connectors for different measurement types
- OLED display for data visualization
- Push button for mode switching
- Dual battery setup with 5V regulation
Arduino Pin | Connection |
---|---|
A0 | Voltage measurement input |
A2 | Resistance/Diode test input |
Pin 7 | Mode switch button (INPUT_PULLUP) |
Pin 9 | Buzzer output |
Pin 13 | Status LED |
SDA/SCL | OLED Display |
Install the following libraries in Arduino IDE:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
- Measures DC voltage from 0-24V
- Uses voltage divider for safe measurement
- Displays result on OLED in volts
- Measures forward voltage drop
- Useful for testing diodes and LEDs
- Shows voltage drop across test component
- Measures resistance values
- Displays in ohms or kiloohms
- Uses voltage divider principle
- Tests for electrical continuity
- Buzzer sounds if resistance < 100 ohms
- Visual and audible indication
- Power On: Use the toggle switch to power the device
- Mode Selection: Press the push button to cycle through modes:
- Mode 0: Voltmeter
- Mode 1: Diode/LED Test
- Mode 2: Ohm Meter
- Mode 3: Continuity Test
- Take Measurements: Connect test probes to appropriate banana sockets
- Read Results: View measurements on the OLED display
- Circuit Assembly: Solder components on the perfboard according to the circuit diagram
- Display Connection: Wire OLED display to Arduino I2C pins
- Battery Setup: Connect dual 3.7V batteries in series through voltage regulator
- Enclosure: Use provided STL files for 3D printed case
- Calibration: May require minor calibration for accurate voltage readings
A custom enclosure can be 3D printed to house the circuit and batteries professionally. The STL files are available for download from the source project.
- The voltage measurement may show ±200mV difference compared to commercial multimeters
- Calibration can be done by adjusting the voltage divider resistor values in the code
- For better accuracy, use precision resistors (1% tolerance)
- Reduce connectors: Use additional IC to reduce banana sockets to single pair
- Wireless capability: Replace Arduino with ESP32 for WiFi features
- PCB design: Create custom PCB for better mechanical stability
- Auto-ranging: Implement automatic range selection
- Data logging: Add SD card for measurement logging
The main code consists of:
- Setup(): Initialise display, pins, and serial communication
- Loop(): Handle mode switching and measurements
- Mode functions: Separate logic for each measurement type
- Display functions: Update OLED with measurement data
- Maximum input voltage: 24V DC
- Ensure proper polarity when measuring DC voltage
- Use appropriate test leads and probes
- Check battery voltage regularly for accurate readings
Issue | Solution |
---|---|
No display | Check OLED connections and I2C address |
Incorrect readings | Verify resistor values and calibrate |
No buzzer sound | Check buzzer polarity and pin connection |
Mode not switching | Verify button connection and pull-up resistor |
This project is based on the original work from CircuitDigest. Please take a look at their licensing terms for commercial use.
Please feel free to fix this project and submit any improvements. Some areas for enhancement:
- Code optimisation
- Additional measurement functions
- Improved user interface
- Better calibration methods
- IoT Based Electricity Energy Meter
- Arduino Water Flow Sensor
- Arduino GPS Speedometer
- Arduino Frequency Counter
- Arduino Projects
Project Source: CircuitDigest DIY Digital Multimeter
Difficulty Level: Intermediate
Estimated Build Time: 4-6 hours
Cost: $25-35 USD