# Lesson 9--Microduino used as 0-5V range voltmeter (simulate a multimeter)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

## Objective

We have learned how to use read analog port, then mapping to 0~1024. Today we will make a 0-5v voltmeter by Microduino's analog port.

Note：This experiment circuit design without relatively complex protection circuit, so don't use more than two AA batteries, and don't used to measure the lithium battery or other power supply！！

## Experimental schematic

The purpose of using 1K resistor is that in the case of measuring end vacant, the GND reference guide to measure port, and avoid vacant interfaces interference.

## Program

```float temp;   // Define a float variable temp to save data.
void setup()
{
Serial.begin(115200);     //Set baud rate 9600
}
void loop()
{

// Read the voltage date form A0 and stores in V1, the voltage range is 0-5v and return value is 0-1024.
float vol = V1*(5.0 / 1023.0);
//Convert the V1 to actual voltage value and stores in vol
if (vol == temp)
//Use to filter duplicate data, Only the voltage value and the last isn't same then output the value.
{
temp = vol;                               //Compared, then store in temp variable "temp"
}
else
{
Serial.print(vol);                       //Serial output voltage, nowrap
Serial.println(" V");                    //Serial output character "V", and wrap
temp = vol;
delay(1000);                           //Wait for 1s, use to refresh the data
}
}```

We don't use the function map() to the conversion, you can try it by yourself.

## Result

Whne the measured voltage changed, refrest the date every 1s. If there is a gap between two voltage value, this is normal. Because this is a low accuracy test. If you need a higt accuracy test, plesae refer to： http://www.hacktronics.com/Tutorials/arduino-current-sensor.html