- Terminus FE1.1 USB hub board: the solution to connect four USB devicesPosted 4 days ago
- Understanding the Mechanics of 3D PrintingPosted 2 months ago
- SDS011 the Air Quality SensorPosted 3 months ago
- NIXIE STYLE LED DISPLAYPosted 6 months ago
- TOTEM: learning by experimentingPosted 6 months ago
- Google Assistant Voice Controlled Switch – NodeMCU IOT ProjePosted 7 months ago
- Water Softener Salt Level MonitorPosted 7 months ago
- Sparkly Air SensorPosted 7 months ago
- Ultra sonic distance finder with live statusPosted 7 months ago
- Windows interface to have total control over lampsPosted 7 months ago
Measuring 20V signals on an Arduino Uno with a quantizer
As we know, Arduino Uno includes a 10-bit ADC (analog-to-digital converter) inside its ATmega328p, which takes a signal between 0 and 5V and produces a digital value that varies from 0 to 1023. However, attempting to measure any voltage above 5V will cause some less than desirable results, such as creating magic smoke and destroying the microcontroller. To get around this, some makers add a voltage divider that divides the input voltage by a predetermined factor. This solution reduces the resolution of the ADC, as a single step of the digital value corresponds to a greater voltage variation. To solve this problem, the YouTuber known as Techoyaki has come up with a new solution that can measure the entire range of values without reducing the resolution.
The circuit divides the 0V-20V range into four ranges (0V-5V, 5v-10V, 10V-15V and 15V-20V) translating them all into the 0-5V range. After that, these four obtained signals arrive at the Arduino’s four analog inputs, which add up the values to produce the equivalent of an ADC of nearly 12 bits, thus leading to values that fall between 0 and 4092 (1023 x 4).
The circuit is composed of four rail-to-rail operational amplifiers, and various resistors, which allow to limit the voltage obtained in the 0v-5v range and subtract a DC voltage value to effect the translation in the desired range.