How does a Digital Multimeter work?

In summary, the digital multimeter uses a special-purpose ADC to convert the analogue input to digital. The next step in the process is to use the sampled voltage to charge a capacitor for a fixed time, then measure the discharge time using a reference voltage. The ratio of the times is proportional to the sampled voltage.
  • #1
Berserk
10
0
Can someone kindly explain the exact working of a digital multimeter? I know the basic idea, that everything measured (current, resistance, etc..) is converted to volts. But what happens after? How does the digital part come into this? Thanks in advance.
 
Engineering news on Phys.org
  • #2
Do you want to know how analogue to digital converters work? That is the next step in the process.

I don't know what method is favoured in contemporary meters, but my old meter uses dual slope integration. You can look up the details, but my off the cuff understanding of the essentials is: Use the sampled voltage to charge a capacitor for a fixed time, then measure the discharge time using a reference voltage. The ratio of the times is proportional to the sampled voltage. So if the discharge time is 0.1 of the charge time, the sampled voltage is 0.1 x the reference voltage.

There are lots of websites with more detail.
 
  • Like
Likes Averagesupernova and Berserk
  • #4
Yeah i know about the ADC. It converts the analogue input to digital. Alright so, what happens next? Do we just feed that directly to the seven segment display?
 
  • #5
I suspect some of the cheaper meters will use successive approximation. They start toggling the most significant bits in an D/A convertor and feed that output to a comparator. They watch for the change on the comparator output and finally when the least significant bit has been toggled they look at what the input to the D/A convertor is. I think most of these in the past have been used in equipment that has a simple voltmeter more to be used as an indicator not meant to be a precise instrument.
 
  • Like
Likes Berserk
  • #6
  • Like
Likes Berserk
  • #7
To make it maybe a little clearer.
The integration is like an op-amp integrator: the voltage is applied to a resistor and the current used to charge a capacitor. The voltage on the capacitor then increases in proportion to time and to the input voltage. Equally the fall of capacitor voltage when it is discharged is proportional to the time and the reference voltage.
So Vc ∝ Vin x t1 and Vc ∝ Vref x t2
When you equate these you get t2 = t1 x Vin/Vref
So if you choose t1 along with Vref appropriately, the actual value of t2 could be the display value, say in microvolts. So you have say, a 2000 microvolt meter, which you can use for other ranges by switching the input resistance chain, just as in analogue meters.

I think modern meters have microcontrollers, so can perform further maths on this basic count. If this is done, your imagination is the limit. For eg. you can calculate and store min/max , and average values, display the count as an analogue bar (or even dial).

The value of the dual slope integrator ADC (as I understand it) is the accuracy and linearity. Errors in the exact value of the capacitor and charging resistor tend to cancel out in the two halves of the cycle. Accuracy is limited by the voltage reference (which is the case with any ADC) and by the timing, which only needs to be consistent not accurate. Other ADCs may depend on having a chain of very accurate resistors and comparators which switch consistently at a very precise voltage. This may be more difficult to achieve across a range of temperatures than a stable clock.
The downside of dual slope ADC, which is not a problem in multimeters, is that it takes time. If you need thousands or even millions of samples per second, other methods are much quicker.
 
  • Like
Likes Berserk
  • #8
The problem is I'm supposed to make a multimeter without using any sort of microcontrollers. I can't use an Arduino as well and the ADC i have to work with is ADC0804. Unfortunately i have no idea how I'm supposed to incorporate this ADC into a circuit. The above comments have been really informative but i need to know more. For instance, can we feed the digital signal from the ADC directly to the LCD display? Or do we require something else?
 
  • #9
Merlin3189 said:
To make it maybe a little clearer.
The integration is like an op-amp integrator: the voltage is applied to a resistor and the current used to charge a capacitor. The voltage on the capacitor then increases in proportion to time and to the input voltage. Equally the fall of capacitor voltage when it is discharged is proportional to the time and the reference voltage.
So Vc ∝ Vin x t1 and Vc ∝ Vref x t2
When you equate these you get t2 = t1 x Vin/Vref
So if you choose t1 along with Vref appropriately, the actual value of t2 could be the display value, say in microvolts. So you have say, a 2000 microvolt meter, which you can use for other ranges by switching the input resistance chain, just as in analogue meters.

I think modern meters have microcontrollers, so can perform further maths on this basic count. If this is done, your imagination is the limit. For eg. you can calculate and store min/max , and average values, display the count as an analogue bar (or even dial).

The value of the dual slope integrator ADC (as I understand it) is the accuracy and linearity. Errors in the exact value of the capacitor and charging resistor tend to cancel out in the two halves of the cycle. Accuracy is limited by the voltage reference (which is the case with any ADC) and by the timing, which only needs to be consistent not accurate. Other ADCs may depend on having a chain of very accurate resistors and comparators which switch consistently at a very precise voltage. This may be more difficult to achieve across a range of temperatures than a stable clock.
The downside of dual slope ADC, which is not a problem in multimeters, is that it takes time. If you need thousands or even millions of samples per second, other methods are much quicker.
This was really interesting. Thank You.
 
  • #10
Berserk said:
The problem is I'm supposed to make a multimeter without using any sort of microcontrollers. I can't use an Arduino as well and the ADC i have to work with is ADC0804. Unfortunately i have no idea how I'm supposed to incorporate this ADC into a circuit. The above comments have been really informative but i need to know more. For instance, can we feed the digital signal from the ADC directly to the LCD display? Or do we require something else?
The ADC0804 is designed for use with a micocontroller. If you do not require a decimal output, you can try something like the test circuit on page 16 of the data sheet (http://www.ti.com/lit/ds/symlink/adc0804-n.pdf).
 
  • Like
Likes Berserk
  • #11
Svein said:
The ADC0804 is designed for use with a micocontroller. If you do not require a decimal output, you can try something like the test circuit on page 16 of the data sheet (http://www.ti.com/lit/ds/symlink/adc0804-n.pdf).

Is there no other way to use ADC0804 without microcontrollers? Actually i do require a decimal output, but thanks for that data sheet. :)
 
  • #12
The problem is I'm supposed to make a multimeter without using any sort of microcontrollers.
Well, I'd say that was a BIG ask. Have you got to make it, or just design it? There's a lot of work between a plausible sketch of a design and a design you can build:, then a lot more before that becomes a working model.
You need to be clear what the objectives are. (and anyone trying to advise you needs to be aware of what these are.) You are not trying to build a useful meter. So you are trying to learn about some things or show skills and understanding of some things. If we know what these are, you can focus on those and maybe scrimp, fudge or skip unimportant bits.

Since the ADC0804 output is binary, you'd needto convert it for a real multimeter. But maybe for this exercise, the binary output is ok. Let's hope so, because otherwise it gets messy.!
If you're happy with the binary, just drive the LEDs from the ADC - you probably want to buffer them - then concentrate on the input end and control.

If you do need to go to decimal, even for just 8 bits I think you'd need a lot of logic gates . I think there are some 4 bit binary to BCD chips which may be cascadable, but you'd have to look into that and see if they are still available. (Since everyone does use microcontrollers now, there's not much point in making some of these old chips.) *

My own inclination for a one chip solution would be (have been?) to use a PROM, say 1024 x 8bit (such as a 2708 if they still make them) to store the 7-segment values and use the 8 outputs from the ADC with 2 bits from a multiplexing drive as the 10 inputs. Current ROMs are probably all bigger, but you can just use part of them.

Another approach might be to latch the 8 bit output into counter, clock it down to 0 while counting the clock on a BCD counter. Or alternatively, run a BCD counter in parallel with a binary counter and latch the output from the BCD counter every time the binary counter matched the ADC. I've never tried either of these.

Is the 0804 mandatory? If not, you might even build your own ADC: if you are just showing the principle rather than building a useful device, use a BCD counter to drive a DAC and latch the results when a comparator says the DAC and input match. Even go down to a 99 count instead of 255. It's all about what is really needed here.

Edit: * Yes the 74185 does cascade, so 3 chips can do 8bit to 3 BCD then you just need 3 7-segment decoders.
 
Last edited:
  • Like
Likes Berserk and sophiecentaur
  • #13
Merlin3189 said:
Well, I'd say that was a BIG ask.
Absolutely. It would have needed a lot of savvy, even in the days when people were familiar with discrete or small scale integrated circuits.
 
  • Like
Likes Berserk
  • #14
Berserk said:
Is there no other way to use ADC0804 without microcontrollers? Actually i do require a decimal output, but thanks for that data sheet. :)
There is a way to run the ADC0804 without a micro. Take a look at the "continuous conversions" section of the data sheet. In continuous conversion mode the device sits there ticking away providing a continuous stream of binary values. All you need to do is convert the binary to BCD and display it on seven-segment displays. There are simple TTL chips do perform both operations.
 
  • Like
Likes Berserk
  • #15
Here is something that I've done. You all were right, it was extremely messy, but anyways here it is. The sad part is despite all that work it still doesn't work so if anyone could tell me what my mistake is, I will be really grateful.
 

Attachments

  • DLDNEWPROJECTGATES.docx
    99.6 KB · Views: 275
  • #16
Berserk said:
Here is something that I've done. You all were right, it was extremely messy, but anyways here it is. The sad part is despite all that work it still doesn't work so if anyone could tell me what my mistake is, I will be really grateful.
Phew - that was a lot of gates. Some comments:
  1. You are using old-fashioned TTL. Those draw a lot of current and do not like open inputs (if you want an unused input to stay high, tie it to +5V through a 1kΩ resistor.
  2. I do not follow your logic at all - I think you are confusing the LSB (Least Significant Bit) with the MSB (Most Significant Bit).
  3. Tying the "A" input on U23 low makes no sense at all. This only ensures that you will not see any odd numbers on that display, only 0, 2, 4, 6 and 8.
  4. Since you have 8 bits output from the ADC, the maximum number you must show will be 255 (three digits). You only have implemented two digits display
Try to draw your solution using high-level blocks first, then it is easier to see where you are going.
 
  • Like
Likes Berserk
  • #17
I used two displays because i have narrowed down the range to 0-50, not 0-255.
After simplifying the expressions, that's what i get. A "low" for the "A" input on U23.
I tried this project by using counters and this is what i came up with. I have never used counters before so i think there might be a few wrong connections. Could you please point them out for me. Thank you.
 

Attachments

  • uurrgghh!.docx
    34.2 KB · Views: 273
  • #18
Berserk said:
I tried this project by using counters and this is what i came up with. I have never used counters before so i think there might be a few wrong connections. Could you please point them out for me. Thank you.
Post #12 contains several excellent suggestions. Also: Her is the data sheet for 7447: http://www.ti.com/lit/ds/symlink/sn7446a.pdf . Especially look carefully at the table at page 3.
 
Last edited by a moderator:
  • #19
Svein said:
Post #12 contains several excellent suggestions. Also: Her is the data sheet for 7447: http://www.ti.com/lit/ds/symlink/sn7446a.pdf . Especially look carefully at the table at page 3.

The cd4026 that I've used is a counter and BCD to 7 segment decoder combined. That's why i haven't used 7447.
 
Last edited by a moderator:
  • #20
Wow! That's even messier than I'd thought (The logic gates cct in #15).
I wonder if you can say how you reached that circuit? If you explain the steps / development, maybe that would make it easier to check.

Have you any clues about how it is not working? Do you get a display, but it is just wrong numbers? Or are the displays just showing random patterns?

You could test your basic 0804 part of the circuit with a row of LEDs and record the output for some test voltages.
And you could test your decoder logic using 8 switches (or wire jumpers) instead of connecting to the 0804. Then just start from 0 and test each number in turn.

I've been looking for the circuit of a 74185 to see if three of these implemented as logic gates would be simpler and easy to copy! Just using three 185s would be even easier of course, if you can get them.
===============================
Now I see you have tried in #17 the counter method. The two things which struck me were,
- the 0804 does not load the 40103 when the conversion is finished. But the ADC is in free running mode, so I guess you are saying there will always be data on the 0804 outputs, so you just load up the 40103 whenever you like? Sounds ok (though you might get rare glitches if it loads just as the ADC output changes.)
- the 555 sends a clock from its Q to the clk of the 4026, but not to the 40103. I thought you were trying to clock the two counters in parallel? There is a connection from 555 TR to 40103 clk but I don't understand that: aren't you just connecting two inputs?

If the cct is what I am understanding it to be, the 555 should be an astable clock generator providing clock pulses to the 4026 (BCD up counter) and to the 40103 (binary down counter)? The 555 cct does not look like an astable, but I don't know what it does look like. Perhaps you can say what you are thinking here.

Other issues (if I do understand what you are trying to do): timing and control of the sequence of events: How/ when does the 40103 load the data from the ADC? How do you ensure that the 4026 starts at zero when the 40103 loads its value from the ADC? When the 103 reaches 0 how do you stop and hold the 4026 at its value?
 

1. How does a Digital Multimeter measure voltage?

A Digital Multimeter (DMM) works by using an electronic circuit called an analog-to-digital converter (ADC) to measure and display the voltage. The ADC converts the analog voltage signal into a digital signal, which is then displayed on the DMM's screen.

2. What are the different modes of a Digital Multimeter?

A DMM typically has three main modes: voltage (measuring voltage), current (measuring current), and resistance (measuring resistance). Some DMMs may also have additional modes, such as capacitance, frequency, and temperature.

3. How does a Digital Multimeter measure continuity?

Continuity is a feature on DMMs that allows for testing whether a circuit is complete or not. When measuring continuity, the DMM sends a small amount of current through the circuit and measures the resistance. If the resistance is very low or close to zero, the circuit is considered complete and the DMM will beep or display a reading indicating continuity.

4. How does a Digital Multimeter measure resistance?

To measure resistance, a DMM sends a small known current through the circuit and then measures the voltage drop across the resistor. Using Ohm's Law (V=IR), the DMM can calculate the resistance of the circuit and display it on the screen. This process is repeated multiple times to ensure accuracy.

5. How is a Digital Multimeter different from an analog multimeter?

An analog multimeter uses a mechanical needle to indicate the measurement on a scale, while a digital multimeter uses a digital display. Additionally, a digital multimeter can measure a wider range of values and has more features, such as auto-ranging, data logging, and backlit displays.

Similar threads

  • Electrical Engineering
Replies
14
Views
4K
Replies
24
Views
3K
  • Electrical Engineering
Replies
9
Views
5K
  • Electrical Engineering
Replies
6
Views
945
  • Electrical Engineering
Replies
26
Views
6K
Replies
2
Views
1K
  • Electrical Engineering
Replies
20
Views
3K
  • Electrical Engineering
Replies
4
Views
11K
  • Electrical Engineering
Replies
7
Views
916
  • Electrical Engineering
Replies
26
Views
3K
Back
Top