DIY RC Meter (Resistance + Capacitance) Very Accurate — With OLED Display
by arhamsameel3 in Circuits > Arduino
361 Views, 3 Favorites, 0 Comments
DIY RC Meter (Resistance + Capacitance) Very Accurate — With OLED Display
Ever needed to quickly check a resistor or capacitor value but didn’t want to pull out your big multimeter?
I built a DIY RC Meter that measures resistance and capacitance, shows results on a bright OLED screen, and even has a HOLD mode to freeze readings.
It’s compact, accurate enough for prototyping, and really fun to build!
In Version 2 I’ll be adding inductance measurement, making it a full RLC meter.
features:
Measures Resistance (R) from a few ohms up to megaohms
Measures Capacitance (C) from pF to mF range
Auto unit scaling (Ω, kΩ, MΩ / pF, nF, µF, mF)
HOLD mode – freeze current reading
Clean OLED user interface
Buttons to switch between R / C mode
Supplies
Arduino Nano / Uno
0.96” OLED Display (I²C)
2 × Push buttons (Mode + Hold)
Resistors: 10kΩ (x2 as reference resistors)
Breadboard or PCB
Jumper wires
Capacitors / Resistors to test
Wiring
This is the most important step! Don’t worry — it’s not complicated once you see how everything is connected.
We’ll go one part at a time:
1. OLED Display (I²C)
The OLED only needs 4 wires.
- OLED VCC → Arduino 5V
- OLED GND → Arduino GND
- OLED SDA → Arduino A4
- OLED SCL → Arduino A5
👉 That’s it. This is the I²C communication line. Make sure you connect SDA to A4 and SCL to A5 (on Uno/Nano).
2. Buttons (Mode + Hold/Reset)
We’re using two push buttons. One for switching modes (R / C) and one for HOLD.
- MODE Button:
- One leg → Arduino D2
- Other leg → GND
- (We use Arduino’s internal pull-up resistor, so no external resistor needed.)
- HOLD Button:
- One leg → Arduino D3
- Other leg → GND
- (Again, no resistor needed — internal pull-up is used.)
👉 This means the button reads LOW when pressed, HIGH when not pressed.
3. Test Points (Where You Connect Resistors/Capacitors)
We need two points where the component under test will connect.
- TEST+ → Arduino A0 (Analog Pin)
- TEST- → Arduino GND
👉 Whenever you want to measure something, connect one leg of your resistor/capacitor to A0 and the other leg to GND.
4. Reference Resistors (The "Known" Values)
The trick to measuring unknown R or C is comparing them against known resistors. We use two 10kΩ resistors:
- Rref_R (for resistance mode):
- Connect one end to 5V
- Connect the other end to A0
- Rref_C (for capacitance mode):
- Connect one end to Arduino D9
- Connect the other end to A0
👉 So both reference resistors join at A0, but one comes from 5V (for R measurement) and the other comes from D9 (used as a charging pin for capacitance).
5. Quick Check Before Powering On
- Double-check that OLED VCC is 5V (not 3.3V).
- Make sure A0 is the only common point where:
- TEST+ connects
- Rref_R connects
- Rref_C connects
- Buttons only go between pin → GND (no +5V needed).
Once this wiring is done, your RC Meter is ready for code upload!
Code
I wrote the code to keep the UI clean and the readings stable.
- Median filtering for more accurate resistance values
- Multiple charge/discharge cycles for capacitors
- Automatic unit scaling
- HOLD mode to freeze readings
Downloads
Usage
Power on the device.
Press MODE to toggle between Resistance (R) and Capacitance (C).
Insert your resistor or capacitor into the test points.
The display will auto-scale and show the value.
Press HOLD to freeze the current reading.
Future Improvements (V2)
Add Inductance measurement (L) → full RLC meter
Auto-ranging reference resistor selection
Serial/WiFi logging of values
3D-printed enclosure
Demo Working Video
Conclusion
This was such a fun build! It’s a great project if you’re into Arduino + electronics and want a practical tool you’ll actually use on your workbench.
I’ll be working on V2 with inductance measurement soon