Measure 20V without Voltage Dividers!

Hey everyone,

I recently published a video on how to use a circuit dubbed 'Quantizer' to measure up to FULL 20V on the Arduino without voltage dividers (i.e., no resolution lost on the ADC). Here is the video if you're interested, showcasing the circuit and the concept behind the Quantizer:

Related links on where I got the idea for the Quantizer are also provided in the description. :slight_smile:

Where’s the link to read?
I’m not watching a video, sorry.


Maybe this needs to be in the section: You can edit your first post and change the category.

You may promote your video and website if it is Arduino-related and interesting. That's okay.

1 Like

Done! Thank you for the advice :slight_smile:

Lots of nonsense in that video. 15 volt read by 4 bits, 16 steps, gives 15/16 = 973.5 mV, not 333 mV.
Not understandable how to jump into 12 bit representation and compare.
You have never done a quality analysis of signal and data.
Each of those 4 quantifying steps have errors. Adding 4 calculations adds errors. The top step handling the upper part of the 18-20 volt will have such an error, uncertainty, that erases most of what the last, lowest stage produces.

Go to bed, sleep and don't produce crap like this.

1 Like

I'm confused... where did the 15V come from? The ADC example was 5V (same supply as the Arduino clearly stated in the video.. or maybe it wasn't clear enough).

Could you please clarify regarding the second comment about the '4' quantifying steps and the lowest stage you are referring to?

So, instead of a safe, simple two resistor voltage divider on the analog input, you use a bunch of resistors and op amps, which are easily fried by out of range voltages.

What an brilliant and totally practical idea!

Looks like each stage's top voltage is set by a voltage divider, so they are in the circuit, and that the 5V is used with the op amp to try and bring the floor up 5V from the top voltage, but judge for yourself too.

My concern is the incredible amount of time it takes to read this compared to a regular analogRead(). It's easy to see that it takes at least 4 times as long (a multiplier for each stage) then there has to be more to reassembling as there is probably time shifting involved to realign the wave.
So how much does the sample rate take a hit to produce this extra resolution?

Yes! But in my defense, the video did mention the [final] signal isn't 'reduced' using a voltage divider... You get the full-scale same as the input signal at the end! :stuck_out_tongue:
I'll provide other circuit implementation that doesn't use a divider at all to stay true to the statement in the video.

That's an excellent point regarding the sampling rate! The Quantizer circuit was designed assuming the max frequency of the input signal would be much less than the max sampling rate of the Arduino ADC. For now, I don't have an exact answer for your question and I would have to do a study on this.

Do that study as a feasibility for this as it exists. What it looks to me it that you've robbed Peter's timing to pay Paul's resolution and dropped a lot of clocks along the way. I would be surprised if the sample rate was only reduced to a 6th. I'm guessing it's closer to a 10th.
Did you adjust the prescale?

It's a cool idea but I think you end up with less than you started with. Doesn't mean you shouldn't explore it, though.

There are ADCs with much higher resolution and sample rates that would be better suited to this. Then you could just read the values from it. I think you'll find that most ADCs are limited to 3.3V or 5V.

What advantage do you gain by this method? Like really in application advantage?

Just a personal opinion, even censored swearing in a video detracts from the point. If you have something good to say, people will listen even without all the memes, even the kids.

1 Like

I didn't adjust any of the pre-scale and used it as it is.

Regarding the application, one benefit I can think of is for circuits where high voltage supply (I'm talking about 3.3V or less) is not allowed due to technology scaling (e.g., TSMC 65 nm has max VDD of 1.2V for standard transistors) but you still need the ADCs to measure relatively high voltages. The Quantizer concept would enable this to happen, but implementation would be different and op-amps would most likely not be used as I used them in my implementation.

Bogus :-1:

I think some one needed to do a video project for uni. Or else show off their expensive equipment.

His video is like a commercial where you have to look for the "catch". Here it is that the 4 resistors as a group must be accurate to << 0.1%. Anybody in their right mind would simply purchase an external A/D converter.

1 Like

I guess I'm not seeing where that would happen.
This seems much better suited for a higher speed and/or multicore MCU or SOC like a Pi. Even an ESP32 with an SPI ADC would work better with your filter/splitter.

The INA219 or INA226 make high side voltage measurements with higher input voltages, much higher precision, far fewer components and considerably less hassle.

Plus they measure current!

Here you go :slight_smile: Quantizer: Slice Up & Measure 20V on an Arduino | Techoyaki

The circuit won't work with conventional components, the tolerances of resistors for example, are not small enough. You will see huge step errors when transitioning between the four ranges. The claim to quadruple the resolution is particularly specious.

Using 4 Arduinos would have been even "cooler"

Are we still banging on about this ‘curiosity’.

It’s a novel idea that doesn’t seem to have any practical purpose in the majority of applications.

Good to study and understand, but not many are going to rush out for a quantiser ADC solution.

Applying different unconventional approach to the common problem may yield an innovative solution. I just got annoyed with the video that promised everything and delivered nothing.

The issue, ironically for the quantizer, is that OP did not quantify the data properly to see the trade off in a loss of sample rate to increase perceived resolution.