We can use use simple voltage divider at micro:bit ADC input to measure DC voltages but using this method we can only measure large voltages with fair bit of accuracy. What about small voltages in range of few Milli or micro volts. One way of tackling such situations is using general purpose or instrumentation op amp with fairly large gain to make it easy to read voltage for ADC. Here I am going to build a volt meter with 1mV to 10V measuring range and with capability to detect up to 0.1 mV change.
Micro:Bit for digital measurement and display
AD620 for amplification of very low voltage to micro:bit ADC readable voltage
9Mohm and 1Mohm resistor voltage divider (~10Mohm input resistance is usually used in most professional multi-meters to minimize the leakage current)
SP3T switch to select voltage range (you can use any other way to select gain resistor i.e. 3x2pin jumper)
3.3V zener diode to protect micro bit ADC input
± 5V power supply (AD620 max. possible output swing will be -3.9 to 3.8V)
Low pass filter using generic OP-AMP (lm358) for filtering noise in output of AD620 (optional)
LM339 (quad comparator) to tell our micro:bit that applied voltage is out of range for current selection of voltage range (optional)
few generic 10k, 100k resistors and capacitors .1uF, 1uF, 10uF capacitors (optional for filter design)
Precision analog opto-isolation amplifier using HCNR200/201 (optional to add isolation between voltage measuring circuit and micro:bit)
For better voltage measurement we will use 10Mohm (9+1) voltage divider and measure voltage across 1Mohm resistor.
Micro ADC specs 10bit (0-1023 steps)
1 step = 3.3V/1023 ~= 0.0032V
In order to read 1mV more accurately we will divide it into 10 ADC steps which mean 0.1mV of applied voltage should correspond to 3.2mV of ADC and it will give us voltage measuring range of 102mV. To get specific amplification of applied voltage, we will use AD620 instrumentation amplifier.
0.1mV of applied voltage after voltage divider: 10microV
To make 0.01mV equal to 3.22mV we need to amplify it 322 times.
AD620 Gain Formula: G=49.4k +1
The resistor Rg value for 322 times gain is ~154 ohm. To make is simple we will use easily available resistor of 150 ohm.
Now our value of gain for 150 ohm resistor will be ~330 times which is better than ~322 and give ~100mV measuring range.
This Voltage range is too low for DIY voltmeter. To overcome this problem we will use multiple input single output switch.
For our next voltage ranges the value of Rg will be:
10mV to 1V ==> 1.5kohm
100mV to 10V ==> 15kohm
- (Direction of applied voltage is very important)
- we can use programmable resistor pot to auto select the voltage range
- changing the ratio of voltage divider (i.e: 5:5Mohm) and using low Rg (high Gain) we can measure up to 1uV but calibration of such system will be a difficult task
- accuracy of this system can be increased by using high bit external ADC