DIY: a 5 Minutes Arduino Voltmeter With an OLED Display

14,777

164

15

About: I am a dreamer, maker and an engineer making and sharing interesting projects here at Instructables. Follow me @ instagram: @the_gadget.boy

Hello !

I'm going to show you how to make a voltmeter* with Arduino UNO, an OLED display, 2 resistors and 9 jumpers for less than 5 minutes. With it you will be able to measure Voltage from 0 to 50V (if you exceed it you may damage your Arduino !). Lets begin !

*"A voltmeter is an instrument used for measuring electrical potential difference between two points in an electric circuit" - Wikipedia

Step 1: Parts and Software

For the voltmeter you will need:

  • An Arduino UNO board
  • An OLED display - 1.3' 132x64 with SH1106 controller
  • 2 resistors - 10 k and 100k
  • A breadboard
  • 9 jumper wires

You will need the Arduino IDE that you can get from:

https://www.arduino.cc/en/main/software

and the U8glib library for the OLED that you can get from:

https://code.google.com/archive/p/u8glib/

or

https://github.com/olikraus/u8glib

Step 2: Making the Voltmeter

I order to measure voltage we will a build a simple voltage divider, but first place the OLED board on the breadboard. Then connect pin 13 to CLK, pin 11 to DIN, pin 9 to CS, pin 8 to D/C and pin 7 to RES.

Pins: 13, 11, 9 are the SPI Bus of the Arduino UNO board.

Now we build the voltage divider, plug the resistors on the breadboard and connect them for each other, the other side of the 100k resistor connect to ground, the connection between both reistors to analog 0 and the other side of the 10k resistor to the source you wish to measure, like on the schematic above.

After that move to the next step.

Step 3: Code

In this step, we are going to see how to program the voltmeter that you just built. You can find the whole code for the voltmeter on the corresponding GitHub repository: https://github.com/KonstantinDimitrov/Arduino_OLED...

We are now going to program the board. The first step is to plug in the USB cable in the board and the other side in your PC.

Step 4: Done !

As final step you have to upload the code to the 'duino and, you now learned the basics on how to build a voltmeter with Arduino and OLED display.

Share

Recommendations

  • Optics Contest

    Optics Contest
  • Make it Glow Contest 2018

    Make it Glow Contest 2018
  • Plastics Contest

    Plastics Contest

15 Discussions

0
None
pawlaa1370

1 year ago

Thank you again .

One question .

How to add code in your own animation on boot.

0
None
xrad

1 year ago

Wrote some new code so that 'blinking' of WARNING LOW VOLTAGE happens when v<12.59 (for 14v lipo). Used u8g.firstPage(); to 'clearscreen' for two additional drawings. THX Konstantin, for an GREATprogram!!

sse vid at :

0
None
xrad

1 year ago

Excellent program. Thank you for posting!! Very robust. I modified the V minimum to 2v which which had less jitter when (vin < 2.0) . I am VERY new to C++ /Arduino. I am trying to make this IF work so that "LOWVOLT" flashes. I have tried variations of the IF statement, added void draw(void) drawStr's, seems to be a really simple operation for the page, but I can't get it to work, any help greatly appreciated! (PS: I could not find the link to post code in this box)

if (vin < 2.0)

u8g.setFont(u8g_font_profont17r); // select font

u8g.drawStr(18, 12, "LOWVOLT");

u8g.setPrintPos(33, 40);

delay(200);

0
None
igcasenza_b

2 years ago

Hi,is it ok to use other arduino products ? Is this will affect the arduino project ?

0
None
link5505

2 years ago

Hi, how can I modify this to allow for 50.4v? Thanks, I am fairly new to this stuff.

0
None
dcastor

2 years ago

In your intro, you say your voltmeter can measure "current from 0-30V". I think you meant to say it can measure "*voltage* from 0-30V" or did you mean current and the units would be Amps?

0
None
martinbolton

2 years ago

Very cool. If I wanted to adapt this for my motorcycle, all I would need to do use a 12v - 5v USB charger to power the Arduino ?

1 reply