- Grand Piano Keys with ArduinoPosted 1 day ago
- Wireless Power TransferPosted 2 days ago
- Robot Punchers with ArduinoPosted 3 days ago
- A minimal 3D-printed scalePosted 5 days ago
- Expanding the pins of a microcontrollerPosted 1 week ago
- Let’s create a small level with a matrix displayPosted 1 week ago
- ChatGPT: Writing Code with Artificial IntelligencePosted 1 week ago
- Free Webinar: Arduino IoT Cloud and ESP32 DemoboardPosted 1 week ago
- Maker Faire Rome – The European edition and FAE Technology launch the contest “MY Maker PCBA: your electronics for a better planet”Posted 3 months ago
- Efficient and Compact Stereo Power Amplifier: Unleash High-Quality Audio with the PAM8610Posted 4 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.